Obelieve's Blog  >  All Categories  >  Notes  >  Android 模拟器创建系统应用

Android 模拟器创建系统应用

Android应用使用到系统级的API,需要对apk进行系统级签名,本文记录下在Android 模拟器中创建系统应用的流程。

1.AOSP镜像创建模拟器🔗

在Android Studio中的Tools->Device Manager->Add Device,选择Android Open Source创建模拟器。

2.生成AOSP的系统签名文件🔗

keytool-importkeypair [-k keystore] [-p storepass] -pk8 pk8 -cert cert -alias key_alias
  • gradle文件配置签名文件
signingConfigs {  
    getByName("debug") {  
        keyAlias = "aa"  
        keyPassword = "123456"  
        storeFile = file("../keystore/platform_123456_aa_.jks")  
        storePassword = "123456"  
    }  
    create("release") {  
        keyAlias = "aa"  
        keyPassword = "123456"  
        storeFile = file("../keystore/platform_123456_aa_.jks")  
        storePassword = "123456"  
    }  
  
}  
  
buildTypes {  
    release {  
        proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")  
        signingConfig = signingConfigs.getByName("release")  
    }  
    debug {  
        signingConfig = signingConfigs.getByName("debug")  
    }  
}

附: apk进行系统级签名🔗

还有一种是对apk直接系统级签名,这个还没试过,暂且记录下📝。

  • AOSP源码中找到签名文件platform.pk8 和 platform.x509.pem
  • 在Android SDK中找到$ANDROID_HOME/build-tools/33.0.0(选择其中一个版本),找到apksigner 程序执行下面命令直接签名apk。 apksigner sign --key platform.pk8 --cert platform.x509.pem <path of YourAPK>

3.导入apk到系统镜像🔗

#启动模拟器,置为可写状态
emulator -avd <YourAVDNameHere> -writable-system
#导入apk到系统目录下
adb root 
adb remount 
adb shell mkdir /system/app/<YourAppFolder> 
adb push <YourAPK> /system/app/<YourAppFolder>/ 
adb reboot

4.应用中使用uid🔗

<manifest xmlns:tools="http://schemas.android.com/tools"  
    package="com.zxy.demo"  
          xmlns:android="http://schemas.android.com/apk/res/android"  
    android:sharedUserId="android.uid.system">
</manifest>
分类: Notes 
标签android
发布于: