{"id":2094,"date":"2023-07-27T14:58:17","date_gmt":"2023-07-27T06:58:17","guid":{"rendered":"https:\/\/www.zhidianwl.net\/zhidianwl\/?p=2094"},"modified":"2023-07-27T14:58:17","modified_gmt":"2023-07-27T06:58:17","slug":"apk-v2v3%e7%ad%be%e5%90%8d%e6%9c%89%e4%bd%95%e5%b7%ae%e5%88%ab%e5%91%a2%ef%bc%9f","status":"publish","type":"post","link":"https:\/\/www.zhidianwl.net\/zhidianwl\/2023\/07\/27\/apk-v2v3%e7%ad%be%e5%90%8d%e6%9c%89%e4%bd%95%e5%b7%ae%e5%88%ab%e5%91%a2%ef%bc%9f\/","title":{"rendered":"apk v2v3\u7b7e\u540d\u6709\u4f55\u5dee\u522b\u5462\uff1f"},"content":{"rendered":"
APK\u7684\u7b7e\u540d\u662fAndroid\u5e94\u7528\u7a0b\u5e8f\u6253\u5305\u8fc7\u7a0b\u4e2d\u7684\u4e00\u4e2a\u91cd\u8981\u6b65\u9aa4\uff0c\u7528\u4e8e\u9a8c\u8bc1\u5e94\u7528\u7a0b\u5e8f\u7684\u5b8c\u6574\u6027\u548c\u771f\u5b9e\u6027\u3002\u5728Android\u7cfb\u7edf\u4e2d\uff0cAPK\u6587\u4ef6\u662f\u4ee5ZIP\u6587\u4ef6\u683c\u5f0f\u8fdb\u884c\u6253\u5305\u7684\uff0c\u800c\u7b7e\u540d\u5219\u662f\u5c06\u5e94\u7528\u7a0b\u5e8f\u7684\u6570\u5b57\u8bc1\u4e66\u4e0eAPK\u6587\u4ef6\u8fdb\u884c\u5173\u8054\uff0c\u4ee5\u786e\u4fdd\u6587\u4ef6\u7684\u5b8c\u6574\u6027\u548c\u8eab\u4efd\u8ba4\u8bc1\u3002<\/p>\n
APK\u6587\u4ef6\u7684\u7b7e\u540d\u4e00\u822c\u5206\u4e3av1\u3001v2\u548cv3\u4e09\u79cd\u683c\u5f0f\uff0c\u5176\u4e2dv2\u548cv3\u662f\u5728Android 7.0\uff08API\u7ea7\u522b24\uff09\u53ca\u4ee5\u4e0a\u7248\u672c\u4e2d\u5f15\u5165\u7684\u65b0\u7b7e\u540d\u683c\u5f0f\u3002\u4e0b\u9762\u5c06\u8be6\u7ec6\u4ecb\u7ecdAPK v2\/v3\u7b7e\u540d\u7684\u539f\u7406\u548c\u8fc7\u7a0b\u3002<\/p>\n
1. \u6982\u8ff0<\/p>\n
APK v2\/v3\u7b7e\u540d\u662f\u4f7f\u7528Google\u63d0\u4f9b\u7684ApkSigner\u5de5\u5177\u6765\u5b8c\u6210\u7684\u3002\u8be5\u5de5\u5177\u53ef\u4ee5\u5bf9APK\u6587\u4ef6\u8fdb\u884c\u7b7e\u540d\u548c\u9a8c\u8bc1\uff0c\u63d0\u4f9b\u4e86\u66f4\u5f3a\u5927\u548c\u5b89\u5168\u7684\u7b7e\u540d\u673a\u5236\u3002<\/p>\n
2. \u539f\u7406<\/p>\n
APK v2\/v3\u7b7e\u540d\u91c7\u7528\u4e86\u65b0\u7684\u7b7e\u540d\u65b9\u5f0f\uff0c\u4e0ev1\u7b7e\u540d\u76f8\u6bd4\uff0c\u5177\u6709\u66f4\u597d\u7684\u5b89\u5168\u6027\u548c\u53ef\u9760\u6027\u3002\u5176\u4e2dv2\u7b7e\u540d\u57fa\u4e8eJAR\u7b7e\u540d\u89c4\u8303\uff0cv3\u7b7e\u540d\u5219\u662f\u5bf9v2\u7b7e\u540d\u8fdb\u884c\u8fdb\u4e00\u6b65\u7684\u6269\u5c55\u3002<\/p>\n
\u5728APK v2\u7b7e\u540d\u4e2d\uff0c\u7b7e\u540d\u4fe1\u606f\u5b58\u50a8\u5728APK\u7684ZIP\u4e2d\u7684MANIFEST.MF\u6587\u4ef6\u4ee5\u53ca.apk\u7b7e\u540d\u6587\u4ef6\u4e2d\u7684META-INF\u76ee\u5f55\u4e0b\u3002\u5728v2\u7b7e\u540d\u4e2d\uff0c\u6bcf\u4e2a\u7b7e\u540d\u7b97\u6cd5\u90fd\u4f1a\u751f\u6210\u4e00\u4e2a\u72ec\u7acb\u7684\u7b7e\u540d\u5757\uff0c\u56e0\u6b64\u53ef\u4ee5\u652f\u6301\u591a\u4e2a\u7b7e\u540d\u7b97\u6cd5\u3002<\/p>\n
\u800c\u5728APK v3\u7b7e\u540d\u4e2d\uff0c\u7b7e\u540d\u4fe1\u606f\u5b58\u50a8\u5728APK\u7684ZIP\u4e2d\u7684MANIFEST.MF\u6587\u4ef6\u4ee5\u53ca.apk\u7b7e\u540d\u6587\u4ef6\u4e2d\u7684META-INF\u76ee\u5f55\u4e0b\uff0c\u5e76\u989d\u5916\u5305\u542b\u4e00\u4e2aAPK Signature Block\u5757\u3002\u8fd9\u4e2a\u5757\u4e2d\u5305\u542b\u4e86\u7b7e\u540d\u7b97\u6cd5\u7684\u6807\u8bc6\u3001\u7b7e\u540d\u7b97\u6cd5\u7684\u53c2\u6570\u3001\u7b7e\u540d\u6570\u636e\u7b49\u4fe1\u606f\u3002<\/p>\n
3. \u8fc7\u7a0b<\/p>\n
APK v2\/v3\u7b7e\u540d\u7684\u8fc7\u7a0b\u4e3b\u8981\u5305\u542b\u4ee5\u4e0b\u51e0\u4e2a\u6b65\u9aa4\uff1a<\/p>\n
\uff081\uff09\u751f\u6210\u7b7e\u540d\u8bc1\u4e66<\/p>\n
\u9996\u5148\u9700\u8981\u751f\u6210\u4e00\u4e2a\u7b7e\u540d\u8bc1\u4e66\uff0c\u53ef\u4f7f\u7528Java\u7684keytool\u5de5\u5177\u6765\u751f\u6210\u3002\u751f\u6210\u8bc1\u4e66\u65f6\u9700\u8981\u8bbe\u7f6e\u8bc1\u4e66\u522b\u540d\u3001\u6709\u6548\u671f\u3001\u5bc6\u7801\u7b49\u4fe1\u606f\u3002<\/p>\n
\uff082\uff09\u751f\u6210\u7b7e\u540d\u6587\u4ef6<\/p>\n
\u4f7f\u7528ApkSigner\u5de5\u5177\u751f\u6210\u7b7e\u540d\u6587\u4ef6\u3002\u7b7e\u540d\u6587\u4ef6\u662f\u4e00\u4e2a\u5355\u72ec\u7684\u6587\u4ef6\uff0c\u7528\u4e8e\u5b58\u50a8\u7b7e\u540d\u548c\u7b7e\u540d\u76f8\u5173\u7684\u4fe1\u606f\u3002\u5728\u751f\u6210\u7b7e\u540d\u6587\u4ef6\u65f6\uff0c\u9700\u8981\u6307\u5b9a\u4f7f\u7528\u7684\u7b7e\u540d\u7b97\u6cd5\uff0c\u6bd4\u5982SHA256withRSA\u3002<\/p>\n
\uff083\uff09\u5c06\u7b7e\u540d\u6587\u4ef6\u4e0eAPK\u5173\u8054<\/p>\n
\u4f7f\u7528ApkSigner\u5de5\u5177\u5c06\u7b7e\u540d\u6587\u4ef6\u4e0eAPK\u8fdb\u884c\u5173\u8054\u3002\u8fd9\u4e2a\u8fc7\u7a0b\u4f1a\u5c06\u7b7e\u540d\u6587\u4ef6\u4e2d\u7684\u7b7e\u540d\u4fe1\u606f\u5199\u5165\u5230APK\u7684MANIFEST.MF\u6587\u4ef6\u548cMETA-INF\u76ee\u5f55\u4e0b\u3002\u540c\u65f6\uff0c\u4f1a\u6839\u636e\u7b7e\u540d\u7b97\u6cd5\u751f\u6210\u76f8\u5e94\u7684\u7b7e\u540d\u5757\uff0c\u5e76\u5c06\u5176\u5199\u5165\u5230APK\u7684META-INF\u76ee\u5f55\u4e0b\u3002<\/p>\n
\uff084\uff09\u9a8c\u8bc1\u7b7e\u540d<\/p>\n
\u4e3a\u4e86\u9a8c\u8bc1\u7b7e\u540d\u7684\u6709\u6548\u6027\uff0c\u53ef\u4ee5\u4f7f\u7528ApkSignatureSchemeV2Verifier\u5de5\u5177\u5bf9APK\u8fdb\u884c\u7b7e\u540d\u9a8c\u8bc1\u3002\u8be5\u5de5\u5177\u4f1a\u8bfb\u53d6APK\u4e2d\u7684\u7b7e\u540d\u5757\uff0c\u9a8c\u8bc1\u7b7e\u540d\u7b97\u6cd5\u3001\u7b7e\u540d\u6570\u636e\u7b49\u4fe1\u606f\u7684\u6b63\u786e\u6027\u3002<\/p>\n
4. \u6ce8\u610f\u4e8b\u9879<\/p>\n
\u5728\u8fdb\u884cAPK v2\/v3\u7b7e\u540d\u65f6\uff0c\u9700\u8981\u6ce8\u610f\u4ee5\u4e0b\u51e0\u70b9\uff1a<\/p>\n
\uff081\uff09\u7b7e\u540d\u8bc1\u4e66\u7684\u5408\u6cd5\u6027\u548c\u5b89\u5168\u6027\u975e\u5e38\u91cd\u8981\uff0c\u9700\u8981\u4fdd\u8bc1\u8bc1\u4e66\u7684\u79c1\u94a5\u5b89\u5168\uff0c\u907f\u514d\u79c1\u5b89\u5353\u7b7e\u540d\u63d0\u53d6\u5de5\u5177<\/a>\u94a5\u6cc4\u6f0f\u3002<\/p>\n \uff082\uff09\u7b7e\u540d\u8bc1\u4e66\u7684\u6709\u6548\u671f\u9700\u8981\u5408\u7406\u8bbe\u7f6e\uff0c\u8fc7\u671f\u7684\u8bc1\u4e66\u5c06\u65e0\u6cd5\u901a\u8fc7\u9a8c\u8bc1\u3002<\/p>\n \uff083\uff09\u5728\u7b7e\u540d\u8fc7\u7a0b\u4e2d\uff0c\u8981\u786e\u4fdd\u7b7e\u540d\u6587\u4ef6\u4e0eAPK\u6587\u4ef6\u7684\u4e00\u81f4\u6027\uff0c\u4efb\u4f55\u6539\u52a8\u90fd\u53ef\u80fd\u5bfc\u81f4\u7b7e\u540d\u5931\u6548\u3002<\/p>\n \u603b\u7ed3\uff1a<\/p>\n APK v2\/v3\u7b7e\u540d\u662fAndroid\u5e94\u7528\u7a0b\u5e8f\u6253\u5305\u8fc7\u7a0b\u4e2d\u7684\u91cd\u8981\u6b65\u9aa4\uff0c\u53ef\u4ee5\u786e\u4fdd\u5e94\u7528\u7a0b\u5e8f\u7684\u5b8c\u6574\u6027<\/p>\n