天天看點

[Android Pro] Android以root起一個process[shell腳本的方法]

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

1.1.建立一個Java project

[Android Pro] Android以root起一個process[shell腳本的方法]

1.2.添加Main()方法

[Android Pro] Android以root起一個process[shell腳本的方法]

1.3.導出為jar包

[Android Pro] Android以root起一個process[shell腳本的方法]
[Android Pro] Android以root起一個process[shell腳本的方法]

1.4.将java 版本的jar變成android 版本的jar

首先,找到dx工具所在檔案夾,如android-sdk/build-tools/20.0.0,并将該檔案夾加入到環境變量PATH中;

其次,執行編譯指令dx --dex --output=classes.dex  BKTools.jar

[Android Pro] Android以root起一個process[shell腳本的方法]

最後,将dex檔案打包成android版本的jar,aapt add BKTools.jar classes.dex

[Android Pro] Android以root起一個process[shell腳本的方法]

1.5.将該jar包push到手機的/system/framework目錄下

[Android Pro] Android以root起一個process[shell腳本的方法]

1.6.修改jar包的權限為777

[Android Pro] Android以root起一個process[shell腳本的方法]

2.1.建立一個文本,命名為run_bktools.sh

輸入以下代碼:

2.2.将該sh檔案run_bktools.sh push到手機/system/bin目錄下,并且修改權限為777

[Android Pro] Android以root起一個process[shell腳本的方法]

2.3.測試利用sh腳本啟動jar包

[Android Pro] Android以root起一個process[shell腳本的方法]
[Android Pro] Android以root起一個process[shell腳本的方法]

OK,啟動成功啦。

3.1.建立一個android project

[Android Pro] Android以root起一個process[shell腳本的方法]

3.2.用root起shell腳本

[Android Pro] Android以root起一個process[shell腳本的方法]
[Android Pro] Android以root起一個process[shell腳本的方法]

3.3.檢驗shell是否成功叫起

将手機連上電腦,編譯執行bkapp,用adb logcat檢查是否打有“Success execRootCmdSilent.."字樣,觀察手機上是否顯示“start success.”

[Android Pro] Android以root起一個process[shell腳本的方法]

檢驗OK,我就不再截圖了。

此時背景也在執行我們在Jar包中寫的代碼了,如果,我們在Jar包中寫一個自己的 ActivityManagerSerive,PowerManagerSerive或者,其他,都将是以root運作的。

本文轉自demoblog部落格園部落格,原文連結http://www.cnblogs.com/0616--ataozhijia/p/4993196.html如需轉載請自行聯系原作者

demoblog