Android 使用系统签名(实现关机)

Android 模拟器环境

genymotion 7.0

  1. 修改AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    android:sharedUserId="android.uid.system"
    package="com.example.myapplication">
    
	<uses-permission android:name="android.permission.SHUTDOWN"/>
	
</manifest>

android:sharedUserId="android.uid.system"添加完这个时候直接运行app是打开不了的,需要用当前Android的签名文件给打包后的apk重新签名。

  1. 添加关机代码
Intent intent = new Intent("android.intent.action.ACTION_REQUEST_SHUTDOWN");
intent.putExtra("android.intent.extra.KEY_CONFIRM", false);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
this.startActivity(intent);

代码来源于网络

  1. 打包apk
    Android Studio : Build -> Generate Signed Bundle/Apk ..... 不详细说了

  2. 使用签名文件 重新生成apk
    signapk.jar :路径 /prebuilts/sdk/tools/lib/signapk.jar
    platform.pk8 :路径 /build/target/product/security/
    platform.x509.pem:路径 /build/target/product/security/
    (Ubuntu 需要下面文件,window不需要)
    libconscrypt_openjdk_jni.so :路径 /prebuilts/sdk/tools/linux/lib64/

定制的系统platform.pk8和platform.x509.pem由厂家提供。

  1. 重新签名(Ubuntu)
//将上面4个文件放在同一个路径 例如放在:/home/user/Android这个目录里面
cd Android 

java -Djava.library.path=. -jar signapk.jar platform.x509.pem platform.pk8 app-release.apk out.apk

app-release.apk 为Android studio 打包出来的apk 。如果没有放在当前目录下请填写绝对路径。
out.apk 为签名后的apk路径,直接写out.apk 生成当前目录下

  1. 重新签名(Window)
 java -jar signapk.jar platform.x509.pem platform.pk8 app-release.apk out.apk

和上面的一样 ,主要的是Window 最好用java8使用上面命令,我用java11会报错

下面贴上用到的文件
Android 7.0 签名文件

最后Android将自己应用设置成系统应用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值