標籤:
1、修改apk設定檔AndroidManifest.xml
修改設定檔<application>子項,添加 android:debuggable="true" 屬性,使apk處於可調式狀態,打包回編即可。
<application android:allowBackup="true" android:debuggable="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name">
2、調試啟動apk(兩種方式)
1)使用adb shell am(沒用過)
使用格式為 【adb shell am start -D -n 包名/包名+類名】的命令,就可以從控制台啟動一個Activity
該命令的具體用法,參見 adb shell am
2) 使用手機內建的調試功能(簡單方便)
在手機中的開發人員選項中,選擇待調試的程式,然後正常單擊程式,此時會彈出一個title為“Waiting For Debugger”的對話方塊,提示使用者該應用程式正在等待debugger attach
3、IDA附加app
在手機中以root身份啟動android_server
在主系統中,使用adb forward tcp:23946 tcp:23946 命令轉送連接埠資料
完成以上兩步後,就可以使用ida附加到應用程式。附加完成後,在ida->Debugger->Debugger Options中,設定event斷點,添加 library load/unload 斷點,,這樣,在app啟動之後,每load/unload一個so的時候,都會斷住,此時,使用者就可以去設定斷點,一遍後續調試
4、啟動app
經過以上三步,app處於待調試狀態,此時需要啟動app,讓它跑起來。
在主系統中,使用ddms查看app的調試連接埠號碼(一般為8700),然後使用如下命令:
jdb -connect com.sun.jdi.SocketAttach:hostname=localhost,port=8700
此時,app調試狀態解除,開始正常運行。
但是你會發現,“Waiting For Debugger”對話方塊不見了,但是app還是沒有運行,這是因為在ida附加的時候,自動斷住了。只要在ida中,按下F9,就可以讓app真正的跑起來了。
android 動態調試筆記