-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
System instrumentation #87
base: master
Are you sure you want to change the base?
Conversation
alfink
commented
Sep 12, 2019
•
edited
Loading
edited
- Adds systemserver instrumentation to ArtistGui (implements System instrumentation support #85 )
- fixes Crash: Resources.NotFoundException in AppIconCache #26
- Prepares support for boot.oat and other non-app instrumentations
(cherry picked from commit 5888ad5) (cherry picked from commit f3830ab)
7342d06
to
c2c774b
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome feature! Unfortunately, I ran into a problem on all my devices b/c the services.jar
with the systemserver's code is not fully present there:
$ adb pull /system/framework/services.jar
/system/framework/services.jar: 1 file pulled. 0.0 MB/s (183 bytes in 0.045s)
$ unzip services.jar
Archive: services.jar
extracting: META-INF/MANIFEST.MF
$ tree
.
├── META-INF
│ └── MANIFEST.MF
└── services.jar
1 directory, 2 files
When I checked the corresponding oat file, oatdump
indicated that it was pre-compiled from the AOSP tree instead of on-device during the first boot. Example from a OnePlus 3T (Android 9), but had similar results on a rooted Nexus 9 running Android 6:
dex2oat-cmdline = out/host/linux-x86/bin/dex2oatd --runtime-arg -Xms64m --runtime-arg -Xmx512m --class-loader-context=& --boot-image=out/target/product/OnePlus3/dex_bootjars/system/framework/boot.art --dex-file=out/target/common/obj/JAVA_LIBRARIES/services_intermediates/javalib.jar --dex-location=/system/framework/services.jar --oat-file=out/target/product/OnePlus3/obj/JAVA_LIBRARIES/services_intermediates/oat/arm64/javalib.odex --android-root=out/target/product/OnePlus3/system --instruction-set=arm64 --instruction-set-variant=kryo --instruction-set-features=default --runtime-arg -Xnorelocate --compile-pic --no-generate-debug-info --generate-build-id --abort-on-hard-verifier-error --force-determinism --no-inline-from=core-oj.jar --compiler-filter=speed --generate-mini-debug-info --compilation-reason=prebuilt --app-image-file=out/target/product/OnePlus3/obj/JAVA_LIBRARIES/services_intermediates/oat/arm64/javalib.art --image-format=lz4 --profile-file=out/target/product/OnePlus3/obj/JAVA_LIBRARIES/services_intermediates//profile.prof
It seems we have to investigate if the code is simply not there or somewhere else. We might be able to dump it from the oat in some cases...
Could you have a look into why it is there for your test device but not others?