標籤:security openssl 調試 eclipse 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]:~/workarea/7501_mp_l/android_mtk_l6752_lwt_mp/build/target/product/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
Android 製作簽名