答:在v1版本的簽名中,簽名以文件的形式存在于apk包中,這個版本的apk包就是一個標準的zip包,V2和V1的差別是V2是對整個zip包進行簽名,而且在zip包中增加了一個apk signature block,里面保存簽名信息。
v2版本簽名塊(APK Signing Block)本身又主要分成三部分:
SignerData(簽名者數(shù)據(jù)):主要包括簽名者的證書,整個APK完整性校驗hash,以及一些必要信息
Signature(簽名):開發(fā)者對SignerData部分數(shù)據(jù)的簽名數(shù)據(jù)
PublicKey(公鑰):用于驗簽的公鑰數(shù)據(jù)
v3版本簽名塊也分成同樣的三部分,與v2不同的是在SignerData部分,v3新增了attr塊,其中是由更小的level塊組成。每個level塊中可以存儲一個證書信息。前一個level塊證書驗證下一個level證書,以此類推。最后一個level塊的證書,要符合SignerData中本身的證書,即用來簽名整個APK的公鑰所屬于的證書