Android教程:应用程序获取system权限

Android应用程序只在有限的范围内有读取权限,如/data/data/*.*.*/,而如果想让app访问其它地方的资源时,就必须要获取更高的权限,像system或者root,root的获取方法也是基于system的,因此本文先完成system权限的获取,实际上一般的应用有system的权限基本上也够了。


1、修改apk内的AndroidManifest.xml

在manifest节点中加入android:sharedUserId="android.uid.system" 


2、编译工程产生apk文件

eclipse自动就帮你产生


3、解压缩工具打开*.apk

删除META-INF文件夹中的CERT.RSA和CERT.SF两个文件


4、给*.apk文件签名

这步需要在android源码中进行

1)cd build/tools/signapk

2)javac signapk.java(这里产生*.class)

3)mkdir test/com/android/signapk

4)cp *.class test/com/android/signapk

5)jar cvfm signapk.jar SignApk.mf -C test/ .(这里产生signapk.jar)


5、制作签名后的apk文件

1)mkdir SignApk

2)步骤4中产生的signapk.jar拷贝到SignApk文件夹中

3)cp build/target/product/security/{platform.x509.pem,platform.pk8} SignApk

4)将apk也拷贝到SignApk中

5)java -jar signapk.jar platform.x509.pem platform.pk8 *.apk new.apk


6、制作新的image文件

将new.apk导入到android源码目录中(一般是out/target/product/平台/system/app/下),编译生成新的system.img,再download到开发板


7、测试

如果app涉及到文件读写,可以待系统启动后adb shell到板子上,ls -l查看app安装目录(/data/data/*/*/*/)的权限,看看是不是变成system:system了。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/ppsxy.html