我们在做系统级的app开发时,往往会在AndroidManifest.xml文件中添加:android:sharedUserId=”android.uid.system”以获取系统级的权限,如果你正在使用Android Studio进行开发,编译生成的apk会因为签名问题无法安装。

此时有两个解决方案,1,是将编译好的apk放入源码中vender目录下,编写相应的android.mk文件,并在文件中加入:

 LOCAL_CERTIFICATE := platform

然后使用“mmm your_apk_file”编译你的apk。

之后会在”out/target/product/youProduct/system/priv-app”下生成对应的带签名的apk文件。

第二种,就是下边将要介绍的,对于习惯使用ide的同学准备的。


一.准备

首先要准备keytool-importkeypair工具,和签名所需的系统签名文件。

  • 下载keytool-importkeypair

    https://github.com/getfatday/keytool-importkeypair

  • 签名文件

    build/target/product/security/ platform.x509.pem、platform.pk8

二、使用Android studio 生成自己的jks文件

打开新建key的界面:

build->Generate Signed APK…

填写jks路径、密码、别名等信息,点击OK生成jks文件

三、使用keytool-importkeypair工具为生成的jks文件添加系统签名。

  • 首先配置keytool-importkeypair的环境变量,在user文件夹下新建bin目录,将keytool-importkeypair复制到bin目录下,然后将bin目录添加到PATH变量中。

    export PATH=$PATH:/home/username/bin;

  • 将两个系统签名文件platform.x509.pem、platform.pk8复制到jks文件所在的目录中,运行以下命令为签名文件添加系统签名:

    keytool-importkeypair -k [jks文件名] -p [jks的密码] -pk8 platform.pk8 -cert platform.x509.pem -alias [jks的别名]

四、配置gradle文件使用签名文件

配置build.gradle文件(Module:app),在Android{}代码块中添加如下代码:

    signingConfigs {        release {            storeFile file("/home/mi/android_key/mykey_e8.jks")            storePassword 'android'            keyAlias 'platform'            keyPassword 'android'        }        debug {            storeFile file("/home/mi/android_key/mykey_e8.jks")            storePassword 'android'            keyAlias 'platform'            keyPassword 'android'        }    }

五、编译运行

点击run或者debug运行app,这样装在手机后就能够正确运行了。

更多相关文章

  1. 下载android sdk更新包离线安装解决方案
  2. Android性能测试工具(一)之Emmagee
  3. Android(安卓)setContentView 实现同一个activity下不同view的切
  4. android 本地数据库sqlite的封装
  5. Android之底部導航欄--RadioGroup、TabHost、TabActivity
  6. Android(安卓)Studio 怎么添加使用第三方jar包及无法编译的问题
  7. getevent工具和Android中inputevent的分析
  8. iPhone相较Android机型所存在的四大硬伤
  9. android反编译与加固(Mac版)

随机推荐

  1. android 中的activity管理
  2. Android的组成,AS连接mumu模拟器
  3. androidUI布局仿猫扑界面
  4. Android API 中文 (50) ―― SpinnerAdapte
  5. android体系笔记
  6. 后台动态添加布局文件、控件与动态设置属
  7. 笔记:Android消息机制
  8. 13-4-22 Android的back按键的两常用功能
  9. Android studio用WiFi连接adb
  10. android 入门学习笔记 利用bundle实现and