°²×¿ÊµÏÖÇ©ÃûУ¼ì(apkÇ©ÃûУÑé)
°²×¿Ó¦ÓÃÇ©ÃûУÑéÉîÈëÀí½âÓë²Ù×÷Ö¸ÄÏ
½«´øÄúÉîÈëÁ˽ⰲ׿ӦÓõÄÇ©ÃûУÑé¹ý³Ì£¬°üÀ¨ÈçºÎ²é¿´Ó¦ÓÃÇ©Ãû¡¢ÏµÍ³Ç©Ãû¡¢Ç©Ãû»úÖÆÖÐÇ©ÃûÎļþºÍÊý×ÖÖ¤ÊéµÄ×÷Óã¬ÒÔ¼°ÈçºÎ½øÐÐAndroid APPµÄÇ©ÃûµÈ¡£ÈÃÎÒÃÇÒ»Æð¿ªÊ¼Õâ¸öÂó̡£
Ò»¡¢ÈçºÎ²é¿´AndroidÓ¦ÓÃÇ©Ãû
²é¿´Ó¦ÓÃÇ©Ãû£¬¿ÉÒÔͨ¹ýAndroid Studio½øÐС£Ñ¡ÔñGradle±êÇ©£¬Ñ¡ÔñÄúµÄÏîÄ¿£¬È»ºóÑ¡ÔñsigningReportÕâ¸öTask£¬Ë«»÷ÔËÐС£ÔÚGradle ConsoleÖУ¬Äú¿ÉÒÔ¿´µ½Ç©ÃûÐÅÏ¢¡£Äú»¹¿ÉÒÔʹÓýâѹ¹¤¾ß´ò¿ªAPKÎļþ£¬ÔÚMETA-INFÎļþ¼ÐÕÒµ½CERT.RSAÎļþ£¬Í¨¹ýÃüÁîÐлñȡǩÃûÐÅÏ¢¡£Èç¹ûÄúµÄÇ©ÃûÎļþÊÇjks¸ñʽµÄ£¬Í¬Ñù¿ÉÒÔͨ¹ýÃüÁîÐв鿴ÆäÖеÄÇ©ÃûÐÅÏ¢¡£
¶þ¡¢AndroidϵͳǩÃû
ÔÚijЩÇé¿öÏ£¬ÎÒÃÇ¿ª·¢µÄapk¿ÉÄÜÐèҪϵͳȨÏÞ¡£Õâʱ£¬ÐèÒªÔÚAndroidManifest.xmlÖÐÌí¼Ó¹²Ïíϵͳ½ø³ÌÊôÐÔ¡£ÎªÁËÈÃapkÄÜÕý³£Ê¹Óã¬ÆäÇ©Ãû±ØÐëÊÇϵͳǩÃû£¬Èçplatform¡¢shared»òmedia¡£»ñȡϵͳǩÃûͨ³£ÐèÒªÒ»¸ö±àÒë¹ýµÄÔ´Âë»·¾³£¬½«AppÔ´Âë·ÅÈëÌØ¶¨Ä¿Â¼²¢ÅäÖÃAndroid.mk£¬È»ºóʹÓÃmm±àÒëApp£¬Éú³ÉµÄapk¼´¾ßÓÐϵͳǩÃû¡£ÁíÒ»ÖÖ·½·¨ÊÇÔÚEclipse»òAndroid StudioϱàÒëApp£¬È»ºóÖØÐÂÇ©Ãû£¬µ«ÕâÖÖ·½Ê½ÔÚÆµ·±µ÷ÊÔʱ½ÏΪ·±Ëö¡£
Èý¡¢AndroidÇ©Ãû»úÖÆÖ®Ç©ÃûÎļþºÍÊý×ÖÖ¤ÊéµÄ×÷ÓÃ
AndroidÇ©Ãû»úÖÆµÄÄ¿µÄÊÇÈ·±£appµÄ¿É¿¿Í¨ÐÅ¡£Êý×ÖÇ©Ãû¼¼Êõ¾ÍÊÇΪÁ˽â¾öÏûÏ¢µÄÀ´Ô´È·ÈÏÒÔ¼°ÐÅÏ¢ÍêÕûÐÔ±£»¤ÕâÁ½¸öÎÊÌâ¶ø²úÉúµÄ¡£·¢ËÍ·½Ê¹ÓÃÒ»¶Ô¹«Ë½Ô¿£¬½«¹«Ô¿·ÖÏí¸ø½ÓÊÕ·½¡£
ËÄ¡¢Android APPµÄÇ©Ãû¹ý³Ì
¶ÔAPP½øÐÐÇ©Ãû£¬ÊÇÈ·±£APPÍêÕûÐÔºÍÀ´Ô´¿É¿¿ÐÔµÄÖØÒª²½Öè¡£ÔÚ¿ª·¢¹ý³ÌÖУ¬ÎÒÃÇÐèÒªÉú³ÉÊý×ÖÖ¤ÊéºÍÇ©ÃûÎļþ¡£ÕâЩÎļþ°üÀ¨platform.x509.pem¡¢platform.pk8µÈ¡£ÔÚÇ©Ãû¹ý³ÌÖУ¬ÎÒÃÇÐèÒªÒÆ³ýAPKÖеÄMETA-INF/CERT.SFºÍMETA-INF/CERT.RSAÎļþ£¬È»ºóʹÓÃÇ©ÃûÃüÁî½øÐÐÇ©Ãû¡£ÎÒÃÇÒ²¿ÉÒÔ¼¯³ÉϵͳǩÃûµ½Android StudioÖУ¬ÕâÐèÒªÓõ½keytool-importkeypair¹¤¾ß£¬½«ÏµÍ³Ç©ÃûµÄÏà¹ØÐÅÏ¢µ¼Èëµ½ÒÑÓеÄÇ©ÃûÎļþÖС£
Îå¡¢´¦ÀíAndroidÇ©ÃûÖ¤Êé¹ýÆÚ
µ±ÎÒÃǵÄAndroidÇ©ÃûÖ¤Êé¹ýÆÚʱ£¬ÎÒÃÇÐèÒªÖØÐÂÉú³ÉеÄÖ¤Êé²¢ÖØÐÂÇ©ÃûÎÒÃǵÄÓ¦Óá£Õâ¸ö¹ý³Ì°üÀ¨Éú³ÉеÄjksÇ©ÃûÎļþ£¬¸üÐÂÓ¦ÓõÄÇ©ÃûÐÅÏ¢£¬²¢ÖØÐ±àÒëºÍ·¢²¼Ó¦Óá£
°²×¿Ó¦ÓÃÇ©ÃûУÑéÊÇÈ·±£Ó¦Óð²È«ºÍÍêÕûµÄÖØÒª²½Ö衣ϣÍûͨ¹ýµÄ½²½â£¬ÄúÄܸüºÃµØÀí½â²¢²Ù×÷°²×¿Ó¦ÓÃÇ©ÃûУÑéµÄ¹ý³Ì¡£Êý×ÖÇ©Ãû¼¼ÊõÔÚͨÐÅÁìÓò°çÑÝ×ÅÖØÒªµÄ½ÇÉ«£¬ËüÈ·±£ÁËÐÅÏ¢µÄ°²È«ÐÔºÍÍêÕûÐÔ¡£¶ÔÓÚÏûÏ¢µÄ·¢ËÍÕßÀ´Ëµ£¬Í¨¹ýÊý×ÖÇ©Ãû¼¼Êõ£¬¿ÉÒÔÈ·±£ÐÅÏ¢µÄÕæÊµÐԺͲ»±»´Û¸Ä¡£¶ø¶ÔÓÚÐÅÏ¢µÄ½ÓÊÕÕßÀ´Ëµ£¬Êý×ÖÇ©Ãû¼¼ÊõÔò¿ÉÒÔ°ïÖúËûÃÇÑéÖ¤ÐÅÏ¢µÄÀ´Ô´ºÍÍêÕûÐÔ¡£ÔÚʵ¼ÊÓ¦ÓÃÖУ¬Êý×ÖÇ©Ãû½áºÏÊý×ÖÖ¤ÊéµÄʹÓ㬸üÊÇÔöÇ¿ÁËͨÐŵݲȫÐÔ¡£ÏÂÃæ½«Ïêϸ²ûÊöÊý×ÖÇ©ÃûºÍÊý×ÖÖ¤ÊéµÄÔÀí¼°Ó¦Ó㬲¢¶ÔAndroidAPPµÄÇ©ÃûÁ÷³ÌÒÔ¼°Êý×ÖÇ©ÃûÖ¤Êé¹ýÆÚ´¦Àí·½·¨½øÐÐ˵Ã÷¡£
Ò»¡¢Êý×ÖÇ©ÃûÓëÊý×ÖÖ¤Êé
Êý×ÖÇ©ÃûÊÇÐÅÏ¢µÄ·¢ËÍÕßʹÓÃ˽Կ¶ÔÏûÏ¢ÕªÒª½øÐмÓÃܺó²úÉúµÄÊý×Ö´®¡£ËüÈ·±£ÁËÐÅÏ¢µÄÍêÕûÐÔºÍÕæÊµÐÔ¡£Êý×ÖÖ¤ÊéÔòÊÇÒ»ÖÖ°üº¬¹«Ô¿¡¢Ö¤ÊéËùÓÐÕßÐÅÏ¢¡¢ÓÐЧÆÚµÈÄÚÈݵĵç×ÓÎĵµ£¬ÓÃÓÚÑéÖ¤¹«Ô¿µÄÕæÊµÐÔºÍÓÐЧÐÔ¡£Êý×ÖÖ¤ÊéÓÉȨÍþµÄµÚÈý·½»ú¹¹·¢²¼£¬²¢Ê¹ÓÃÁËÊý×ÖÇ©Ãû¼¼Êõ¡£
¶þ¡¢AndroidAPPµÄÇ©ÃûÁ÷³Ì
ΪÁ˱ÜÃâAndroidAPP±»ËæÒ⸲¸Ç£¬AndroidÒªÇó¶ÔAPP½øÐÐÇ©Ãû¡£Ç©ÃûÁ÷³ÌÈçÏ£º
1. ÔÚAndroid¿ª·¢»·¾³ÖÐÑ¡Ôñbuilder²Ëµ¥ÏµÄGenerateSignedAPKÑ¡Ïî¡£
2. µ¯³öÇ©ÃûÏòµ¼¶Ô»°¿ò£¬Ñ¡ÔñÊý×ÖÖ¤Êé¡£Èç¹ûûÓÐÊý×ÖÖ¤Ê飬¿ÉÒÔµã»÷Create new°´Å¥´´½¨Êý×ÖÖ¤Êé¡£
3. ÊäÈëÖ¤ÊéµÄ´æ´¢Â·¾¶¡¢ÎļþÃû³Æ¡¢ÃÜÂë¡¢ÓÐЧÄê·Ý¡¢·¢²¼ÈËÔ±µÄÐÕÃû¡¢µ¥Î»¡¢ËùÔÚ³ÇÊС¢Ê¡·Ý¡¢¹ú¼ÒµÈÐÅÏ¢¡£
4. Ñ¡ÔñÇ©ÃûºóµÄ°²×°°ü´æ·Å·¾¶¡¢¹¹½¨ÀàÐÍ£¬µã»÷finishÍê³É°²×°°üµÄ¹¹½¨¡£
Èý¡¢¹ØÓÚÇ©ÃûÖ¤Êé¹ýÆÚµÄÎÊÌâ
Èç¹ûAndroidÇ©ÃûÖ¤Êé¹ýÆÚ£¬½«»áÓ°Ïìµ½APPµÄ°²×°ºÍ¸üС£ÐèÒªÖØÐÂÉú³ÉеÄÇ©ÃûÖ¤Êé¶ÔAPP½øÐÐÇ©Ãû¡£ÔÚÉú³ÉеÄÇ©ÃûÖ¤Êéʱ£¬ÐèҪȷ±£ÐµÄÖ¤ÊéÐÅÏ¢Óë¾ÉµÄÖ¤ÊéÐÅÏ¢Ò»Ö£¬ÒÔÈ·±£APPµÄÕý³£ÔËÐС£ÎªÁ˱ÜÃâÀàËÆÎÊÌâµÄÔٴη¢Éú£¬Ó¦¶¨ÆÚ¼ì²éÇ©ÃûÖ¤ÊéµÄÓÐЧÆÚ£¬²¢¼°Ê±¸üС£
ËÄ¡¢Êý×ÖÇ©ÃûÓëͨÐŰ²È«
Êý×ÖÇ©Ãû¼¼Êõͨ¹ýÈ·±£ÐÅÏ¢µÄÍêÕûÐÔºÍÕæÊµÐÔ£¬ÎªÍ¨ÐŰ²È«ÌṩÁËÖØÒª±£ÕÏ¡£½áºÏÊý×ÖÖ¤ÊéµÄʹÓ㬸üÊÇÔöÇ¿ÁËͨÐŵݲȫÐÔ¡£ÔÚʵ¼ÊÓ¦ÓÃÖУ¬Êý×ÖÇ©ÃûºÍÊý×ÖÖ¤Êé¹ã·ºÓ¦ÓÃÓÚÍøÂçͨÐÅ¡¢µç×ÓÉÌÎñ¡¢µç×ÓÕþÎñµÈÁìÓò£¬ÎªÐÅÏ¢µÄ´«ÊäºÍ½»»»ÌṩÁ˰²È«¿É¿¿µÄ±£ÕÏ¡£
Êý×ÖÇ©ÃûºÍÊý×ÖÖ¤ÊéÔÚͨÐÅÁìÓò·¢»Ó×ÅÖØÒª×÷Ó᣶ÔÓÚAndroidAPPµÄ¿ª·¢ÕßÀ´Ëµ£¬Á˽ⲢÊìÁ·ÕÆÎÕAndroidAPPµÄÇ©ÃûÁ÷³ÌÒÔ¼°Êý×ÖÇ©ÃûÖ¤ÊéµÄ¹ÜÀíºÍ¸üз½·¨£¬¶ÔÓÚ±£ÕÏAPPµÄ°²È«ÐÔºÍÓû§µÄÈ¨Òæ¾ßÓÐÖØÒªÒâÒå¡£¹ØÓÚAndroidÖеÄÇ©Ãû¼°Æä¸üÐÂÎÊÌâ
Ëæ×ÅAndroid°æ±¾µÄµü´ú£¬Ç©Ãû·½°¸Ò²ÔÚ²»¶Ï½ø²½¡£Ä¿Ç°£¬AndroidÖ÷ÒªÖ§³ÖÈýÖÖÇ©Ãû·½·¨£¬ÒÔÓ¦¶Ô²»¶ÏÔö³¤µÄ°²È«ÐÔºÍЧÂÊÐèÇó¡£ÓÈÆäÖµµÃÒ»ÌáµÄÊÇ£¬ÔÚAndroid 9.0ÉÏ£¬È«ÐµÄV3Ç©Ãû·½°¸ÒѾ±»ÒýÈ룬Ϊ½â¾öÇ©Ãû¹ýÆÚÎÊÌâÌṩÁËÓÐЧµÄ½â¾ö·½°¸¡£
V1Ç©ÃûÊÇ»ùÓÚJARÇ©ÃûµÄÑÓÉ죬Ö÷Òª¶ÔAPKѹËõ°üÖеÄÎļþ½øÐе¥¶ÀÑéÖ¤¡£ÕâÖÖ·½·¨µÄÑé֤ЧÂʽϸߣ¬µ«ÔÚ´¦Àí¸´ÔӵݲȫÐèÇóʱ¿ÉÄÜÂÔÏÔ²»×ã¡£
V2Ç©Ãû·½°¸ÔÚAndroid 7.0ÖÐÒýÈ룬רÃÅÓÃÓÚÑéÖ¤APKÎļþ¡£Ëü½«Ç©ÃûÐÅϢдÈëÇ©Ãû¿éÖУ¬´Ó¶øÌá¸ßÁ˰²È«ÐÔºÍÑé֤ЧÂÊ¡£ÕâÒ»·½°¸Îª¿ª·¢ÕßÌṩÁ˸üΪǿ´óµÄ°²È«±£ÕÏ¡£
¶øV3Ç©Ãû£¬×÷ΪµÄÇ©Ãû·½°¸£¬ÔÚAndroid 9.0ÖÐÒýÈë¡£ËüÔÚÇ©Ãû¿éÖÐÔö¼ÓÁËеġ°attr¡±¿é£¬²ÉÓÃÁ´±íÐÎʽ´æ´¢¶à¸öÖ¤Êé¡£ÆäÖУ¬×î¾ÉµÄÖ¤Êé×÷ΪпéÁ´±íµÄ¸ù½Úµã£¬ÓÃÒÔÑéÖ¤ÐÂÖ¤ÊéµÄÕæÊµÐÔºÍÓÐЧÐÔ¡£ÕâÒ»Éè¼Æ¼«´óµØÔöÇ¿ÁËÇ©ÃûµÄ°²È«ÐԺͿɿ¿ÐÔ¡£
µ±Ãæ¶ÔAppÇ©Ãû¹ýÆÚ»òй¶µÄÎÊÌâʱ£¬ÎÒÃÇÐèÒª²ÉÈ¡ÏàÓ¦µÄ´ëÊ©¡£ÔÚAndroidϵͳÖУ¬Ç©Ãû»¹Éæ¼°µ½È¨ÏÞ¿ØÖÆ»úÖÆ¡£ÏµÍ³´æÔÚ¶àÖÖ±ê׼ǩÃûkey£¬Èçtestkey¡¢media¡¢platform¡¢sharedµÈ¡£ÕâЩÃÜԿλÓÚÔ´ÂëµÄ/build/target/product/securityĿ¼Ï£¬ÆäÖÐ˽ԿºÍ¹«Ô¿ÊdzɶԳöÏֵġ£
ÔÚ±àÒëAndroidϵͳ»òÓ¦ÓÃʱ£¬Èç¹ûûÓÐÔÚandroid.mkÖÐÉèÖÃLOCAL_CERTIFICATEµÄÖµ£¬ÏµÍ³»áĬÈÏʹÓÃtestkey½øÐÐÇ©Ãû¡£µ«Èç¹ûÉèÖÃΪʹÓÃplatform½øÐÐÇ©Ãû£¬ÄÇôÕâ¸öÓ¦ÓþͻáÓµÓкÍϵͳÏàͬµÄÇ©ÃûȨÏÞ¡£Ö»ÓÐʹÓÃÏàͬǩÃûµÄÓ¦ÓòÅÄÜ·ÃÎÊÌØ¶¨µÄϵͳ×ÊÔ´£¬ÀýÈçʹÓÃandroid:sharedUserId="android.uid.system"¡£
ΪÁËÉú³É×Ô¶¨ÒåµÄÇ©Ãûkey£¬ÎÒÃÇ¿ÉÒÔʹÓÃλÓÚ/development/toolsĿ¼ÏµÄmake_key½Å±¾¡£Õâ¸ö½Å±¾ÐèÒªÁ½¸ö²ÎÊý£ºkeyµÄÃû×ÖºÍÃÜÂë¡£ÃÜÂ벿·Ö½¨Òé²»ÉèÖã¬Ö±½Óenter£¬ÒÔ±ãÔÚºóÐøÊ¹ÓÃÖбÜÃâÃÜÂëÏà¹ØµÄÂé·³¡£
Èç¹ûÒªÐÞ¸ÄĬÈϵÄÇ©Ãûkey£¬ÎÒÃÇ¿ÉÒÔÔÚ/build/core/config.mkÖнøÐÐÅäÖá£ÀýÈ磬ÎÒÃÇ¿ÉÒÔÉèÖÃÒ»¸öÌõ¼þÅжϣ¬Èç¹ûĬÈϵÄϵͳ¿ª·¢Ö¤ÊéÊÇreleasekey£¬ÄÇôËùÓеÄÇ©Ãû¶¼½«Ä¬ÈÏʹÓÃreleasekey¡£
Èç¹ûÔÚÉú³É»òʹÓÃÕâЩkeyʱÓöµ½´íÎ󣬺ܿÉÄÜÊÇÓÉÓÚ¶àÏß³ÌÎÊÌâµ¼Öµġ£ÎªÁËÈ·±£Ç©ÃûµÄÕýÈ·ÐԺͰ²È«ÐÔ£¬ÎÒÃÇÐèÒª×Ðϸ´¦Àíÿһ¸ö²½ÖèºÍϸ½Ú¡£
AndroidµÄÇ©Ãû»úÖÆÊÇÒ»¸ö¸´ÔÓ¶øÖØÒªµÄ²¿·Ö£¬ËüÈ·±£ÁËÓ¦ÓõݲȫÐÔºÍÍêÕûÐÔ¡£Ëæ×ÅAndroid°æ±¾µÄ¸üУ¬Ç©Ãû·½°¸Ò²ÔÚ²»¶Ï½ø²½£¬ÎªÎÒÃÇÌṩÁ˸üΪǿ´óºÍÁé»îµÄ°²È«±£ÕÏ¡£ÔÚ±àÒëAndroidϵͳʱ£¬ÎªÁ˼***Ù±àÒë¹ý³Ì£¬ÎÒÃdz£³£Ê¹ÓÃ`make -j`ÃüÁî½øÐжàÏ̱߳àÒë¡£ÕâÖÖ×ö·¨¿ÉÄܻᵼÖÂÖÕ¶ËÊäÈëÊÜÓ°Ïì£¬ÌØ±ðÊÇÔÚÐèÒªÊäÈëÃÜÂëµÄÇé¿öÏ£¬ÒòΪÆäËûÏ̵߳ÄÔËÐпÉÄÜ»á¸ÉÈŵ±Ç°ÊäÈëÖÕ¶Ë£¬µ¼ÖÂÃÜÂëÎÞ·¨Õý³£ÊäÈë¡£
Íê³É±àÒëºó£¬ÎÒÃÇ¿ÉÒÔÔÚ`build.prop`ÎļþÖв鿴Ïà¹Ø±äÁ¿¡£Ö»Óо¹ýÇ©ÃûµÄϵͳ²ÅÄÜËã×÷ÊÇrelease°æ±¾¡£ÎªÁËÈ·±£Õû¸öϵͳ°´ÕÕÎÒÃǵÄÒªÇó½øÐÐÁËÇ©Ãû£¬ÎÒÃÇÐèÒª½øÐÐһϵÁеIJÙ×÷¡£
Ò»ÖÖ³£¼ûµÄÇ©Ãû·½·¨ÊÇʹÓÃÌØ¶¨µÄÃüÁî½øÐбàÒ룬Èç`make -j4 PRODUCT-product_modul-user dist`¡£Õâ¸öÃüÁîÓëÆ½Ê±µÄ±àÒ벻ͬ£¬ËüÔÚºóÃæ¶àÁË`PRODUCT-product_modul-user`ºÍ`dist`Á½¸ö²ÎÊý¡£±àÒëÍê³Éºó£¬»áÔÚÔ´ÂëµÄ`/out/dist/`Ŀ¼ÄÚÉú³ÉÒ»¸öÒÔ`product_modul-target_files`¿ªÍ·µÄzipÎļþ£¬Õâ¾ÍÊÇÎÒÃÇÐèÒª½øÐÐÇ©ÃûµÄÎļþϵͳ¡£
ÔÚÎÒÃǵݸÀýÖУ¬`product_modul`ÊÇ`full_gotechcn`£¬¶ø`-user`´ú±íµÄÊÇ×îÖÕÓû§°æ±¾¡£¹ØÓÚÃüÃûºÍ`product_modul`µÄÏêϸÐÅÏ¢£¬¿ÉÒԲο¼Ïà¹ØÎĵµ¡£
Éú³ÉÐèҪǩÃûµÄzipѹËõ°üºó£¬ÎÒÃÇʹÓÃ`/security`ϵÄÃÜÔ¿½øÐÐÇ©Ãû¡£¾ßÌåÃüÁîΪ£º
```bash
./build/tools/releasetools/sign_target_files_apks -d /build/target/product/security out/dist/full_gotechcn-target_files.zip out/dist/signed_target_files.zi
```
Ç©ÃûÄ¿±êÎļþ»á±»Êä³öΪ`signed_target_files.zi`¡£
Èç¹ûÔÚÇ©Ãû¹ý³ÌÖÐijЩapk³öÏÖ´íÎó£¬ÎÒÃÇ¿ÉÒÔͨ¹ýÔÚ`full_gotechcn-target_files.zip`Ç°Ãæ¼Ó²ÎÊý`-e=`À´¹ýÂËÕâЩapk¡£
½ÓÏÂÀ´£¬ËäÈ»ÓÐÒ»ÖÖ·½·¨ÊÇͨ¹ýimage½Å±¾Éú³ÉimageµÄzipÎļþ£¬µ«ÕâÖÖ·½Ê½²¢²»ÊÊÓÃÓÚÎÒÃÇĿǰµÄ¹¤³ÌÔ´Â룬ËùÒÔ²¢Î´½øÐйý¶àÑéÖ¤¡£
AndroidµÄÇ©Ãû»úÖÆÖ÷Òª·ÖΪÁ½²¿·Ö£ºROMÇ©Ãû»úÖÆºÍµÚÈý·½APKÇ©Ãû»úÖÆ¡£APKʵ¼ÊÉÏÊÇÒ»¸öjar°ü£¬¶øjar°üÓÖÊÇÒ»¸özip°ü¡£APK°üµÄÇ©ÃûʹÓõÄÊÇjar°üµÄÇ©Ãû»úÖÆ£¬ÔÚzipÖÐÌí¼ÓÒ»¸öMETAµÄ×ÓĿ¼´æ·ÅÇ©ÃûÐÅÏ¢£¬²¢Îªzip°üÖеÄÿ¸öÎļþ¼ÆËãHASHÖµÒԵõ½Ç©ÃûÎļþ(.sf)£¬È»ºó¶ÔÇ©ÃûÎļþ(.sf)½øÐÐÇ©Ãû²¢½«Ç©Ãû±£´æÔÚÇ©Ãû¿éÎļþ(.dsa)ÖС£
ÔÚ±àÒëAndroidÔ´ÂëÉú³ÉROMµÄ¹ý³ÌÖУ¬»áʹÓÃ`build/target/product/security`Ŀ¼ÖеÄËĸökey£¨media, platform, shared, testkey£©¶Ôapk½øÐÐÇ©Ãû¡£ÕâЩĬÈÏkeyÊÇûÓÐÃÜÂë±£»¤µÄ£¬Ö»ÄÜÓÃÓÚdebug°æ±¾µÄROM¡£
ΪÁËÉú³ÉRelease°æ±¾µÄROM£¬ÎÒÃÇÐèÒªÏÈÉú³ÉTargetFiles£¬È»ºóʹÓôøÃÜÂëµÄkey¶ÔTargetFilesÖØÐÂÇ©Ãû¡£ÕâÑù£¬ÓÉÖØÇ©ÃûµÄTargetFiles¾Í¿ÉÒÔÉú³É×îÖÕµÄROM¡£
ÎÒÃÇ¿ÉÒÔʹÓÃAndroidÔ´ÂëÊ÷ÖÐ×Ô´øµÄ¹¤¾ß¡°development/tools/make_key¡±À´Éú³É´øÃÜÂëµÄRSA¹«Ë½Ô¿¶Ô¡£Õâ¸ö¹¤¾ßʵ¼ÊÉÏÊÇͨ¹ýopensslÀ´Éú³ÉÃÜÔ¿µÄ¡£ÀýÈ磬ʹÓÃÒÔÏÂÃüÁîÉú³ÉÒ»¸ö¶þ½øÖÆÐÎʽµÄ˽ԿÎļþ¡°media.pk8¡±ºÍÒ»¸ö¶ÔÓ¦µÄX509¹«Ô¿Ö¤ÊéÎļþ¡°media.x509.pem¡±£º
```bash
development/tools/make_keymedia '/C=CN/ST=Sichuan/L=Chengdu/O=MyOrg/OU=MyDepartment/CN=MyName'
```
ÔÚÕâ¸öÃüÁîÖУ¬`/C`±íʾ¡°CountryCode¡±£¬`/ST`±íʾ¡°State or Province¡±£¬`/L`±íʾ¡°City or Locality¡±£¬`/O`±íʾ¡°Organization¡±£¬`/OU`±íʾ¡°Organizational Unit¡±£¬`/CN`±íʾ¡°Name¡±¡£ÎÒÃÇ»¹¿ÉÒÔÐ޸Ľű¾ÖеIJÎÊýÒÔÉú³ÉʹÓò»Í¬¹«Ô¿Ö¸ÊýeÖµµÄRSAÃÜÔ¿¶Ô¡£
³ýÁËʹÓÃÉÏÊö¹¤¾ß£¬ÎÒÃÇ»¹¿ÉÒÔʹÓÃJDKÖеÄkeytoolÀ´Éú³É¹«Ë½Ô¿¶Ô£¬µÚÈý·½APKÇ©Ãûͨ³£¾ÍÊÇͨ¹ýkeytoolÀ´ÊµÏֵġ£¹«Ô¿Ö¤ÊéÓëAPKÇ©Ãû£ºÉîÈëÀí½âÓëʵ¼ùÖ¸ÄÏ
ÔÚÊý×ÖÊÀ½çÖУ¬¹«Ô¿Ö¤ÊéºÍAPKÇ©Ãû°çÑÝ×ÅÖÁ¹ØÖØÒªµÄ½ÇÉ«£¬ËüÃÇΪÎÒÃÇÌṩÁ˰²È«ÑéÖ¤ºÍÊý¾ÝÍêÕûÐԵı£ÕÏ¡£½«ÎªÄú½ÒʾÈçºÎʹÓÃopensslx509¡¢JDKÖеÄkeytoolµÈ¹¤¾ßÀ´²é¿´ºÍ²Ù×÷¹«Ô¿Ö¤Ê飬ÒÔ¼°ÈçºÎÔÚAndroid¿ª·¢ÖÐʵÏÖAPKµÄÇ©ÃûºÍУÑé¡£
Ò»¡¢¹«Ô¿Ö¤Êé²é¿´
1. ʹÓÃopensslx509ÃüÁî²é¿´¹«Ô¿Ö¤ÊéÏêϸÐÅÏ¢¡£ÀýÈ磺
```shell
opensslx509 -in media.x509.pem -text -noout
```
Äú»¹¿ÉÒÔʹÓÃÈçÏÂÃüÁîÒÔPEM¸ñʽ²é¿´Ö¤ÊéÐÅÏ¢£º
```shell
opensslx509 -in media.x509.pem -inform PEM -text -noout
```
2. ʹÓÃJDKÖеÄkeytool²é¿´¹«Ô¿Ö¤ÊéÄÚÈÝ¡£ËäÈ»keytoolµÄÊä³öÄÚÈÝÏà¶Ô¼ò½à£¬µ«ËüÈÔÈ»ÊÇ¿ª·¢Õß³£ÓõŤ¾ßÖ®Ò»¡£ÃüÁîÈçÏ£º
```shell
keytool -printcert -v -file media.x509.pem
```
¶þ¡¢APKÇ©ÃûÓëÖØÐÂÇ©Ãû
ÔÚAndroid¿ª·¢ÖУ¬¶ÔTargetFiles½øÐÐÇ©ÃûÊÇ·¢²¼Ó¦ÓõÄÖØÒª²½Öè¡£Äú¿ÉÒÔʹÓá°build/tools/releasetools/sign_target_files¡±¹¤¾ßÀ´ÖØÐÂÇ©ÃûTargetFiles¡£ÀýÈ磺
```shell
build/tools/releasetools/sign_target_files_apks -d new_keys_dir -otarget_files.zip target_files_resigned.zip
```
Çë×¢Ò⣬new_keys_dirĿ¼ÖÐÐèÒª°üº¬ËĸöÃÜÔ¿£ºmedia¡¢platform¡¢sharedºÍreleasekey¡£ÆäÖУ¬releasekey½«Ìæ´úĬÈϵÄtestkey¡£ÕâÒâζ×ÅÈç¹ûÄúµÄapkÔÚÉú³ÉTargetFilesʱʹÓõÄÊÇtestkeyÇ©Ãû£¬ÄÇôÔÚÖØÐÂÇ©Ãûʱ½«»áʹÓÃnew_keys_dirϵÄreleasekey¡£
Èý¡¢ÃÜÔ¿¹ÜÀí
¶ÔÓÚµÚÈý·½Ó¦Óÿª·¢Õß¶øÑÔ£¬¹ÜÀíÇ©ÃûÃÜÔ¿ºÍÇ©ÊðAPKÏà¶Ô¼òµ¥¡£³£ÓõŤ¾ß°üÀ¨JDKÖеÄkeytoolºÍjarsigner¡£ÒÔÏÂÊÇһЩ³£ÓÃÃüÁ
1. ʹÓÃkeytoolÉú³É´æ´¢Óй«Ë½Ô¿¶ÔµÄkeystore£º
```shell
keytool -genkey -v -keystore my-release-key.keystore -alias mykey -keyalg RSA -keysize 2048 -validity 10000
```
2. ²é¿´Éú³ÉµÄÃÜÔ¿ÐÅÏ¢£º
```shell
keytool -list -keystore my-release-key.keystore -alias mykey [-v] [-rfc]£¨×¢£º»ñÈ¡Base64¸ñʽµÄ¹«Ô¿Ö¤Ê飩
```
3. µ¼³ö¹«Ô¿Ö¤Ê飺ÒÔ¶þ½øÖƸñʽ£¨DER£©»òBase64¸ñʽ£¨PEM£©µ¼³ö¹«Ô¿Ö¤Êé¡£ÀýÈ磺
```shell
keytool -export -keystore mystore -alias mykey -file my.der £¨×¢£º¶þ½øÖƸñʽ¹«Ô¿Ö¤Ê飬DER£© keytool -export -keystore mystore -alias mykey -file my.pem £¨×¢£ºBase64¸ñʽ¹«Ô¿Ö¤Ê飬PEM£© keytool -export-keystore mystore -alias mykey [-rfc]£¨×¢£º»ñÈ¡Base64¸ñʽµÄ¹«Ô¿Ö¤Ê飩 ×¢Ò⣺ÔÚµ¼³ö¹«Ô¿Ö¤Êéʱ£¬¿ÉÄÜÐèÒªÊäÈëÃÜÂëÒÔ±£»¤keystoreµÄ°²È«¡£Çë¸ù¾ÝÌáʾÊäÈëÃÜÂë¼´¿É¡£Èç¹ûÍü¼Ç»ò²»È·¶¨ÃÜÂ룬Çë²Î¿¼ÄúµÄÎĵµ»ò×ÉѯÄúµÄÍŶӻòÏà¹ØÔðÈÎÈËÒÔ»ñµÃ°ïÖú¡£µ±ÄúÐèÒª¸üÐÂÄúµÄ¹«Ô¿Ö¤Êéʱ£¬Ö»ÐèʹÓÃеÄÃÜÔ¿¶ÔÖØÐÂÉú³Ékeystore¼´¿É¡£È»ºó£¬Äú¿ÉÒÔʹÓÃеÄkeystoreÖØÐÂÇ©ÊðÄúµÄAPKÒÔ¸üÐÂÆäÇ©ÃûÐÅÏ¢¡£Çë×¢ÒâÍ×ÉÆ±£¹ÜÄúµÄ˽ԿºÍkeystoreÎļþÒÔ·Àֹδ¾ÊÚȨµÄ·ÃÎʺÍʹÓá£ÕâЩÎļþÊÇÄúµÄÓ¦ÓóÌÐòµÄ°²È«Æ¾Ö¤Ö®Ò»£¬Èç¹û¶ªÊ§»ò±»µÁÓÿÉÄܻᵼÖ°²È«·çÏÕ»ò·¨ÂÉÎÊÌâ¡£ÏÖÔÚÈÃÎÒÃǻص½Ö®Ç°µÄ²½Öè²¢¼ÌÐøÁ˽âÈçºÎ¶ÔAPK½øÐÐÇ©ÃûºÍÑé֤ǩÃû²Ù×÷°É£¡ÔÚ¶ÔAPK½øÐÐÇ©ÃûÖ®ºóÎÒÃÇ¿ÉÒÔʹÓÃjarsigner¹¤¾ß½øÐÐÑéÖ¤ÒÔÈ·±£Æäδ±»´Û¸Ä»òËð»µÏÂÃæÊÇһЩ³£ÓõÄÃüÁÑé֤ǩÃûjarsigner -verify-verbose-certs my_application.apk×¢ÒâÕâ¸öÃüÁ»áÏÔʾÏêϸµÄÑéÖ¤ÐÅÏ¢Èç¹ûapkÊÇÓÐЧǩÃûµÄ½«»áÏÔʾ¡°Ç©ÃûÒÑÑéÖ¤³É¹¦¡±·ñÔò½«»áÏÔʾ´íÎóÐÅÏ¢ºÍÔÒòÔÚ½øÐÐAndroid¶þ´Î¿ª·¢Ê±ÓÐʱÐèÒª½«Ô´ÂëÖеĹ«Ë½Ô¿¶Ôת»»ÎªkeystoreµÄÐÎʽÒÔ±ã¸ü·½±ãµØ¹ÜÀíºÍʹÓÃÕâЩÃÜÔ¿Äú¿ÉÒԲο¼Ïà¹ØµÄÎĵµ»ò½Ì³Ì½«AndroidÔ´ÂëÖеÄÃÜÂë¶Ôת»»ÎªkeystoreµÄÐÎʽÒÔ±ã¸üºÃµØ¹ÜÀíºÍʹÓÃÕâЩÃÜÔ¿×ÜÖ®Á˽âºÍÕÆÎÕÕâЩ¹¤¾ßºÍÃüÁî¶ÔÓÚ¿ª·¢ºÍά»¤°²È«µÄÓ¦ÓóÌÐòÖÁ¹ØÖØÒªÏ£ÍûÕâÆªÎÄÕÂÄܹ»°ïÖúÄú¸üºÃµØÀí½â²¢Êµ¼ù¹«Ô¿Ö¤ÊéºÍAPKÇ©ÃûµÄÏà¹ØÖªÊ¶Èç¹ûÄúÓÐÈκÎÒÉÎÊ»òÐèÒª½øÒ»²½Á˽âÏà¹ØÐÅÏ¢ÇëËæÊ±¹Ø×¢ÎÒÃǵIJ©¿ÍÎÒÃǽ«³ÖÐøÎªÄúÌṩµÄ¼¼ÊõºÍʵÓÃÖ¸ÄÏÔٴθÐлÄúµÄÔĶÁÏ£ÍûÕâÆªÎÄÕ¶ÔÄúÓÐËù°ïÖú£¡Èý¡¢APKÇ©Ãû²Ù×÷³ýÁ˲鿴ºÍ¹ÜÀíÃÜÔ¿Ö®ÍâÎÒÃÇ»¹ÐèÒª¶ÔAPK½øÐÐÇ©ÃûÒÔÈ·±£ÆäÍêÕûÐԺͰ²È«ÐÔÏÂÃæÊÇһЩ³£ÓõÄAPKÇ©Ãû²Ù×÷ÃüÁ¶ÔAPK½øÐÐÇ©Ãûjarsigner -verbose-keystore my-release-key.keystore my_application.apk mykeyÕ⽫ʹÓÃÄúÌṩµÄÃÜÔ¿¶ÔAPK½øÐÐÇ©ÃûÑé֤ǩÃûjarsigner -verify-verbose-certs my_application.apkÕ⽫ÏÔʾÏêϸµÄÑéÖ¤ÐÅÏ¢Èç¹ûAPKÒÑÕýÈ·Ç©ÃûÔòÑéÖ¤
°×ñ°·çÖ¢×´
- СÃ×note3±¨¼Û
- ºþ±±¸ß¿¼ÊÇÈ«¹ú¼¸¾í
- º«Óï·Òë»úbesta
- ÈË¿ÚÆÕ²é2021¹«²¼Ê±¼ä
- ÀøÖ¾µÄ»°¼ò¶Ì°ÔÆø
- ´Ó»¯ÕÐÆ¸ÍøÕÐÆÕ¹¤
- н®Öп¼³É¼¨Ê²Ã´Ê±ºò³öÀ´2021
- ÒÁÀ³Ò®Ë¹ ¼Ó±´¶û
- ¶ùͯ·þ×°ÔÓÖ¾¹ÙÍøµÇ¼Èë¿Ú
- 2021Öп¼³É¼¨²éѯÈë¿ÚÍøÕ¾
- ÓàÒôÈÆÁºÈýÈÕ²»¾ø
- ¶ç½·ÓãÍ·ÊÇʲôµØ·½µÄ²Ë
- ¼ÆËã»úµÈ¼¶¿¼ÊÔÕæÌâ
- ¸¸Ç׸ø¶ù×Ó¿ÄÍ·
- ÔÙµ±·ë¸¾ÊÇʲôÉúФ
- Õã½Îª¿¼ÑÐÉúµ÷¾í