当Android应用程序用到重启系统、关闭系统、修改系统时间等功能时,需要用到system权限。
本文以OKxx18平台实现重启功能的应用程序PermissionTest为例,说明获取系统权限的方法。
1.首先在app工程的AndroidManifest.xml里添加(PermissionTest工程里已添加):
android:shardUserId="android.uid.system"
然后编译出apk文件,如app-debug.apk(但此文件不能直接安装到开发板使用)。
2.将app-debug.apk文件重命名成“app-debug.apk.rar”,并用压缩软件打开,删掉META-INF目录下的CERT.SF和CERT.RSA两个文件,然后将apk文件重命名回app-debug.apk。
3.在windows下新建目录,如I:\Android_key\forlinx,将2中的apk放入此目录下。
4.复制platform.pk8及platform.x509.pem两个文件到I:\Android_key\forlinx目录下。
platform.pk8及platform.x509.pem来源于android源码的build/target/product/security/目录。
5.复制signapk.jar文件到I:\Android_key\forlinx目录下。
Signapk.jar来源于android源码的prebuilts/sdk/tools/lib/目录。
6.打开windows的cmd命令行,输入以下命令:
>I:
>cd Android_key\forlinx
>java -jar signapk.jar platform.x509.pem platform.pk8 app-debug.apk new.apk
如下图:
会在I:\Android_key\forlinx目录下生成new.apk文件,此文件为签名后的文件,具有system权限,在开发板上安装完并打开后,可以重启系统。