599043a235
Currently, tests for pKVM are written as hode-side tests which interact with the platform using the `vm` tool. However, that approach has cause many problems: * Can't test Java APIs; we were testing the command line interface of the tool actually. * Unreliable connection to adb; we had to add busy loops to work around some of the flakes. We should move on to the device-side tests. There will be a self-instrumened test apk which will be driven by tradefed. However, one blocker to the plan is that the Java APIs are not available to test apps, as we don't have a plan to make the APIs public in TM and therefore we put the APIs behind signature-protected permissions (com.android.MANAGE_VIRTUAL_MACHINE, com.android.DEBUG_VIRTUAL_MACHINE). Since test apps can't be signed with the platform key, our test apk can't have the permission. This CL fixes the problem by turning on the `development` bit in the protection level of the permissions. Then the permission can be granted to the test apps satisfying following conditions (all): * test app has `android:testOnly="true"` in its manifest. The flag prevents the app from being uploaded to Play or installed from there. * the app has to be installed with the "-t" (`INSTALL_ALLOW_TEST`) flag * the permission has to be explicitly granted via `pm grant <package> <perm>` command`. Bug: 203483081 Test: TARGET_BUILD_APPS="MicrodroidDemoApp" m apps_only dist adb install --no-streaming -t out/dist/MicrodroidDemoApp.apk adb shell $ su; setenforce 0 // will be fixed $ pm grant com.android.microdroid.demo android.permission.MANAGE_VIRTUAL_MACHINE run the demo app Change-Id: Ic163a3bc745fc310d690faddde638405faad686c |
||
---|---|---|
.. | ||
api | ||
jni | ||
src/android/system/virtualmachine | ||
Android.bp | ||
AndroidManifest.xml |