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
转储
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
例如,在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
转储
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