有時候我們寫的app要用uid=0的方式啟動一個process,framework層和app層是做不到的,隻有通過寫腳本,利用am來實作。下面是具體步驟:
1.1.建立一個Java project

1.2.添加Main()方法
1.3.導出為jar包
1.4.将java 版本的jar變成android 版本的jar
首先,找到dx工具所在檔案夾,如android-sdk/build-tools/20.0.0,并将該檔案夾加入到環境變量PATH中;
其次,執行編譯指令dx --dex --output=classes.dex BKTools.jar
最後,将dex檔案打包成android版本的jar,aapt add BKTools.jar classes.dex
1.5.将該jar包push到手機的/system/framework目錄下
1.6.修改jar包的權限為777
2.1.建立一個文本,命名為run_bktools.sh
輸入以下代碼:
2.2.将該sh檔案run_bktools.sh push到手機/system/bin目錄下,并且修改權限為777
2.3.測試利用sh腳本啟動jar包
OK,啟動成功啦。
3.1.建立一個android project
3.2.用root起shell腳本
3.3.檢驗shell是否成功叫起
将手機連上電腦,編譯執行bkapp,用adb logcat檢查是否打有“Success execRootCmdSilent.."字樣,觀察手機上是否顯示“start success.”
檢驗OK,我就不再截圖了。
此時背景也在執行我們在Jar包中寫的代碼了,如果,我們在Jar包中寫一個自己的 ActivityManagerSerive,PowerManagerSerive或者,其他,都将是以root運作的。
本文轉自demoblog部落格園部落格,原文連結http://www.cnblogs.com/0616--ataozhijia/p/4993196.html如需轉載請自行聯系原作者
demoblog