android应用怎么获取系统权限

来源:互联网 发布:js 判断元素隐藏 编辑:程序博客网 时间:2024/06/05 07:13
android应用怎么获取系统权限
     对于一般的Android应用开发来说是不需要用到系统权限的,但是在某些特殊情况下调用一些API是需要系统权限的譬如设置系统的时间SystemClock.setCurrentTimeMillis()函数来修改系统时间。下面介绍的这两种方法是可以获取到系统权限的。
          第一种方法需要有Android源代码,这样才能在Android源代码下通过mm进行编译,其中具体的步骤如下:
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. 使用目标系统的platform密钥来重新给apk文件签名。
这步比较麻烦,首先找到密钥文件,
在我的Android源码目录中的位置 是"build/target/product/security",
下面的platform.pk8和platform.x509.pem两个文件。
然后用 Android提供的Signapk工具来签名,在 在 android目录下/out/host/linux-x86/framework/signapk.jar 
用法为java -jar signapk.jar platform.x509.pem platform.pk8 test.apk test_signed.apk,文件名最好使用绝对路径防止找不到。其中的test.apk是没有签名前的,test_signed.apk是签名后的。
以上是我总结的在Android应用中获取系统权限的方法,希望能有一些帮助。
1 0