最近项目需要,用NDK编程,遇到了些问题,在访问底层的设备时,没有权限,后来就在网上查找了资料,一开始还以为有root权限,找来找去,弄来弄去,程序都获取不到root权限,后来找到原来用system权限就可以访问设备了。网上找到2种方法,一是在源码中编译,二是修改密钥。刚开始弄android的,对源码不了解,就选择了第二种方法。
下面是操作步骤:
1、在代码中,AndroidManifest.xml文件的manifest项中,添加android:sharedUserId="android.uid.system"
2、编译程序,得到APK文件,如src.apk
3、将APK文件用压缩软件打开,删除META-INF目录里面的CERT.SF和CERT.RSA两个文件
4、运行命令(其中signapk.jar platform.x509.pem platform.pk8这3个文件在源码的build目录下可以找到)
java -jar signapk.jar platform.x509.pem platform.pk8 src.apk dst.apk
5、dst.apk安装后就有system权限,就可以访问设备
本文介绍了一种在Android应用中通过获取system权限来访问底层设备的方法。主要步骤包括:在AndroidManifest.xml中设置sharedUserId为android.uid.system,编译并处理APK文件,最后使用特定命令进行签名。
2142

被折叠的 条评论
为什么被折叠?



