-
Notifications
You must be signed in to change notification settings - Fork 26
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
No Coverage for Android apps implementing Dynamic Delivery #7
Comments
Hi Negar, As mentioned in the paper, TimeMachine uses a modified version of Ella for saving coverage data in /sdcard on the Android framework. So you need to modify the original Ella to save data coverage in /sdcard, or use the version I modified. Ella files I changed are shared in the Github issue. please reference this issue: #6 Old AOSP versions(Android4.4) have Google service apps but new versions of AOSP (Android 7) do not have any more. What you can do is:
Can you kindly create a new issue on the Github and move the question there? So the answer also can help others. Thanks. Best regards |
Thanks for your response. These are all the places I thought I should modify, but still the coverage is zero. Could you please let me know what is going wrong? |
Can you please check if coverage data is stored in folder /sdcard? Maybe you test this on a standard emulator and make sure coverage data is generated by Ella and stored /sdcard. |
My problem right now is in the VM image of the emulator. I need to use an emulator with Android 10 and Google services, but the image in TimeTravel docker is Android 7. So even if I manually install Google services on it, I can't use Android 7. |
Emulators in Android studio can be an option since they support saving&restoring states. This is planed. |
I understand that Android Studio can do that. However, I don't want to solely use Android Studio. I want to be able to integrate the VM image of such emulator, with Android 10 and google services that support Android dynamic delivery, with time-travel testing through the docker image you provided. |
I am trying to run TimeMachine to test an Android app. I am doing every step exactly as instructed in in this repo. I was able to run it with the apps in "two_apps_under_test" directory, and the results showed thousands of methods for method coverage. However, I have a problem running it on some other apps not included in your repo.
When I try to run TimeMachine on my own apps, it seems to run with no error for about 30 minutes, but at the end the coverage result is 0.
These apps are in forms of closed-source base APKs that use Android dynamic delivery in their implementation. In other words, the base.apk is part of an app bundle that includes dynamic feature modules and using the Play Core API (SplitInstallManager) the base APK request to install the dynamic features on-demand.
I was wondering if TimeMachine is capable of supporting app bundles with dynamic feature modules. If yes, could you please help me with the result I get?
You can find the apk, and the output result of running TimeMachine on it here.
The text was updated successfully, but these errors were encountered: