AndroidStudio 動態(tài)調(diào)試

上篇文章簡單介紹了apktool的使用
方法,本片文章主要介紹無源碼動態(tài)調(diào)試。

為何要使用無源碼動態(tài)調(diào)試

目前很多app都針對反編譯及二次打包做了處理,想要使用源碼進行調(diào)試需要花費很多時間,需要反編譯app,設(shè)置為可調(diào)試狀態(tài),重新打包。而使用動態(tài)調(diào)試,只需要smali文件及原始app即可,雖然smali文件的可讀性較差些,需要對比源碼來進行。

準備工作:

1.apktool 反編譯出的smali文件
2.jadx 查看源代碼
3.root 手機
4.Android Studio

前兩步比較簡單,上篇文章已經(jīng)介紹過了,動態(tài)調(diào)試需要運行app,我選擇的是模擬器,國內(nèi)的很多模擬器做的比官方的還要好......,基本自帶root,只要將設(shè)備的secure 關(guān)閉即可。

手機 root

我使用的是setprops,按照文檔操作生成setprops,并拷貝到手機的data/local/tmp/ 目錄下,然后關(guān)閉secure ./setprops ro.secure 0 打開debugable 即可。

接下來以debug模式運行你要調(diào)試的app

adb shell am start -D -n com.xxx/.modules.main.SplashActivity

查找應(yīng)用進程的端口并進行轉(zhuǎn)發(fā) adb forward tcp:8700 jdwp:3296

修改系統(tǒng)屬性的方式,每次重啟都會失效,不過操作很簡單,修改鏡像的方式可以一勞永逸但是較為麻煩。

AndroidStudio導(dǎo)入工程

首先創(chuàng)建一個目錄 DebugApp,并創(chuàng)建src 子目錄,將你反編譯后的工程復(fù)制到src目錄下。

studio 導(dǎo)入


image.png

一路next。

src 目錄右鍵

image.png

設(shè)置為source root,我這里已經(jīng)設(shè)置了,所以沒有這個選項。

然后設(shè)置sdk


image.png

之后配置調(diào)試


image.png
image.png

添加一個remote 并設(shè)置端口。

準備工作完成,在需要調(diào)試的smali代碼里打斷點,然后 run->debug即可。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容