天天看点

[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