制作Android系统App

1. 推至指定目录

        如何让一个第三方apk成为系统apk呢?传统的办法是连上adb线,push到系统指定目录下:

$ adb push 'demo.apk' /system/priv-app/

       然后reboot安卓终端达到重启,重启后会自动安装第三方apk为系统apk。

$ adb reboot

      需要说明的是,如果demo.apk有第三方lib库依赖,需要添加lib下的库文件至/system/lib-64中。否则app运行会报缺少库文件依赖的异常。

$ adb push '/Face/libnative-lib-vcc.so' /system/lib-64

     如果你需要卸载系统apk就略微有些麻烦,你需要remove掉这些目录下的文件。而且容易残留碎片。(比如,最容易犯的错是你只删了system/priv-app下的apk文件,却没有去/system/lib-64下删除依赖)。

$ adb rm -rf /system/priv-app/demo.apk
$ adb reboot            #需要重启才能生效.

2. 制作系统签名

      上述方法因为要频繁reboot,且容易产生大量碎片实在不可取。另一种方法是使第三方apk取得系统签名,就可以像安装/卸载第三方apk一样达到制作系统apk的目标。

      这个过程需要得到目标安卓终端的系统源代码编译出来的文件。首先,在Android源代码目录下找到该编译文件:

      两个平台签名文件的地址分别为:

android/build/target/product/security/platform.pk8 ;

android/build/target/product/security/platform.x509.pem

       需要在Shell终端中,把platform.pk8文件从pkcs8格式私钥转化为pkcs12格式:

$ openssl pkcs8  -in platform.pk8  -inform DER  -outform  PEM  -out  shared.priv.pem  -nocrypt

       同理,把platform.x509.pem转化为pkcs12格式:

$  openssl  pkcs12  -export  -in  platform.x509.pem  -inkey  shared.pri

v.pem  -out  shared.pk12  -name  androiddebugkey

       文件设置私钥名称为androiddebugkey, 然后会弹出设置私钥密码,输入“android”.

key store password:android

key alias:androiddebugkey

key password: android

       利用Linux自带的keytool制作platform.keystore签名文件:

$ keytool -importkeystore  -deststorepass  android -destkeypass android -destkeystore  platform.keystore  -srckeystore  shared.pk12   -srcstoretype  PKCS12  -srcstorepass android -alias androiddebugkey

 3. Android Studio导入签名文件

     首先,保证项目Make Project通过。接着,Build > Generate Signed Apk:

     

        选择.keystore签名文件所在目录,分别输入key store password等参数(同之前Shell终端输入)

           

         然后点击Next按钮,选择v2 Full APK Signature。然后,你的app只要遵循第三方apk安装方式即可!系统apk制作至此步完成。

             

         当然你也可以用adb install和adb uninstall命令来安装指定路径下的apk。

$ adb install 'Face/app-debug.apk'   # install参数后接的是apk路径
$ adb uninstall 'com.example.helloworld'   # uninstall参数后接的是已安装apk的packageName.

     

        如有任何问题和疑问,欢迎大家关注我的微信公众号:

                                               

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值