android system权限
来源:互联网 发布:xml与json的优缺点 编辑:程序博客网 时间:2024/05/16 12:50
第一个方法简单点,不过需要在Android系统源码的环境下用make来编译:
1. 在应用程序的AndroidManifest.xml中的manifest节点中加入
android:sharedUserId="android.uid.system"这个属性。
2. 修改Android.mk文件,加入LOCAL_CERTIFICATE := platform这一行
3. 使用mm命令来编译,生成的apk就有修改系统时间的权限了。
第二个办法麻烦点,不过不用开虚拟机跑到源码环境下用make来编译:
1. 同上,加入android:sharedUserId="android.uid.system"这个属性。
2. 使用eclipse编译出apk文件,但是这个apk文件是不能用的。
3. 用压缩软件打开apk文件,删掉META-INF目录下的CERT.SF和CERT.RSA两个文件。
4. 使用目标系统的platform密钥来重新给apk文件签名。这步比较麻烦,
首先找到密钥文件,在我的Android源码目录中的位置
是"build argetproductsecurity",下面的platform.pk8和platform.x509.pem
两个文件。
然后用Android提供的Signapk工具来签名,signapk的源代码是
在"build oolssignapk"下,
用法为"signapk platform.x509.pem platform.pk8 input.apk output.apk",
文件名最好使用绝对路径防止找不到,也可以修改源代码直接使用。
这样最后得到的apk和第一个方法是一样的。
最后解释一下原理,首先加入android:sharedUserId="android.uid.system"这个属性。通过Shared User id,拥有同一个User id的多个APK可以配置成运行在同一个进程中。那么把程序的UID配成android.uid.system,也就是要让程序运行在系统进程中,这样就有权限来修改系统时间了。
只是加入UID还不够,如果这时候安装APK的话发现无法安装,提示签名不符,原因是程序想要运行在系统进程中还要有目标系统的platform
key,就是上面第二个方法提到的platform.pk8和platform.x509.pem两个文件。用这两个key签名后apk才真正可以放入系统进程中。第一个方法中加入LOCAL_CERTIFICATE := platform其实就是用这两个key来签名。 这也有一个问题,就是这样生成的程序只有在原始的Android系统或者是自己编译的系统中才可以用,因为这样的系统才可以拿到 platform.pk8和platform.x509.pem两个文件。要是别家公司做的Android上连安装都安装不了。试试原始的Android 中的key来签名,程序在模拟器上运行OK,不过放到G3上安装直接提示"Package ... has no signatures that match those in shared user android.uid.system",这样也是保护了系统的安全。 最最后还说下,这个android:sharedUserId属性不只可以把apk放到系统进程中,也可以配置多个APK运行在一个进程中,这样可以共享数据,应该会很有用的。
1.signapk.jar执行方式
java -jar signapk.jar xxx.x509.pem xxx.pk8 xxxxx.apk xxxxx-signed.apk (xxx是证书名,xxxxx是所签apk的名字)
2.相关文件路径
编译后的JAR包位置 android\out\host\linux-x86\framework\signapk.jar
证书文件位置 android\build\target\product\security
signapk.java文件位置 android\build\tools\signapk\SignApk.java
附件为本人修改后的jar包,添加了密码输入,在ant脚本中运行时很有用,呵~
使用方法:
signapk [-w] publickey.x509[.pem] privatekey.pk8 input.jar output.jar passward
- android system权限
- android 获取 system权限 .
- android 获取 system权限
- android获取system权限
- android 获取 system权限
- android 获取 system权限
- android system权限获取
- android APP 获得system权限
- Android修改system只读权限
- Android修改system只读权限
- android APP 获得system权限
- Android修改system只读权限
- Android::应用程序获取system权限
- android apk 获取system权限
- android 应用获得system权限
- Android应用程序获取system权限
- android apk获取system权限
- Android系统权限和system权限
- java Send Email
- tinyMCE 使用汇总
- ubuntu 服务管理运行程序 sysv-rc-conf
- oracle出错表
- PackageInstaller 原理简述 & PackageManagerService注记 & PackageParser和AndroidManifest.xml注记
- android system权限
- 比较两种成员变量赋值方式的优缺点
- [探讨]敏捷开发原则
- RMAN学习3——其他备份(控制文件、归档日志、spfile、备份集)
- 时代过客之旅
- 退出Activity时,保存edittext的内容
- int 和 String 互相转换的多种方法
- Informix索引性能调优的建议
- 实现执行scp命令时不需要输入用户密码