Android 将自己的应用改为系统应用并且开机自启
步骤:
- 1.实现开机自启
- 2.添加签名和系统权限
- 3.通过定制系统的签名重新签名apk
1.实现开机自启
2.添加签名和系统权限
1. 加入android:sharedUserId=”android.uid.system”这个属性。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.jant.addview"
android:sharedUserId="android.uid.system" >
<application
...(省略若干代码)
</application>
</manifest>
2.添加系统权限
<!-- 添加系统权限,root的时候用到需要配置签名-->
<uses-permission android:name="android.permission.INSTALL_PACKAGES" />
<uses-permission android:name="android.permission.DELETE_PACKAGES" />
<uses-permission android:name="android.permission.CLEAR_APP_CACHE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.CLEAR_APP_USER_DATA" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MANAGE_USERS" />
<uses-permission android:name="android.permission.GRANT_REVOKE_PERMISSIONS" />
<uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" />
<uses-permission android:name="android.permission.READ_INSTALL_SESSIONS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_MEDIA_STORAGE" />
<uses-permission android:name="android.permission.READ_MEDIA_STORAGE" />
3.给第一个启动的Activity添加category
使得app是唯一的Launcher
<activity
android:name="com.xxxx.WelcomeActivity"
android:screenOrientation="fullSensor"
android:windowSoftInputMode="adjustUnspecified|stateHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<!-- 需要添加的代码-->
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.MONKEY" />
</intent-filter>
</activity>
4.下载signApk并和系统签名放在同一个文件中
下载SignApk.jar (注意要选择对应的android版本)
将(自家智能终端)系统的签名放到signapk同一个目录中:
这个一般是设备厂商给的
5.将自己打包的apk放到同一个目录
AndroidStudio通过build–> 生成带有签名的apk,将程序apk放到signapk同一个目录中。然后通过压缩软件打开apk文件,删掉META-INF目录下的CERT.SF和CERT.RSA两个文件。
6. 在signapk所在文件夹中运行命令行:
其中G:\workspack2\phonefilm_vertical\signapk.jar\cut_vertical_V1.1.0_2020-05-18.apk是通过android studio打包的apk文件,new_vertical_V1.1.0.apk是通过系统签名生成的文件
java -jar signapk.jar -w platform.x509.pem platform.pk8 G:\workspack2\phonefilm_vertical\signapk.jar\cut_vertical_V1.1.0_2020-05-18.apk new_vertical_V1.1.0.apk
7. 最终效果如下:
被系统签名后的apk如下:
new_vertical_V1.1.0就是通过系统签名后的apk
参考:
android之使用signapk打包成系统应用,获取系统权限
Android 程序随开机自动运行
Android应用程序签名系统的签名(SignApk.jar)