µ±Ç°Î»ÖãºÊ×Ò³ > ×ö×Ô¼ºµÄAndroid ROM-ÆÁ±ÎapkÇ©Ãû¼ì²é
×ö×Ô¼ºµÄAndroid ROM£¬ÆÁ±Î¶ÔframeworkÖеÄϵͳ
APKµÄÇ©Ãû¼ì²é
×÷Õߣº¹Â·çÒ»½£ ·¢²¼£º2013-09-04 15:14 À¸Ä¿£ºÒƶ¯¿ª·¢ µã»÷£º538´Î ÇÀɳ·¢
×î½üÁ½ÌìÒ»Ö±ÔÚ³¢ÊÔ¸üÐÂAndroidÖеĹؼü¿âÒÔ´ïµ½¶¨ÖÆROMµÄЧ¹û£¬Öмä±È½ÏÇúÕÛ£¬¼Ç¼ÏÂÀ´¹©×Ô¼ººÍ´ó¼Ò²Î¿¼¡£
ÒòΪÎÒÐèÒª»ùÓÚAndroidµÄÔÉú´úÂë×öÒ»¶¨µÄÐ޸ģ¬ËùÒÔÈç¹ûÎÞ·¨½«ÎÒ×Ô¼º±àÒë³öµÄAPK»òJarÌæ»»ÏµÍ³ÖеĶ«Î÷£¬ÔòÎÞ·¨´ï³ÉÎÒµÄÄ¿±ê¡£
ÎҵIJâÊԵĻúÆ÷£ºhtc one µçÐŶ¨Öư棨802d£©£¬Android°æ±¾£º4.2.2£»LG Nexus 4£¬Android°æ±¾£º4.3¡£ ²âÊÔµÚÒ»²½£º
½«ÊÖ»úrootµô£¬ÒÔÌæ»»ÐÞ¸ÄϵͳÎļþµÄȨÏÞ¡£²»Í¬³§É̵ÄÊÖ»úµÄroot²½Öè²»Ò»Ñù£¬×Ô¼ºÉÏÍøËÑË÷°É¡£ ²âÊÔµÚ¶þ²½£º
ʹÓÃÎÒ×Ô¼º±àÒë³öÀ´µÄSystemUI.apk£¬Ìæ»»Nexus 4µÄSystemUI.apk£¬Í¨¹ý adb logcat > 1.txt ²é¿´ÈÕÖ¾£¬Ö±½Ó±¨ÏÂÃæµÄ´í£» [plain][/plain] view plaincopyprint?
1. W/PackageManager( 530): Signature mismatch for shared user : SharedUserSetting{41ea
0bc8 android.uid.system/1000}
2.
3. E/PackageManager( 530): Package com.android.systemui has no signatures that match th
ose in shared user android.uid.system; ignoring!
Ç©ÃûÓÐÎÊÌ⣬¸ù¾ÝÕâ¸ö¹Ø¼ü×Ö¡°has no signatures that match those¡± È¥ËÑË÷AndroidÔ´´úÂ룬¿ÉÒÔÔÚPackageManagerService.javaÖÐÕÒµ½ÈçϺ¯Êý£º [java][/java] view plaincopyprint?
1. 2. 3. 4.
private boolean verifySignaturesLP(PackageSetting pkgSetting, PackageParser.Package pkg) {
if (pkgSetting.signatures.mSignatures != null) {
// Already existing package. Make sure signatures match
5. 6. 7. 8. 9.
if (compareSignatures(pkgSetting.signatures.mSignatures, pkg.mSignatures) != PackageManager.SIGNATURE_MATCH) { Slog.e(TAG, \
+ \ mLastScanError = PackageManager.INSTALL_FAILED_UPDATE_INCOMPATIBLE;
10. return false; 11. } 12. }
13. // Check for shared user signatures
14. if (pkgSetting.sharedUser != null && pkgSetting.sharedUser.signatures.mSignatures !=
null) {
15. if (compareSignatures(pkgSetting.sharedUser.signatures.mSignatures, 16. pkg.mSignatures) != PackageManager.SIGNATURE_MATCH) { 17. Slog.e(TAG, \
18. + \19. + pkgSetting.sharedUser.name + \
20. mLastScanError = PackageManager.INSTALL_FAILED_SHARED_USER_INC
OMPATIBLE;
21. return false; 22. } 23. }
24. return true; 25. }
Ö±½ÓÌæ»»£¬¿Ï¶¨ÊDz»ÐÐÁË£¬Ç©Ãûͨ²»¹ý£¬ÄÇÎÒ¿É·ñ³¢ÊÔ½«Ç©Ãû¼ì²éµÄ´úÂë¸øÆÁ±Îµô£¿
²âÊÔµÚÈý²½£º
³¢ÊÔÆÁ±Î¶Ôϵͳ¼¶APKµÄÇ©Ãû¼ì²é£¬´úÂëÒѾÕÒµ½£¬ÔÚÕâ¸öĿ¼Ï£ºframeworks/base/services/java/com/android/server/pm¡£
½øÒ»²½·ÖÎö£¬servicesĿ¼ÏµÄÄÚÈÝ£¬×îÖջᱻ±àÒë³É services.jar£¬adb shell ºó£¬ÔÚ /system/framework Ï¿ÉÒÔÕÒµ½ services.jar¡£ [plain][/plain] view plaincopyprint?
1. root@android:/system/framework # ls servi* 2. ls servi* 3. services.jar
ÔÚ out/target/product/generic/dex_bootjars/system/framework Õâ¸öĿ¼Ï¿ÉÒÔÕÒµ½ services.jar£¬
Ö±½ÓʹÓÃ×Ô¼º±àÒë³öÀ´µÄservices.jarÈ¥Ìæ»» /system/frameworkϵÄͬÃûjar°ü£¬ÖØÆôosºó£¬ºÃÏñ±¨µÄÕâ¸ö´íÎó£ºDexOpt: mismatch dep signature£¬ È»ºóosÒ»Ö±´¦ÓÚËÀÑ»·ÖУ¬ÎÞ·¨¿ª»ú³É¹¦¡£
¸ù¾Ý¡°DexOpt: mismatch dep signature¡±Õâ¸ö¹Ø¼ü×ÖËÑË÷£¬ÔÚDexPrepare.cppÖÐÓжÔÓ¦µÄ¼ì²é£º
[cpp][/cpp] view plaincopyprint?
1. 2. 3. 4.
if (memcmp(signature, ptr, kSHA1DigestLen) != 0) {
LOGI(\ goto bail; }
²âÊÔµÚËIJ½£º
¼ÈÈ»µÚÈý²½Ò²²»ÐУ¬ÄÇÎÒÓÃ×Ô¼º±àÒë³öÀ´µÄ¡°libdvm.so¡± ½«/system/libϵÄͬÃûÎļþ¸üеô£¬ÖØÆôosºó£¬»¹ÊÇÀàËÆµÄ´íÎó£¬Ç©ÃûժҪУÑé²»¹ý¡£
µ±Ç°ÏÝÈëÁ˶Ìʱ¼äµÄ½©¾Ö£¬ÉÏÍøÕÒÁ˺ܶà×ÊÁϲο¼£¬´ó²¿·Ö½öÄܲο¼£¬Ð´µÃÌ«²»Ïêϸ£¬Ö±½ÓÎÒÓöµ½ÁËÕâ¸öÎĵµ£º¡¶MIUI ROM¶¨Öƽ̡̳·£¬
ÒѾÔÚÎҵİٶÈÍøÅ̹²
Ïí£º http://pan.http://www.china-audit.com//share/link?shareid=198381908&uk=4145338314
ÉñÒ»°ãµÄÎĵµ£¬½«AndroidµÄϵͳ¿ò¼Ü£¬µ½Ë¢»úÔÀí£¬ÔÙµ½Ò»Ð©Ë¢»úµÄ¾ßÌåϸ½Ú£¬¶¼Ð´µÃ·Ç³£Çå³þ¡£
ÏÂÃæµÄ¹ý³ÌÊÇ»ùÓÚHTC ONE£¨802d£©À´²âÊԵģº
1¡¢ÏÈÕÒÒ»¸ö¿ÉË¢»úµÄROM£¬ÎÒÕÒµ½µÄÊÇ
Nic_One_M7_802d_4.2.2_Devil_3.5_signed.zip£¬Õâ¸ö°ü¿ÉÒÔË¢»ú³É¹¦²¢ÇÒϵͳ¿ÉÓá£
֮ǰÕÒµÄÁ½¸ö°ü¿ÉÒÔË¢»ú³É¹¦£¬µ«ÆÁÄ»Çý¶¯ËƺõÓÐÎÊÌ⣬´¥ÆÁÎÞ·´Ó¦¡£ 2¡¢½«ÔÓаüÖеÄservices.jarת³ÉsmaliÎļþ£¬Í¨¹ý baksmali-1.4.2.jar ½øÐн« jarÖеÄdexÎļþת³ÉsmaliÎļþ£¬½«PackageManagerService.smaliÖеÄverifySignaturesLPº¯ÊýµÄʵ ÏÖ¸øÐ޸ĵô£¬È»ºóÔÙʹÓÃsmali-1.4.2.jar½«·´±àÒë³öµÄ°üº¬smaliÎļþµÄĿ¼ת³ÉdexÎļþ£¬Ê¹ÓÃwinrar´ò¿ª services.jar£¬½«ÐÂÉú³É
µÄclasses.dex¸²¸Çjar°üÖеÄclasses.dex£¬½«Õâ¸öÐÂjar°üÌæ»»ÔROM zip°üÖеÄͬÃûÎļþ¡£
ÔÙʹÓá°ÍÁ¶¹ROM¹¤¾ßÏ䡱 ½«ÐÂROM zip°üÖØÐÂÇ©ÃûÏ£¬ÔÙ½øÐÐË¢»ú¡£ ¾¹ý¼¸·ÖÖӵĵȴýºó£¬ÏµÍ³¿ÉÓ㬲¢ÇÒʹÓÃÎÒ×Ô¼º±àÒë³öµÄ SystemUI.apk Ö±½Ó¸²¸Ç /system/framework/ ϵÄͬÃûÎļþ£¬Ò²²»»áÔÙ±¨Ç©Ãû´íÎó£¬Ö»ÊÇÎÞ·¨Õý³£ÔËÐС£
ΪÁ˽øÒ»²½ÑéÖ¤£¬ÎÒ½«ÏµÍ³µÄ SystemUI.apk ¸´ÖÆÎҵĵçÄÔÉÏ£¬Ê¹Óá°ÍÁ¶¹ROM¹¤¾ßÏ䡱½«ÆäÖØÐÂÇ©Ãû£¬È»ºóÔÙÌæ»»ÔÉú SystemUI.apk£¬HTCÊÖ»úÒ²ÊÇ¿ÉÒÔÕý³£ÔËÐеġ£
ÖÕÓڳɹ¦½«ÏµÍ³APKÇ©ÃûÑéÖ¤Õâ²½¸øÆÁ±ÎÁË£¬ÕâÑùÎҾͿÉÒÔ»ùÓÚ´ËROM×öºÜ¶àÆäËüÏë×öµÄʼþÁË¡£
smali-1.4.2.jar¡¢baksmali-1.4.2.jarµÄʹÓÃÃüÁî²Î¿¼£º [plain][/plain] view plaincopyprint?
1. C:\\Users\\zhao3546\\Desktop\\Android\\Android_framework_4.2>java -jar smali-1.4.2.jar -h
2. usage: java -jar smali.jar [options] [--] [
4. -?,--help prints the help message then exits. Specify 5. twice for debug options
6. -a,--api-level
9. -o,--output
11. -v,--version prints the version then exits
12. -x,--allow-odex-instructions allow odex instructions to be compiled into the 13. dex file. Only a few instructions are supported 14. - the ones that can exist in a dead code path 15. and not cause dalvik to reject the class 16. 17.
18. C:\\Users\\zhao3546\\Desktop\\Android\\Android_framework_4.2>java -jar baksmali-1.4.2.j
ar -h
19. usage: java -jar baksmali.jar [options]
21. -?,--help prints the help message then exits.
¹²·ÖÏí92ƪÏà¹ØÎĵµ