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了。

更多Android相关信息见Android 专题页面 http://www.bkjia.com/topicnews.aspx?tid=11

相关内容

    暂无相关文章