如何通过PC上的adb获取手机应用的签名哈希码?

时间:2015-02-11 06:30:27

标签: android adb signature

例如,在android程序中,我可以这样做:

android.content.pm.Signature[] sigs =   pkm.getPackageInfo(
                 "com.test", PackageManager.GET_SIGNATURES).signatures;

但是,我怎么能通过PC上的adb来做呢?

2 个答案:

答案 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