背景:某個設備,其開機後會自動運行一個App X,然後根據配置啓動默認App Y。我想實現讓App X我的App M。
嘗試一:Hack App X的配置,用我的App M替換App Y。
1、Apk逆向。主要用到ApkTool,參考:Android反編譯工具介紹與簡單實用方法。
2、分析Smali代碼。參考:Android 反編譯 -smali語法。
遇到App簽名INSTALL_FAILED_SHARED_USER_INCOMPATIBLE的問題。
無解。放棄。
嘗試二:App Y運行後,運行我的App M。
1、創建一個BroadcastReceiver,監聽BOOT_COMPLETED。
Windows下:
adb shell "dumpsys window | grep mCurrentFocus"
此時你會看到你要的包名和activity名。
Linux下只需把那個adb語句的雙引號去掉就行3、調試:在命令行中通過adb shell am broadcast發送廣播通知
adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -n [package name]/.[receiver name]
以上命令行改自Android adb shell am broadcast: Bad component name的accepted answer部分。
參考:在命令行中通過adb shell am broadcast發送廣播通知結案。