在Android真機上調試程式有一個前提,就是這個apk包必須有 debuggable=true 的屬性才行。而除了自己開發的apk能夠控制打包屬性之外,其他的程式發行之後顯然不會設這個值為 true 的(不然隨隨便便就能被Debug ,豈不是很沒安全感 )。為了調試這些第三方的apk,我們可以從整 ...
在Android真機上調試程式有一個前提,就是這個apk包必須有 debuggable=true 的屬性才行。而除了自己開發的apk能夠控制打包屬性之外,其他的程式發行之後顯然不會設這個值為 true 的(不然隨隨便便就能被Debug ,豈不是很沒安全感 )。為了調試這些第三方的apk,我們可以從整個手機系統入手 —— 因為除了每個apk中的 debuggable 標誌以外,這個標誌還可以在系統中全局指定,換句話說,只要把系統里的 debuggable 值設為true,那麼不管apk的這個屬性是什麼值 都可以被調試了。
Android手機系統的 ro.debuggable 這一配置位於 /default.prop 文件中,而 /default.prop 又來源於手機每次啟動時 boot.img 中 ramdisk 的掛載,所以想要直接通過修改 /default.prop 是不可行的,但是系統文件是只讀的,改了也沒用。網上流傳較廣的是改 boot.img ,然而錘子並沒有解鎖 bootloader ,改了的話會變磚的。好在Magisk 有一個模塊能夠助我們實現這個修改,且看操作(預設手機已經 root 且安裝了 Magisk ):
1、打開併在模塊界面中搜索 MagiskHide Props Config ,並安裝。
2、用PC 連接 Android 手機,在PC端 打開命令行或終端,依次輸入以下指令(如圖):
adb shell //adb進入命令行模式
su //切換至超級用戶
magisk resetprop ro.debuggable 1 //設置debuggable
stop;start; //一定要通過該方式重啟
待手機重啟過後,如同開啟“上帝模式“,任意調試手機里的任何程式了!
參考資料:
1、渲染逆向工程:打造一臺調試任意Android游戲的設備 https://zhuanlan.zhihu.com/p/100583752
2、Android修改ro.debuggable 華為真機adb調試所有進程 https://www.renyiwei.com/archives/1704.html
3、安卓8.0 Magisk 修改ro.debuggable 1的簡單方法 https://bbs.pediy.com/thread-248322.htm