令App可調試的幾種方法


令App可調試的幾種方法

來源 http://fancy-blogs.com/2018/01/17/fordebugger/

 

  一般自己編寫的應用安裝到設備上都是可調試的,但是拿到一個發行版本的應用安裝上去,發現在DDMS中看不到,選擇可調試應用也不能選擇,我們就需要讓應用可調試。

修改debuggable屬性

反編譯包修改

一般對於小程序,用apktool反編譯修改<applcation>標簽,添加android:debuggable="true",然后回編譯即可。

解包時只解碼資源文件

1
apktool d -s xx.apk -o xxx

查看AndroidManifest.xml,一般<application>標簽里沒有debuggable項或者該項為false。

添加debuggable屬性:

1
<application android:debuggable="true" ...

回編譯

1
apktool b xxx -o new.apk

別忘了簽名:

1
jarsigner -verbose -keystore name.keystore(證書文件名) -signedjar after.apk before.apk bname(用戶別名)

一些加殼應用有時候會出現無法回編譯的情況,我們可以不反編譯apk,直接解壓,通過修改AndroidManifest.xml文件來添加屬性。

AXMLEditor

Android中AndroidManifest ARSC 二進制文件修改器AXMLEditor
一般使用sdk中帶的工具aapt,把包里的AndroidManifest.xml提取后移除。利用AXMLEditor向提取出來的AndroidManifest.xml中添加debuggable屬性。

打包好的apk中移除文件
aapt r[emove] [-v] file.{zip,jar,apk} file1 [file2 …]
例如:aapt r <你的apk文件> AndroidManifest.xml, 這個就是將apk中的AndroidManifest移除掉

添加文件到打包好的apk中
aapt a[dd] [-v] file.{zip,jar,apk} file1 [file2 …]
例如:aapt a <你的apk文件> <要添加的文件路徑>, 這個就是將文件添加到打包好的apk文件中

注意去簽名和重簽名

修改ro.debuggable

通過將default.prop中的ro.debuggable的值置為1來允許系統中應用均可調試。

刷機

通過修改boot.img中的屬性文件,重新生成img,輸入手機。

mprop

init進程會解析default.prop文件,然后把這些屬性信息解析到內存中,給所有app進行訪問使用,所以在init進程的內存塊中是存在這些屬性值的,那么這時候我們可以利用進程注入技術,我們可以使用ptrace注入到init進程,然后修改內存中的這些屬性值,只要init進程不重啟的話,那么這些屬性值就會起效。

adb push mprop /data/local/tmp/

chmod +rx mprop

./mprop ro.debuggable 1

查看內存中該值
getprop ro.debuggable

重啟adbd
stop;start

利用hook插件

Xposed中下載xinstaller插件,選擇允許應用調試,重啟即可。這種方法最方便。

 

=============== End

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM