android程序获得系统权限的办法

平时编写的android程序属于第三方的应用程序,没有设计到修改系统,最多引用系统信息,今天要自定义一个时间设置需要用到系统权限,在网上学习之后,mark一下。

本文参考了

此昵称已经存在吗的Android系统权限和root权限
1.要活得系统权限,在完成程序的编写后,在配置文件AndroidManifest.xml中加入android:sharedUserId="android.uid.system,如下文

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.date"
    android:versionCode="1"
    android:versionName="1.0" 
    android:sharedUserId="android.uid.system">

加入这句命令,告诉系统需要权限,但并没有给系统权限,下面两种是大家用到的比较多的办法:

第一种:

需要在linux环境下完成,而且是编译android源码的环境下,修改Android.mk文件,加入LOCAL_CERTIFICATE := platform这一行,使用mm命令来编译,生成的apk就有修改系统时间的权限了(这个我没有操作)。

第二种:

不需要在源码环境下,但还是要求你有android的源码,而且我第一次弄的时候还是跑到linux底下了。

使用eclipse编译出apk文件。使用目标系统的platform密钥来重新给apk文件签名。首先找到密钥文件,在我

android源码目录中的位置是"build/target/product/security"下面的platform.pk8和platform.x509.pem两个文件。然后用Android提供的Signapk工具来签名,

signapk的源代码是在"build/tools/signapk"下,编译后在out/host/linux-x86/framework下(android 9.0后路径为out/soong/host/linux-x86/framework/signapk.jar ,如还是找不到signapk.jar文件,可直接在out目录下搜索:find -name "signapk.jar")

用法为:      java -jar signapk.jar platform.x509.pem platform.pk8 input.apk output.apk"。

这里注意一下,好多人都直接说编译,让小白很难受啊,我说详细点,就是在linux环境下,去到"build/target/product/security",是一个.java文件,我用的javac编译通过,但也提示了一堆东西没有"javac SignApk.java"。我用mm来编译,死活不成功,提示/usr/bin/mm没有那个文件或目录。

这里再说一下,因为这里是对apk进行操作的,所以不用IDE的debug来调试,如果没有提前在path里面设置环境变量的话,可以到android的sdk目录platform-tools里有adb,用cmd命令窗来定位,然后执行adb install  yourapkname.apk。如果不是第一次安装,建议把之前的卸载,再安装
--------------------- 
作者:qq_21042009 
来源:CSDN 
原文:https://blog.csdn.net/qq_21042009/article/details/78732919 
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值