操作系统: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文件夹能够看到有下面文件
dzt@uu:~/workarea/7501_mp_l/android_mtk_l6752_lwt_mp/build/target/product/security$ ls
Android.mk media.x509.pem platform.x509.pem releasekey.pk8 shared.pk8 testkey.pk8 verity_key
media.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
须要输入password,password为: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就可以
參考资料: