如果要在Eclipse中调试Android源码中非test key签名的程序(也就是使用platform, media or shared key签名的程序),需要把Android源码中的公私钥对(build/target/product/security)转换为Eclipse能够使用的keystore。
转换步骤如下:
1、把build/target/product/security下面的某对需要转换的key拷贝到一个你的工作目录
(下面以shared key为例:shared.pk8 & shared.x509.pem)
把pkcs8格式的私钥转换为pkcs12格式:
openssl pkcs8 -in shared.pk8 -inform DER -outform PEM -out shared.priv.pem -nocrypt
2、生成pkcs12格式的密钥文件:
openssl pkcs12 -export -in shared.x509.pem -inkey shared.priv.pem -out shared.pk12 -name androiddebugkey
(注:此过程中需要输入密码:android)
3、生成keystore:
keytool -importkeystore -deststorepass android -destkeypass android -destkeystore debug.keystore -srckeystore shared.pk12 -srcstoretype PKCS12 -srcstorepass android -alias androiddebugkey
至此,已经生成keystore:debug.keystore
在Eclipse的Windows/Preferences/Android/Build中设置“Custom debug keystore“为刚才生成的keystore即可。
对于其它类型的key,步骤相同。
有一个linux下的写好的shell脚本,位于
https://github.com/getfatday/keytool-importkeypair
做了一个Windos批处理来生成,拷贝到记事本,存成 xx.bat 即可源码如下:
call:ppp testkey
call:ppp media
call:ppp shared
call:ppp platform
pause
:ppp
openssl pkcs8 -in %1.pk8 -inform DER -outform PEM -out %1.priv.pem -nocrypt
openssl pkcs12 -export -in %1.x509.pem -inkey %1.priv.pem -out %1.pk12 -name androiddebugkey
keytool -importkeystore -deststorepass android -destkeypass android -destkeystore %1.keystore -srckeystore %1.pk12 -srcstoretype PKCS12 -srcstorepass android -alias androiddebugkey
goto:eofp
已经生成好的可以拿来用的MTK平台通用文件存放于
windows:
file:///\\s2.y\public\security-keystore-4eclipse\k86-4eclipse
linux:
smb://s2.y/public/security-keystore-4eclipse/k86-4eclipse
用的时候,在 eclipse 的菜单 Window— Preferences — Android— Build 指定 Custom debug keystore 即可直接以相应签名 run 进设备调试。