1. 在apk的AndroidManifest.xml中的manifest节点中加入
android:sharedUserId=”android.uid.system”
使程序运行在系统进程中,这样就有权限来修改只有具有系统权限才能修改的属性了。
2. 运行或打包得到未签名的apk
3. 使用目标系统的platform密钥给apk文件签名:
在系统源码环境下build/target/product/security目录下找到platform.x509.pem 和platform.pk8两个文件
在系统源码环境下out/host/Linux-x86/framework目录下找到signapk.jar文件(out目录是在源码被编译之后才会生成)
把它们复制出来放到一个文件夹下,并且把需要进行系统签名的Demo.apk也和它们放到同一个文件夹下
命令行切换到此文件夹下,执行签名命令
window系统下:
signapk.jar platform.x509.pem platform.pk8 Demo.apk Demo_signed.apk
linux 系统下:
java -jar signapk.jar platform.x509.pem platform.pk8 Demo.apk Demo_signed.apk
进行系统签名之后,此apk就运行在系统进程中并且具有系统权限了,就可以调用只有具有系统级权限才可以使用的API。