Android簽名方案經(jīng)歷幾個(gè)版本站粟,分別為v1,v2,v3,我們分別講下它們的實(shí)現(xiàn)炒辉。
V1簽名方案
1.計(jì)算每個(gè)文件的SHA-1摘要嬉挡,進(jìn)行Base64編碼后寫入MANIFEST.MF文件彤悔;
2.計(jì)算整個(gè)MANIFEST.MF文件的SHA-1摘要噪服,進(jìn)行Base64編碼后寫入.SF文件邓了;
3.計(jì)算MAINFEST.MF文件中每一塊摘要的SHA-1摘要恨诱,進(jìn)行BASE64編碼后寫入.SF文件;
4.計(jì)算整個(gè).SF文件的數(shù)字簽名(先摘要再私匙加密);
5.將數(shù)字簽名和X.509開發(fā)者數(shù)字證書寫入.RSA文件骗炉;
V2簽名方案
將apk包按照1MB大小分割為多個(gè)塊照宝,然后計(jì)算每個(gè)塊的摘要,生成一個(gè)簽名塊句葵,然后計(jì)算簽名塊中所有的摘要的簽名厕鹃,最后添加X.509開發(fā)者數(shù)字證書。
V3簽名方案
在v2簽名塊的的基礎(chǔ)上增加一個(gè)attr塊乍丈,里面保存了多個(gè)level的證書信息剂碴,可以實(shí)現(xiàn)證書的替換。