pc端如何通过adb获取phone个app的Signature hash code?

How to get Signature hash code of a phone app via adb on pc?

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

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

但是,我如何通过 PC 上的 adb 来完成它?

你可以做到

service call package 2 s16 "com.test" i32 64

并解析结果 Parcel 转储

A​​lex 的回答很好。

警告:前面的代码很丑

我能够使用以下代码以 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