当前位置: 代码迷 >> Android >> Android 打造签名
  详细解决方案

Android 打造签名

热度:63   发布时间:2016-04-28 02:05:18.0
Android 制作签名

操作系统:Ubuntu12.04

手机系统:Android5.0

需要有编译过的Android代码

在Eclipse上开发系统应用时,应用需要系统权限,如:Setting、Phone需要添加android:sharedUserId="android.uid.system"。但不能直接run,

会报下面的错误:Installation error: INSTALL_FAILED_SHARED_USER_INCOMPATIBLE

[2015-03-10 10:24:06 - GNSmartShot] ------------------------------[2015-03-10 10:24:06 - GNSmartShot] Android Launch![2015-03-10 10:24:06 - GNSmartShot] adb is running normally.[2015-03-10 10:24:06 - GNSmartShot] Performing com.gionee.gnsmartshot.ui.MainActivity activity launch[2015-03-10 10:24:06 - GNSmartShot] Automatic Target Mode: using device '0123456789ABCDEF'[2015-03-10 10:24:06 - GNSmartShot] Uploading GNSmartShot.apk onto device '0123456789ABCDEF'[2015-03-10 10:24:06 - GNSmartShot] Installing GNSmartShot.apk...[2015-03-10 10:24:09 - GNSmartShot] Installation error: INSTALL_FAILED_SHARED_USER_INCOMPATIBLE[2015-03-10 10:24:09 - GNSmartShot] Please check logcat output for more details.[2015-03-10 10:24:09 - GNSmartShot] Launch canceled!

非常麻烦;需要使用命令才能编译运行。故想到用源码的平台签名,转成eclipse的keystore,即可直接运行调试程序。

需要以下四个步骤
进入./build/target/product/security目录可以看到有以下文件

[email protected]:[email protected]t/security$ lsAndroid.mk  media.x509.pem  platform.x509.pem  releasekey.pk8       shared.pk8       testkey.pk8       verity_keymedia.pk8   platform.pk8    README             releasekey.x509.pem  shared.x509.pem  testkey.x509.pem  verity_private_dev_key

把platform.pk8、platform.x509.pem这两个文件拷贝出来,新建一个目录存放
1、使用命令openssl pkcs8 -in platform.pk8 -inform DER -outform PEM -out shared.priv.pem -nocrypt把pkcs8格式的私钥转换成pkcs12
2、使用命令openssl pkcs12 -export -in platform.x509.pem -inkey shared.priv.pem -out shared.pk12 -name androiddebugkey把x509.pem公钥转换成pkcs12
需要输入密码,密码为:android
3、使用命令keytool -importkeystore -deststorepass android -destkeypass android -destkeystore debug.keystore -srckeystore shared.pk12 -srcstoretype PKCS12 -srcstorepass android -alias androiddebugkey生成debug.keystore

上面命令的截图:



4、eclipse 的Windows/Preferences/Android/Build中设置"Custom debug keystore"为刚才生成的keystore即可


参考资料:

1.http://my.oschina.net/blackylin/blog/176851

  相关解决方案