例如,在android程序中,我可以这样做:
android.content.pm.Signature[] sigs = pkm.getPackageInfo(
"com.test", PackageManager.GET_SIGNATURES).signatures;
但是,我怎么能通过PC上的adb来做呢?
答案 0 :(得分:1)
你可以做到
service call package 2 s16 "com.test" i32 64
并解析生成的Parcel
转储
答案 1 :(得分:0)
Alex有一个很好的答案。
警告:前方难看的代码
我能够使用以下代码以root身份获取adb shell中的签名:
package=com.test; b=false; while read line; do case $line in *\<package*${package}*) b=true ;; *\<cert*) if $b; then echo $line | sed -e 's|.*key="||' -e 's|".*||'; b=false; fi esac; done < /data/system/packages.xml
缩进的:
package=com.test
b=false
while read line; do
case $line in
*\<package*${package}*)
b=true ;;
*\<cert*)
if $b; then
echo $line | sed -e 's|.*key="||' -e 's|".*||'
b=false
fi
esac
done < /data/system/packages.xml