0
當我使用dumpsys調試工具,如Android的'adb shell dumpsys包'哈希引用了什麼?
adb shell dumpsys package com.example.testapp.first
我得到的結果爲單包像這樣(的Nexus 6P,7.1.1):
Packages:
Package [com.example.testapp.first] (2036fd1):
userId=10225
pkg=Package{42e7a36 com.example.testapp.first}
codePath=/data/app/com.example.testapp.first-1
resourcePath=/data/app/com.example.testapp.first-1
legacyNativeLibraryDir=/data/app/com.example.testapp.first-1/lib
primaryCpuAbi=null
secondaryCpuAbi=null
versionCode=1 minSdk=21 targetSdk=24
versionName=1.0
splits=[base]
apkSigningVersion=1
applicationInfo=ApplicationInfo{29cb2a4 com.example.testapp.first}
flags=[ HAS_CODE ALLOW_CLEAR_USER_DATA ALLOW_BACKUP ]
privateFlags=[ RESIZEABLE_ACTIVITIES ]
dataDir=/data/user/0/com.example.testapp.first
supportsScreens=[small, medium, large, xlarge, resizeable, anyDensity]
timeStamp=2016-11-03 01:12:08
firstInstallTime=2016-11-03 01:12:09
lastUpdateTime=2016-11-03 01:12:09
signatures=PackageSignatures{9fe380d [53ea108d]}
installPermissionsFixed=true installStatus=1
pkgFlags=[ HAS_CODE ALLOW_CLEAR_USER_DATA ALLOW_BACKUP ]
User 0: ceDataInode=474317 installed=true hidden=false suspended=false stopped=true notLaunched=true enabled=0
runtime permissions:
在此日誌中,你可以找到幾個散列(或至少散列的第一個x十六進制),如:
Package [com.example.testapp.first] (2036fd1):
pkg=Package{42e7a36 com.example.testapp.first}
applicationInfo=ApplicationInfo{29cb2a4 com.example.testapp.first}
signatures=PackageSignatures{9fe380d [53ea108d]}
但我無法找到任何參考關於如何生成它們。安裝在兩個不同設備上的相同應用不匹配單個散列。我想我的原始問題是:我可以生成一個apk的校驗和/哈希值,它必須與dumpsys日誌中顯示的哈希相匹配嗎?看起來它們不匹配apk的md5sum
或sha1sum
。