Android菜鸟笔记-实现一键重启和关机

这篇博客介绍了如何在不获取设备ROOT权限的情况下,通过在Android系统源码下编译APK并使用系统签名密钥签名,实现一键重启和关机功能。主要步骤包括编写代码、删除APK的CERT.SF和CERT.RSA文件、使用平台密钥重新签名APK,并安装签名后的APK。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大家都知道在不ROOT的情况下一般是无法实现一键关机和重启的。但是想要实现还是有办法的,那就是在系统的源码下编译APK使其获得系统权限,这样就能执行关机和重启命令了,其核心思想是把我们的APK进程添加到system,提升权限,OK,其实也不需要源码,有系统的签名密钥就可以了,实现步骤如下:

1.编写好相关代码

private void DoReboot()
	{
		Intent intent = new Intent(Intent.ACTION_REBOOT);
		intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
		startActivity(intent);
	}
	
	
	private void DoShutdown()
	{
		 Intent intent =new Intent("android.intent.action.ACTION_REQUEST_SHUTDOWN");
		 intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
		 startActivity(intent);
	}

2.在AndroidManifest里添加属性sharedUserID

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    ...
    android:sharedUserId="android.uid.system"
    ...>


3.eclipse生成APK,删掉META-INF目录下的CERT.SF和CERT.RSA两个文件

4.使用当前android系统的platform密钥来重新给apk文件签名。首先,找到密钥文件,在我的Android源码目录中的位置是"build\target\product\security",下面的platform.pk8和platform.x509.pem两个文件。然后,用Android提供的SignApk工具来签名,signapk的源代码是在"build\tools\signapk"下。

5.签名方法

java -jar signapk.jar platform.x509.pem platform.pk8 xxx.apk xxxSigned.apk

6.安装生成的xxxSigned.apk,便可以实现关机和重启了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值