diff --git a/packages/CtsShim/Android.mk b/packages/CtsShim/Android.mk index 537b1714ba712..b827bdf11db9b 100644 --- a/packages/CtsShim/Android.mk +++ b/packages/CtsShim/Android.mk @@ -20,23 +20,19 @@ LOCAL_PATH := $(call my-dir) # Variant: Privileged app include $(CLEAR_VARS) + +LOCAL_MODULE := CtsShimPrivPrebuilt +LOCAL_MODULE_TAGS := optional # this needs to be a privileged application LOCAL_PRIVILEGED_MODULE := true +LOCAL_MODULE_CLASS := APPS +LOCAL_BUILT_MODULE_STEM := package.apk +# Make sure the build system doesn't try to resign the APK +LOCAL_CERTIFICATE := PRESIGNED -LOCAL_MODULE_TAGS := optional -LOCAL_SDK_VERSION := current -LOCAL_PROGUARD_ENABLED := disabled -LOCAL_DEX_PREOPT := false - -LOCAL_PACKAGE_NAME := CtsShimPriv - -#TODO need to find the correct certificate -#Change in conjunction with cts/hostsidetests/appsecurity/test-apps/IntentFilterApp -LOCAL_CERTIFICATE := platform -LOCAL_MANIFEST_FILE := priv_shim/AndroidManifest.xml - -include $(BUILD_PACKAGE) +LOCAL_SRC_FILES := CtsShimPriv.apk +include $(BUILD_PREBUILT) ########################################################### @@ -44,18 +40,14 @@ include $(BUILD_PACKAGE) include $(CLEAR_VARS) +LOCAL_MODULE := CtsShimPrebuilt LOCAL_MODULE_TAGS := optional -LOCAL_SDK_VERSION := current -LOCAL_PROGUARD_ENABLED := disabled -LOCAL_DEX_PREOPT := false +LOCAL_MODULE_CLASS := APPS +LOCAL_BUILT_MODULE_STEM := package.apk +# Make sure the build system doesn't try to resign the APK +LOCAL_CERTIFICATE := PRESIGNED -LOCAL_PACKAGE_NAME := CtsShim - -#TODO need to find the correct certificate -#Change in conjunction with cts/hostsidetests/appsecurity/test-apps/IntentFilterApp -LOCAL_CERTIFICATE := platform -LOCAL_MANIFEST_FILE := shim/AndroidManifest.xml - -include $(BUILD_PACKAGE) +LOCAL_SRC_FILES := CtsShim.apk +include $(BUILD_PREBUILT) diff --git a/packages/CtsShim/CtsShim.apk b/packages/CtsShim/CtsShim.apk new file mode 100644 index 0000000000000..18e8e33fb91c8 Binary files /dev/null and b/packages/CtsShim/CtsShim.apk differ diff --git a/packages/CtsShim/CtsShimPriv.apk b/packages/CtsShim/CtsShimPriv.apk new file mode 100644 index 0000000000000..48f35d37fb813 Binary files /dev/null and b/packages/CtsShim/CtsShimPriv.apk differ diff --git a/packages/CtsShim/build/.gitignore b/packages/CtsShim/build/.gitignore new file mode 100644 index 0000000000000..e893c13ed5cb5 --- /dev/null +++ b/packages/CtsShim/build/.gitignore @@ -0,0 +1,3 @@ +*.pk8 +*.pem + diff --git a/packages/CtsShim/build/Android.mk b/packages/CtsShim/build/Android.mk new file mode 100644 index 0000000000000..b550c1c253f3f --- /dev/null +++ b/packages/CtsShim/build/Android.mk @@ -0,0 +1,72 @@ +# +# Copyright (C) 2016 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +LOCAL_PATH := $(my-dir) + +########################################################### +# Variant: Privileged app + +include $(CLEAR_VARS) +# this needs to be a privileged application +LOCAL_PRIVILEGED_MODULE := true + +LOCAL_MODULE_TAGS := optional +LOCAL_SDK_VERSION := current +LOCAL_PROGUARD_ENABLED := disabled +LOCAL_DEX_PREOPT := false + +LOCAL_PACKAGE_NAME := CtsShimPriv + +LOCAL_MANIFEST_FILE := shim_priv/AndroidManifest.xml + +include $(BUILD_PACKAGE) + + +########################################################### +# Variant: Privileged app upgrade + +include $(CLEAR_VARS) +# this needs to be a privileged application +LOCAL_PRIVILEGED_MODULE := true + +LOCAL_MODULE_TAGS := optional +LOCAL_SDK_VERSION := current +LOCAL_PROGUARD_ENABLED := disabled +LOCAL_DEX_PREOPT := false + +LOCAL_PACKAGE_NAME := CtsShimPrivUpgrade + +LOCAL_MANIFEST_FILE := shim_priv_upgrade/AndroidManifest.xml + +include $(BUILD_PACKAGE) + + +########################################################### +# Variant: System app + +include $(CLEAR_VARS) + +LOCAL_MODULE_TAGS := optional +LOCAL_SDK_VERSION := current +LOCAL_PROGUARD_ENABLED := disabled +LOCAL_DEX_PREOPT := false + +LOCAL_PACKAGE_NAME := CtsShim + +LOCAL_MANIFEST_FILE := shim/AndroidManifest.xml + +include $(BUILD_PACKAGE) + diff --git a/packages/CtsShim/build/README b/packages/CtsShim/build/README new file mode 100644 index 0000000000000..11e434f297f77 --- /dev/null +++ b/packages/CtsShim/build/README @@ -0,0 +1,33 @@ + +The CTS shim is a package that resides on a device's /system partition in order +to verify certain upgrade scenarios. Not only must it not contain code, but, it +must specify the singular APK that can be used to upgrade it. + +NOTE: The need to include a binary on the system image may be deprecated if a +solution involving a temporarily writable /system partition is implemented. + +MAKING THE PREBUILTS +In order to generate the upgrade key, the shim directory needs to be built multiple +times. First to generate the upgrade APK [so its hash can be obtained] and again +once the hash has been included as part of the pre-installed APK. + +build: + $ mmm frameworks/base/packages/CtsShim/build + +update the manifest: + $ sed -i -e "s/__HASH__/`sha512sum out/target/product/shamu/system/priv-app/CtsShimPrivUpgrade/CtsShimPrivUpgrade.apk | cut -d' ' -f1`/" \ + frameworks/base/packages/CtsShim/build/shim_priv/AndroidManifest.xml + +build: + $ mmm frameworks/base/packages/CtsShim/build + +update prebuilts: + $ cp out/target/product/shamu/system/priv-app/CtsShimPrivUpgrade/CtsShimPrivUpgrade.apk \ + cts/hostsidetests/appsecurity/test-apps/IntentFilterApp + $ cp out/target/product/shamu/system/priv-app/CtsShimPriv/CtsShimPriv.apk \ + frameworks/base/packages/CtsShim + +revert manifest: + $ pushd frameworks/base && git checkout -- packages/CtsShim/build/shim_priv/AndroidManifest.xml && popd + +Finally, upload and submit both the cts/ and frameworks/base/ repos. \ No newline at end of file diff --git a/packages/CtsShim/shim/AndroidManifest.xml b/packages/CtsShim/build/shim/AndroidManifest.xml similarity index 89% rename from packages/CtsShim/shim/AndroidManifest.xml rename to packages/CtsShim/build/shim/AndroidManifest.xml index ee4b547ddc97b..ac32d94df1f3a 100644 --- a/packages/CtsShim/shim/AndroidManifest.xml +++ b/packages/CtsShim/build/shim/AndroidManifest.xml @@ -16,8 +16,13 @@ - + xmlns:tools="http://schemas.android.com/tools" + package="com.android.cts.ctsshim" + tools:ignore="MissingVersion" > + + diff --git a/packages/CtsShim/priv_shim/AndroidManifest.xml b/packages/CtsShim/build/shim_priv/AndroidManifest.xml similarity index 95% rename from packages/CtsShim/priv_shim/AndroidManifest.xml rename to packages/CtsShim/build/shim_priv/AndroidManifest.xml index 0a3f8235948c3..68c6a74736b54 100644 --- a/packages/CtsShim/priv_shim/AndroidManifest.xml +++ b/packages/CtsShim/build/shim_priv/AndroidManifest.xml @@ -16,8 +16,16 @@ - + xmlns:tools="http://schemas.android.com/tools" + package="com.android.cts.priv.ctsshim" + tools:ignore="MissingVersion" > + + + + diff --git a/packages/CtsShim/build/shim_priv_upgrade/AndroidManifest.xml b/packages/CtsShim/build/shim_priv_upgrade/AndroidManifest.xml new file mode 100644 index 0000000000000..af96dfd8b73ae --- /dev/null +++ b/packages/CtsShim/build/shim_priv_upgrade/AndroidManifest.xml @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +