1*d57664e9SAndroid Build Coastguard Worker// Copyright (C) 2019 The Android Open Source Project 2*d57664e9SAndroid Build Coastguard Worker// 3*d57664e9SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License"); 4*d57664e9SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License. 5*d57664e9SAndroid Build Coastguard Worker// You may obtain a copy of the License at 6*d57664e9SAndroid Build Coastguard Worker// 7*d57664e9SAndroid Build Coastguard Worker// http://www.apache.org/licenses/LICENSE-2.0 8*d57664e9SAndroid Build Coastguard Worker// 9*d57664e9SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software 10*d57664e9SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS, 11*d57664e9SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*d57664e9SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and 13*d57664e9SAndroid Build Coastguard Worker// limitations under the License. 14*d57664e9SAndroid Build Coastguard Worker 15*d57664e9SAndroid Build Coastguard Worker// Build rules to build shim apks. 16*d57664e9SAndroid Build Coastguard Worker 17*d57664e9SAndroid Build Coastguard Worker//########################################################## 18*d57664e9SAndroid Build Coastguard Worker// Variant: Privileged app upgrade 19*d57664e9SAndroid Build Coastguard Worker 20*d57664e9SAndroid Build Coastguard Workerpackage { 21*d57664e9SAndroid Build Coastguard Worker // See: http://go/android-license-faq 22*d57664e9SAndroid Build Coastguard Worker // A large-scale-change added 'default_applicable_licenses' to import 23*d57664e9SAndroid Build Coastguard Worker // all of the 'license_kinds' from "frameworks_base_license" 24*d57664e9SAndroid Build Coastguard Worker // to get the below license kinds: 25*d57664e9SAndroid Build Coastguard Worker // SPDX-license-identifier-Apache-2.0 26*d57664e9SAndroid Build Coastguard Worker default_applicable_licenses: ["frameworks_base_license"], 27*d57664e9SAndroid Build Coastguard Worker} 28*d57664e9SAndroid Build Coastguard Worker 29*d57664e9SAndroid Build Coastguard Workerandroid_app { 30*d57664e9SAndroid Build Coastguard Worker name: "CtsShimPrivUpgrade", 31*d57664e9SAndroid Build Coastguard Worker // this needs to be a privileged application 32*d57664e9SAndroid Build Coastguard Worker privileged: true, 33*d57664e9SAndroid Build Coastguard Worker 34*d57664e9SAndroid Build Coastguard Worker sdk_version: "current", 35*d57664e9SAndroid Build Coastguard Worker optimize: { 36*d57664e9SAndroid Build Coastguard Worker enabled: false, 37*d57664e9SAndroid Build Coastguard Worker }, 38*d57664e9SAndroid Build Coastguard Worker dex_preopt: { 39*d57664e9SAndroid Build Coastguard Worker enabled: false, 40*d57664e9SAndroid Build Coastguard Worker }, 41*d57664e9SAndroid Build Coastguard Worker 42*d57664e9SAndroid Build Coastguard Worker manifest: "shim_priv_upgrade/AndroidManifest.xml", 43*d57664e9SAndroid Build Coastguard Worker 44*d57664e9SAndroid Build Coastguard Worker compile_multilib: "both", 45*d57664e9SAndroid Build Coastguard Worker jni_libs: ["libshim_jni"], 46*d57664e9SAndroid Build Coastguard Worker // Explicitly uncompress native libs rather than letting the build system doing it and destroy the 47*d57664e9SAndroid Build Coastguard Worker // v2/v3 signature. 48*d57664e9SAndroid Build Coastguard Worker use_embedded_native_libs: true, 49*d57664e9SAndroid Build Coastguard Worker 50*d57664e9SAndroid Build Coastguard Worker uses_libs: ["android.test.runner"], 51*d57664e9SAndroid Build Coastguard Worker 52*d57664e9SAndroid Build Coastguard Worker apex_available: [ 53*d57664e9SAndroid Build Coastguard Worker "//apex_available:platform", 54*d57664e9SAndroid Build Coastguard Worker "com.android.apex.cts.shim.v2_apk_in_apex_upgrades", 55*d57664e9SAndroid Build Coastguard Worker ], 56*d57664e9SAndroid Build Coastguard Worker} 57*d57664e9SAndroid Build Coastguard Worker 58*d57664e9SAndroid Build Coastguard Workerjava_genrule { 59*d57664e9SAndroid Build Coastguard Worker name: "generate_priv_manifest", 60*d57664e9SAndroid Build Coastguard Worker srcs: [ 61*d57664e9SAndroid Build Coastguard Worker "shim_priv/AndroidManifest.xml", 62*d57664e9SAndroid Build Coastguard Worker ":CtsShimPrivUpgrade", 63*d57664e9SAndroid Build Coastguard Worker ], 64*d57664e9SAndroid Build Coastguard Worker out: ["AndroidManifest.xml"], 65*d57664e9SAndroid Build Coastguard Worker cmd: "sed -e s/__HASH__/`sha512sum -b $(location :CtsShimPrivUpgrade) | cut -d' ' -f1`/ $(location shim_priv/AndroidManifest.xml) > $(out)", 66*d57664e9SAndroid Build Coastguard Worker} 67*d57664e9SAndroid Build Coastguard Worker 68*d57664e9SAndroid Build Coastguard Worker//########################################################## 69*d57664e9SAndroid Build Coastguard Worker// Variant: Privileged app 70*d57664e9SAndroid Build Coastguard Worker 71*d57664e9SAndroid Build Coastguard Workerandroid_app { 72*d57664e9SAndroid Build Coastguard Worker name: "CtsShimPriv", 73*d57664e9SAndroid Build Coastguard Worker // this needs to be a privileged application 74*d57664e9SAndroid Build Coastguard Worker privileged: true, 75*d57664e9SAndroid Build Coastguard Worker 76*d57664e9SAndroid Build Coastguard Worker sdk_version: "current", 77*d57664e9SAndroid Build Coastguard Worker optimize: { 78*d57664e9SAndroid Build Coastguard Worker enabled: false, 79*d57664e9SAndroid Build Coastguard Worker }, 80*d57664e9SAndroid Build Coastguard Worker dex_preopt: { 81*d57664e9SAndroid Build Coastguard Worker enabled: false, 82*d57664e9SAndroid Build Coastguard Worker }, 83*d57664e9SAndroid Build Coastguard Worker 84*d57664e9SAndroid Build Coastguard Worker manifest: ":generate_priv_manifest", 85*d57664e9SAndroid Build Coastguard Worker 86*d57664e9SAndroid Build Coastguard Worker compile_multilib: "both", 87*d57664e9SAndroid Build Coastguard Worker jni_libs: ["libshim_jni"], 88*d57664e9SAndroid Build Coastguard Worker // Explicitly uncompress native libs rather than letting the build system doing it and destroy the 89*d57664e9SAndroid Build Coastguard Worker // v2/v3 signature. 90*d57664e9SAndroid Build Coastguard Worker use_embedded_native_libs: true, 91*d57664e9SAndroid Build Coastguard Worker apex_available: [ 92*d57664e9SAndroid Build Coastguard Worker "//apex_available:platform", 93*d57664e9SAndroid Build Coastguard Worker "com.android.apex.cts.shim.v1", 94*d57664e9SAndroid Build Coastguard Worker "com.android.apex.cts.shim.v2", 95*d57664e9SAndroid Build Coastguard Worker "com.android.apex.cts.shim.v2_apk_in_apex_upgrades", 96*d57664e9SAndroid Build Coastguard Worker "com.android.apex.cts.shim.v2_legacy", 97*d57664e9SAndroid Build Coastguard Worker "com.android.apex.cts.shim.v2_sdk_target_p", 98*d57664e9SAndroid Build Coastguard Worker "com.android.apex.cts.shim.v2_unsigned_payload", 99*d57664e9SAndroid Build Coastguard Worker "com.android.apex.cts.shim.v3", 100*d57664e9SAndroid Build Coastguard Worker ], 101*d57664e9SAndroid Build Coastguard Worker min_sdk_version: "24", 102*d57664e9SAndroid Build Coastguard Worker} 103*d57664e9SAndroid Build Coastguard Worker 104*d57664e9SAndroid Build Coastguard Worker//########################################################## 105*d57664e9SAndroid Build Coastguard Worker// Variant: Privileged app upgrade w/ the wrong SHA 106*d57664e9SAndroid Build Coastguard Worker 107*d57664e9SAndroid Build Coastguard Workerandroid_app { 108*d57664e9SAndroid Build Coastguard Worker name: "CtsShimPrivUpgradeWrongSHA", 109*d57664e9SAndroid Build Coastguard Worker // this needs to be a privileged application 110*d57664e9SAndroid Build Coastguard Worker privileged: true, 111*d57664e9SAndroid Build Coastguard Worker 112*d57664e9SAndroid Build Coastguard Worker sdk_version: "current", 113*d57664e9SAndroid Build Coastguard Worker optimize: { 114*d57664e9SAndroid Build Coastguard Worker enabled: false, 115*d57664e9SAndroid Build Coastguard Worker }, 116*d57664e9SAndroid Build Coastguard Worker dex_preopt: { 117*d57664e9SAndroid Build Coastguard Worker enabled: false, 118*d57664e9SAndroid Build Coastguard Worker }, 119*d57664e9SAndroid Build Coastguard Worker // anything to make this package's SHA different from CtsShimPrivUpgrade 120*d57664e9SAndroid Build Coastguard Worker aaptflags: [ 121*d57664e9SAndroid Build Coastguard Worker "--version-name", 122*d57664e9SAndroid Build Coastguard Worker "WrongSHA", 123*d57664e9SAndroid Build Coastguard Worker ], 124*d57664e9SAndroid Build Coastguard Worker 125*d57664e9SAndroid Build Coastguard Worker manifest: "shim_priv_upgrade/AndroidManifest.xml", 126*d57664e9SAndroid Build Coastguard Worker 127*d57664e9SAndroid Build Coastguard Worker compile_multilib: "both", 128*d57664e9SAndroid Build Coastguard Worker jni_libs: ["libshim_jni"], 129*d57664e9SAndroid Build Coastguard Worker // Explicitly uncompress native libs rather than letting the build system doing it and destroy the 130*d57664e9SAndroid Build Coastguard Worker // v2/v3 signature. 131*d57664e9SAndroid Build Coastguard Worker use_embedded_native_libs: true, 132*d57664e9SAndroid Build Coastguard Worker 133*d57664e9SAndroid Build Coastguard Worker uses_libs: ["android.test.runner"], 134*d57664e9SAndroid Build Coastguard Worker} 135*d57664e9SAndroid Build Coastguard Worker 136*d57664e9SAndroid Build Coastguard Worker//########################################################## 137*d57664e9SAndroid Build Coastguard Worker// Variant: Non Privileged app upgrade which is malformed 138*d57664e9SAndroid Build Coastguard Workerandroid_app { 139*d57664e9SAndroid Build Coastguard Worker name: "CtsShimTargetPSdk", 140*d57664e9SAndroid Build Coastguard Worker sdk_version: "current", 141*d57664e9SAndroid Build Coastguard Worker optimize: { 142*d57664e9SAndroid Build Coastguard Worker enabled: false, 143*d57664e9SAndroid Build Coastguard Worker }, 144*d57664e9SAndroid Build Coastguard Worker dex_preopt: { 145*d57664e9SAndroid Build Coastguard Worker enabled: false, 146*d57664e9SAndroid Build Coastguard Worker }, 147*d57664e9SAndroid Build Coastguard Worker manifest: "shim/AndroidManifestTargetPSdk.xml", 148*d57664e9SAndroid Build Coastguard Worker apex_available: [ 149*d57664e9SAndroid Build Coastguard Worker "//apex_available:platform", 150*d57664e9SAndroid Build Coastguard Worker "com.android.apex.cts.shim.v2_apk_in_apex_sdk_target_p", 151*d57664e9SAndroid Build Coastguard Worker ], 152*d57664e9SAndroid Build Coastguard Worker} 153*d57664e9SAndroid Build Coastguard Worker 154*d57664e9SAndroid Build Coastguard Worker//########################################################## 155*d57664e9SAndroid Build Coastguard Worker// Variant: System app upgrade 156*d57664e9SAndroid Build Coastguard Worker 157*d57664e9SAndroid Build Coastguard Workerandroid_app { 158*d57664e9SAndroid Build Coastguard Worker name: "CtsShimUpgrade", 159*d57664e9SAndroid Build Coastguard Worker 160*d57664e9SAndroid Build Coastguard Worker sdk_version: "current", 161*d57664e9SAndroid Build Coastguard Worker optimize: { 162*d57664e9SAndroid Build Coastguard Worker enabled: false, 163*d57664e9SAndroid Build Coastguard Worker }, 164*d57664e9SAndroid Build Coastguard Worker dex_preopt: { 165*d57664e9SAndroid Build Coastguard Worker enabled: false, 166*d57664e9SAndroid Build Coastguard Worker }, 167*d57664e9SAndroid Build Coastguard Worker 168*d57664e9SAndroid Build Coastguard Worker manifest: "shim/AndroidManifestUpgrade.xml", 169*d57664e9SAndroid Build Coastguard Worker min_sdk_version: "24", 170*d57664e9SAndroid Build Coastguard Worker} 171*d57664e9SAndroid Build Coastguard Worker 172*d57664e9SAndroid Build Coastguard Workerjava_genrule { 173*d57664e9SAndroid Build Coastguard Worker name: "generate_shim_manifest", 174*d57664e9SAndroid Build Coastguard Worker srcs: [ 175*d57664e9SAndroid Build Coastguard Worker "shim/AndroidManifest.xml", 176*d57664e9SAndroid Build Coastguard Worker ":CtsShimUpgrade", 177*d57664e9SAndroid Build Coastguard Worker ], 178*d57664e9SAndroid Build Coastguard Worker out: ["AndroidManifest.xml"], 179*d57664e9SAndroid Build Coastguard Worker cmd: "sed -e s/__HASH__/`sha512sum -b $(location :CtsShimUpgrade) | cut -d' ' -f1`/ $(location shim/AndroidManifest.xml) > $(out)", 180*d57664e9SAndroid Build Coastguard Worker} 181*d57664e9SAndroid Build Coastguard Worker 182*d57664e9SAndroid Build Coastguard Worker//########################################################## 183*d57664e9SAndroid Build Coastguard Worker// Variant: System app 184*d57664e9SAndroid Build Coastguard Worker 185*d57664e9SAndroid Build Coastguard Workerandroid_app { 186*d57664e9SAndroid Build Coastguard Worker name: "CtsShim", 187*d57664e9SAndroid Build Coastguard Worker 188*d57664e9SAndroid Build Coastguard Worker sdk_version: "current", 189*d57664e9SAndroid Build Coastguard Worker optimize: { 190*d57664e9SAndroid Build Coastguard Worker enabled: false, 191*d57664e9SAndroid Build Coastguard Worker }, 192*d57664e9SAndroid Build Coastguard Worker dex_preopt: { 193*d57664e9SAndroid Build Coastguard Worker enabled: false, 194*d57664e9SAndroid Build Coastguard Worker }, 195*d57664e9SAndroid Build Coastguard Worker 196*d57664e9SAndroid Build Coastguard Worker manifest: ":generate_shim_manifest", 197*d57664e9SAndroid Build Coastguard Worker apex_available: [ 198*d57664e9SAndroid Build Coastguard Worker "//apex_available:platform", 199*d57664e9SAndroid Build Coastguard Worker "com.android.apex.cts.shim.v1", 200*d57664e9SAndroid Build Coastguard Worker "com.android.apex.cts.shim.v2", 201*d57664e9SAndroid Build Coastguard Worker "com.android.apex.cts.shim.v2_apk_in_apex_upgrades", 202*d57664e9SAndroid Build Coastguard Worker "com.android.apex.cts.shim.v2_legacy", 203*d57664e9SAndroid Build Coastguard Worker "com.android.apex.cts.shim.v2_sdk_target_p", 204*d57664e9SAndroid Build Coastguard Worker "com.android.apex.cts.shim.v2_unsigned_payload", 205*d57664e9SAndroid Build Coastguard Worker "com.android.apex.cts.shim.v3", 206*d57664e9SAndroid Build Coastguard Worker ], 207*d57664e9SAndroid Build Coastguard Worker min_sdk_version: "24", 208*d57664e9SAndroid Build Coastguard Worker} 209*d57664e9SAndroid Build Coastguard Worker 210*d57664e9SAndroid Build Coastguard Worker//########################################################## 211*d57664e9SAndroid Build Coastguard Worker// Variant: Add apk to an apex 212*d57664e9SAndroid Build Coastguard Workerandroid_app { 213*d57664e9SAndroid Build Coastguard Worker name: "CtsShimAddApkToApex", 214*d57664e9SAndroid Build Coastguard Worker sdk_version: "current", 215*d57664e9SAndroid Build Coastguard Worker srcs: ["shim_add_apk_to_apex/src/android/addapktoapex/app/AddApkToApexDeviceActivity.java"], 216*d57664e9SAndroid Build Coastguard Worker optimize: { 217*d57664e9SAndroid Build Coastguard Worker enabled: false, 218*d57664e9SAndroid Build Coastguard Worker }, 219*d57664e9SAndroid Build Coastguard Worker dex_preopt: { 220*d57664e9SAndroid Build Coastguard Worker enabled: false, 221*d57664e9SAndroid Build Coastguard Worker }, 222*d57664e9SAndroid Build Coastguard Worker manifest: "shim_add_apk_to_apex/AndroidManifestAddApkToApex.xml", 223*d57664e9SAndroid Build Coastguard Worker apex_available: [ 224*d57664e9SAndroid Build Coastguard Worker "//apex_available:platform", 225*d57664e9SAndroid Build Coastguard Worker "com.android.apex.cts.shim.v2_add_apk_to_apex", 226*d57664e9SAndroid Build Coastguard Worker ], 227*d57664e9SAndroid Build Coastguard Worker} 228