dalvikvm: odex source not available -- failing

讨论了在精简ROM过程中遇到的系统框架依赖odex文件的问题,并提供了相关解决方案,包括分析logcat日志、理解odex依赖关系以及在进行精简时保持框架的odex化。
使用言文605比较满意,但精简了不少系统的东西,现在想加回去,碰到带有odex的原版程序跑不起来的问题,经过抓取logcat,查看android源代码, 相应的odex分析,找到原因是此rom的/system/framework下的文件都是重新deodex成一个apk的,而原系统中framework下都是有odex,而且system/app目录下的odex文件都是依赖/system/framework目录下的odex文件,如果找不到就不能加载 ,log 如下
DexOpt: mismatch dep name: '/data/dalvik-cache/system@framework@core.jar@classes.dex' vs. '/system/framework/core.odex'

04-11 10:01:03.616  1320  1331 E dalvikvm: /system/app/ZoomService.apk odex has stale dependencies

04-11 10:01:03.616  1320  1331 E dalvikvm: odex source not available -- failing

04-11 10:01:03.647  1320  1331 I PackageManager: /system/app/WorkContacts.apk changed; collecting certs

04-11 10:01:03.694  1320  1331 I dalvikvm: DexOpt: mismatch dep name: '/data/dalvik-cache/system@framework@core.jar@classes.dex' vs. '/system/framework/core.odex'

04-11 10:01:03.694  1320  1331 E dalvikvm: /system/app/WorkContacts.apk odex has stale dependencies

04-11 10:01:03.694  1320  1331 E dalvikvm: odex source not available -- failing

04-11 10:01:03.796  1320  1322 D dalvikvm: GC_CONCURRENT freed 535K, 45% free 3846K/6983K, external 2357K/2773K, paused 2ms+6ms

04-11 10:01:03.811  1320  1331 I PackageManager: /system/app/WeatherWidget.apk changed; collecting certs

04-11 10:01:03.999  1320  1331 I dalvikvm: DexOpt: mismatch dep name: '/data/dalvik-cache/system@framework@core.jar@classes.dex' vs. '/system/framework/core.odex'

04-11 10:01:03.999  1320  1331 E dalvikvm: /system/app/WeatherWidget.apk odex has stale dependencies

04-11 10:01:03.999  1320  1331 E dalvikvm: odex source not available -- failing

04-11 10:01:04.014  1320  1331 I PackageManager: /system/app/Vvm.apk changed; collecting certs

04-11 10:01:04.233  1320  1322 D dalvikvm: GC_CONCURRENT freed 745K, 46% free 4022K/7367K, external 2357K/2773K, paused 2ms+19ms

04-11 10:01:04.272  1320  1331 I dalvikvm: DexOpt: mismatch dep name: '/data/dalvik-cache/system@framework@core.jar@classes.dex' vs. '/system/framework/core.odex'

04-11 10:01:04.272  1320  1331 E dalvikvm: /system/app/Vvm.apk odex has stale dependencies

04-11 10:01:04.272  1320  1331 E dalvikvm: odex source not available -- failing

源代码地址
androidxref_com/source/xref/dalvik/vm/JarFile.cpp
androidxref_com/source/xref/dalvik/vm/analysis/DexPrepare.cpp#dvmCheckOptHeaderAndDependencies

odex里依赖的framework文件列表
/system/framework/core.odex
/system/framework/bouncycastle.odex
/system/framework/ext.odex
/system/framework/framework.odex
/system/framework/android.policy.odex
/system/framework/services.odex
/system/framework/core-junit.odex
/system/framework/com.motorola.android.frameworks.odex
/system/framework/com.motorola.android.widget.odex

所以建议各位大大做精简rom时, framework目录下的东东最好odex化,即使deodex过后,也要再odex
08-01 15:40:10.997 12371 12371 I artd : Running dex2oat: /apex/com.android.art/bin/art_exec --drop-capabilities --set-task-profile=Dex2OatBackground --set-priority=background --keep-fds=6:7:8:9:10:11:12:13 -- /apex/com.android.art/bin/dex2oat64 --zip-fd=6 --zip-location=/data/user/0/com.google.android.youtube/app_dg_cache/2371C0CEE049F5A9AF6426472F131D1D37BEB519/the.apk --oat-fd=7 --oat-location=/data/user/0/com.google.android.youtube/app_dg_cache/2371C0CEE049F5A9AF6426472F131D1D37BEB519/oat/arm64/the.odex --output-vdex-fd=8 --swap-fd=9 --class-loader-context-fds=10:11:12:13 --class-loader-context=PCL[];PCL[/data/app/~~XYv1M5cA6-RN5Q7Rs-cqmw==/com.google.android.youtube-WNIoTz0XFAeNFyFD1DJ1QA==/base.apk]{PCL[/system/framework/org.apache.http.legacy.jar]#PCL[/system_ext/framework/androidx.window.extensions.jar]#PCL[/system_ext/framework/androidx.window.sidecar.jar]} --classpath-dir=/data/user/0/com.google.android.youtube/app_dg_cache/2371C0CEE049F5A9AF6426472F131D1D37BEB519 --instruction-set=arm64 --instruction-set-features=default --instruction-set-variant=cortex-a55 --compiler-filter=verify --compilation-reason=second-dex --max-image-block-size=524288 --resolve-startup-const-strings=true --generate-mini-debug-info --runtime-arg -Xtarget-sdk-version:35 --runtime-arg -Xhidden-api-policy:enabled -j4 --runtime-arg -Xms64m --runtime-arg -Xmx512m --comments=app-name:com.google.android.youtube,app-version-name:20.29.39,app-version-code:1555824064,art-version:351610080
最新发布
08-06
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值