1 2The CTS shim is a package that resides on a device's /system partition in order 3to verify certain upgrade scenarios. Not only must it not contain code, but, it 4must specify the singular APK that can be used to upgrade it. 5 6NOTE: The need to include a binary on the system image may be deprecated if a 7solution involving a temporarily writable /system partition is implemented. 8 9For local testing, build the apk and put them in the following folders. 10This is for arm: 11 $ tapas CtsShim CtsShimPriv CtsShimPrivUpgrade CtsShimPrivUpgradeWrongSHA arm64 12 $ m 13 $ cp $OUT/system/priv-app/CtsShimPrivUpgrade/CtsShimPrivUpgrade.apk \ 14 cts/hostsidetests/appsecurity/test-apps/PrivilegedUpdateApp/apk/arm 15 $ cp $OUT/system/priv-app/CtsShimPrivUpgrade/CtsShimPrivUpgrade.apk \ 16 vendor/xts/gts-tests/hostsidetests/packagemanager/app/apk/arm/GtsShimPrivUpgrade.apk 17 $ cp $OUT/system/priv-app/CtsShimPrivUpgradeWrongSHA/CtsShimPrivUpgradeWrongSHA.apk \ 18 cts/hostsidetests/appsecurity/test-apps/PrivilegedUpdateApp/apk/arm 19 $ cp $OUT/system/priv-app/CtsShimPriv/CtsShimPriv.apk \ 20 frameworks/base/packages/CtsShim/apk/arm 21 $ cp $OUT/system/app/CtsShim/CtsShim.apk \ 22 frameworks/base/packages/CtsShim/apk/arm 23 24This is for x86: 25 $ tapas CtsShim CtsShimPriv CtsShimPrivUpgrade CtsShimPrivUpgradeWrongSHA x86_64 26 $ m 27 $ cp $OUT/system/priv-app/CtsShimPrivUpgrade/CtsShimPrivUpgrade.apk \ 28 cts/hostsidetests/appsecurity/test-apps/PrivilegedUpdateApp/apk/x86 29 $ cp $OUT/system/priv-app/CtsShimPrivUpgrade/CtsShimPrivUpgrade.apk \ 30 vendor/xts/gts-tests/hostsidetests/packagemanager/app/apk/x86/GtsShimPrivUpgrade.apk 31 $ cp $OUT/system/priv-app/CtsShimPrivUpgradeWrongSHA/CtsShimPrivUpgradeWrongSHA.apk \ 32 cts/hostsidetests/appsecurity/test-apps/PrivilegedUpdateApp/apk/x86 33 $ cp $OUT/system/priv-app/CtsShimPriv/CtsShimPriv.apk \ 34 frameworks/base/packages/CtsShim/apk/x86 35 $ cp $OUT/system/app/CtsShim/CtsShim.apk \ 36 frameworks/base/packages/CtsShim/apk/x86 37 38For final submission, the APKs should be downloaded from the build server, then 39submitted to the cts/ and frameworks/base/ repos. 40 41