0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

AOSP源碼定制-對root定制的補(bǔ)充流程

哆啦安全 ? 來源:gakki的童養(yǎng)夫 ? 2024-04-01 11:04 ? 次閱讀

AOSP源碼定制-對root定制的補(bǔ)充

介紹

前面通過修改build.prop中的指紋以及對su的修改,完成了基礎(chǔ)的定制修改,但是碰上一些app還是能被檢測到,再進(jìn)行深入修改。

問題引入

ro.vendor相關(guān)

發(fā)現(xiàn)測試一個app時總是開不起來,但是測試別人編譯好的脫殼機(jī)卻能運(yùn)行,最后其實只是ro.debuggable的問題,但是在分析的過程中發(fā)現(xiàn)了其他幾處遺漏沒有抹除的特征。

98822c94-e9a9-11ee-a297-92fbcf53809c.png

這里很明顯,ro.vendor.build的一些參數(shù)是有aosp的特征,沒有改成user版本,tests-key。

找了半天沒有找到對應(yīng)的修改點,查了資料,看了下目錄才反應(yīng)過來,vendor鏡像是一開始下驅(qū)動,運(yùn)行腳本時直接打包放在vendor目錄下了,是谷歌自己給我編譯好的。

988e582a-e9a9-11ee-a297-92fbcf53809c.png

要修改找了資料,有好幾種,一種重新編譯,一種解包修改再壓縮,兩種方法都試了,最后都是沒有效果。

這里我解包修改再重打包,out目錄下,vendor相關(guān)的屬性已經(jīng)修改完成。

9894d4fc-e9a9-11ee-a297-92fbcf53809c.png

編譯刷機(jī)后,還是沒效果。

98ad1d6e-e9a9-11ee-a297-92fbcf53809c.png

通過啟動流程修改

繼續(xù)查資料,可以明確一個事,目前app檢測prop相關(guān)屬性,多通過getprop命令,或者通過反射調(diào)用android.os.SystemProperties來檢測,它并不會讀到/system/build.prop,/vendor/build.prop文件。

那我們只需要在系統(tǒng)啟動時,找到對應(yīng)讀取prop文件的流程,在中間處理一下,做點手腳就可以了。

查閱源碼,找到啟動流程中載入prop配置文件的關(guān)鍵位置:

98c4a394-e9a9-11ee-a297-92fbcf53809c.png

這里的關(guān)鍵函數(shù)是load_properties_from_file,查找跟進(jìn)。

98cdf872-e9a9-11ee-a297-92fbcf53809c.png

這里繼續(xù)跟進(jìn)load_properties,很明顯了,他會讀取,然后通過property_set方法,按鍵值對寫入。

98d18c4e-e9a9-11ee-a297-92fbcf53809c.png

我們可以在這里加個判斷,匹配自己要修改的特征,然后自己去set。

98d51774-e9a9-11ee-a297-92fbcf53809c.png

再編譯刷機(jī),此時通過getprop命令獲取到的已經(jīng)是替換后的屬性值了,但是文件中的是不修改的。

98e9e53c-e9a9-11ee-a297-92fbcf53809c.png

adb相關(guān)

再測試發(fā)現(xiàn)還是被檢測,繼續(xù)排查,發(fā)現(xiàn)是ro.debuggable的問題。

我將該值置為零,再編譯發(fā)現(xiàn)不檢測了。

但是會存在問題,進(jìn)系統(tǒng),切到su,data等目錄不再有權(quán)限訪問,這是不能接受的。

這里補(bǔ)充一點東西。

adb的root權(quán)限是由system/core/adb/adb.c 中控制。主要根據(jù)ro.secure以及ro.debuggable等system property來控制。

默認(rèn)當(dāng)ro.secure為0時,開啟root權(quán)限,為1時再根據(jù)ro.debuggable等選項來確認(rèn)是否可以用開啟root權(quán)限,一般會降權(quán)返回一個shell用戶權(quán)限。因此如果要開啟adb的root權(quán)限,有兩種修改的方式:

修改system property ro.secure, 讓ro.secure=0。

修改adb.c 中開啟root 權(quán)限的判斷邏輯。

但1方法顯然是很容易被檢測到,正常手機(jī)ro.secure的值都是1。

所以直接將ro.debuggable=0,修改adb源碼,達(dá)到不降權(quán)的目的。

這里就修改一處即可。

將這里的降權(quán)判斷函數(shù),返回值強(qiáng)恒為false即可。

98f3112a-e9a9-11ee-a297-92fbcf53809c.png

再測試adb直接返回了root用戶權(quán)限,且ro.debuggable仍然為0。

總結(jié)

主要學(xué)習(xí)到的還是通過修改啟動流程中的載入prop過程,達(dá)到抹去特征,可以將之前修改的特征通通使用這個方法進(jìn)行抹除,更加簡單。



審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    16104

    瀏覽量

    177080
  • AOSP
    +關(guān)注

    關(guān)注

    0

    文章

    16

    瀏覽量

    6178
  • adb
    adb
    +關(guān)注

    關(guān)注

    1

    文章

    35

    瀏覽量

    10405

原文標(biāo)題:AOSP源碼定制-對root定制的補(bǔ)充

文章出處:【微信號:哆啦安全,微信公眾號:哆啦安全】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    iTOP-3588開發(fā)板Android12源碼定制開發(fā)uboot開發(fā)

    iTOP-3588開發(fā)板Android12源碼定制開發(fā)uboot開發(fā)
    的頭像 發(fā)表于 06-06 11:46 ?1452次閱讀
    iTOP-3588開發(fā)板Android12<b class='flag-5'>源碼</b><b class='flag-5'>定制</b>開發(fā)uboot開發(fā)

    地面站定制開發(fā)

    Mission Planner二次開發(fā):基于MP地面站源碼,進(jìn)行功能刪減、增加等;深度定制化地面站:基于MP地面站進(jìn)行UI全新設(shè)計,功能增減,企業(yè)Logo定制;基于Mavlink協(xié)議地面站定制
    發(fā)表于 06-19 15:56

    MCU的開發(fā)定制流程

    上海靈動微電子MCU開發(fā)定制流程
    發(fā)表于 01-05 07:18

    模組MAC地址定制流程是怎樣的?

    模組MAC地址定制流程是怎樣的?
    發(fā)表于 12-29 06:01

    定制和半定制簡易IC設(shè)計流程介紹

    一般的IC設(shè)計流程可以分為兩大類:全定制和半定制,這里我換一種方式來說明。 1.1 從RTL到GDSⅡ的設(shè)計流程: 這個可以理解成半定制的設(shè)
    發(fā)表于 10-20 11:38 ?25次下載
    全<b class='flag-5'>定制</b>和半<b class='flag-5'>定制</b>簡易IC設(shè)計<b class='flag-5'>流程</b>介紹

    Vivado設(shè)計之Tcl定制化的實現(xiàn)流程

    其實Tcl在Vivado中還有很多延展應(yīng)用,接下來我們就來討論如何利用Tcl語言的靈活性和可擴(kuò)展性,在Vivado中實現(xiàn)定制化的FPGA設(shè)計流程。 基本的FPGA設(shè)計實現(xiàn)流程 FPGA的設(shè)計
    發(fā)表于 11-18 01:48 ?3571次閱讀
    Vivado設(shè)計之Tcl<b class='flag-5'>定制</b>化的實現(xiàn)<b class='flag-5'>流程</b>

    IC設(shè)計流程之全定制和半定制

    一個完整的半定制設(shè)計流程應(yīng)該是:RTL代碼輸入、功能仿真、邏輯綜合、形式驗證、時序/功耗/噪聲分析,布局布線(物理綜合)、版圖驗證。
    發(fā)表于 11-24 09:17 ?1.2w次閱讀

    fireflyAIO-3288J主板定制Android固件簡介

    定制 Android 固件 前言 定制 Android 固件,有兩種方法: 改源碼,然后編譯生成固件。
    的頭像 發(fā)表于 12-26 14:35 ?1603次閱讀

    工藝流程詳解:用光固化3D打印機(jī)定制專屬珠寶

    3D打印機(jī)強(qiáng)大而實惠的定制能力,使得類似的專屬定制的大眾化普及成為現(xiàn)實,本文小編將詳細(xì)介紹使用光固化3D打印機(jī)定制珠寶的整個流程。
    的頭像 發(fā)表于 12-26 12:44 ?891次閱讀

    鋰離子電池定制的價格多少?定制鋰電池的二種流程

    如何?鋰電池價格這類才是消費(fèi)者需要關(guān)注的問題。 一、定制鋰電池特點 1、室內(nèi)溫度下充滿電儲存1個月的自放電率小于4%; 2、有著全自動化技術(shù)生產(chǎn)工藝流程和生產(chǎn)加工設(shè)備,制造電芯一致性好; 3、性價比非常高,同一類產(chǎn)品具有競爭力
    發(fā)表于 12-17 11:03 ?883次閱讀
    鋰離子電池<b class='flag-5'>定制</b>的價格多少?<b class='flag-5'>定制</b>鋰電池的二種<b class='flag-5'>流程</b>

    AOSP Android11系統(tǒng)源碼和內(nèi)核源碼簡析

    AOSP源碼中并不包括內(nèi)核源碼,需要單獨下載,內(nèi)核源碼有很多版本,比如common是通用的Linux內(nèi)核,msm是用于使用高通MSM芯片的Android設(shè)備,goldfish是用于An
    的頭像 發(fā)表于 01-29 09:25 ?5131次閱讀

    用TCL定制Vivado設(shè)計實現(xiàn)流程

    今天推出Xilinx已發(fā)布的《Vivado使用誤區(qū)與進(jìn)階》系列:用TCL定制Vivado設(shè)計實現(xiàn)流程。
    的頭像 發(fā)表于 05-05 09:44 ?1021次閱讀
    用TCL<b class='flag-5'>定制</b>Vivado設(shè)計實現(xiàn)<b class='flag-5'>流程</b>

    APP定制開發(fā)流程和特點

    如今APP已經(jīng)成為了人們生活中不可缺少的重要組成部分,APP定制開發(fā)變得更加熱門,那么你知道APP定制開發(fā)的流程有哪些嗎?下面由沐渥科技小編給大家詳細(xì)介紹一下。第一步需求分析,首先和客戶溝通,對需要
    的頭像 發(fā)表于 08-17 15:11 ?1203次閱讀
    APP<b class='flag-5'>定制</b>開發(fā)<b class='flag-5'>流程</b>和特點

    基于Android13的AOSP源碼下載及編譯指南

    AOSP(Android Open Source Project)是Android操作系統(tǒng)的開源項目,通過下載和編譯AOSP源碼,您可以獲得原始的Android系統(tǒng),并進(jìn)行定制和開發(fā)。
    的頭像 發(fā)表于 01-17 09:49 ?3591次閱讀
    基于Android13的<b class='flag-5'>AOSP</b><b class='flag-5'>源碼</b>下載及編譯指南

    AOSP源碼定制-內(nèi)核驅(qū)動編寫

    有時候為了分析一些殼的檢測,需要在內(nèi)核層面對讀寫相關(guān)的操作進(jìn)行監(jiān)控,每次去修改對應(yīng)的內(nèi)核源碼編譯重刷過于耗時耗力,這里就來嘗試編寫一個內(nèi)核驅(qū)動,載入后監(jiān)控讀寫。
    的頭像 發(fā)表于 04-23 11:15 ?1030次閱讀
    <b class='flag-5'>AOSP</b><b class='flag-5'>源碼</b><b class='flag-5'>定制</b>-內(nèi)核驅(qū)動編寫