1*33f37583SAndroid Build Coastguard Worker// Copyright (C) 2022 The Android Open Source Project 2*33f37583SAndroid Build Coastguard Worker// 3*33f37583SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License"); 4*33f37583SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License. 5*33f37583SAndroid Build Coastguard Worker// You may obtain a copy of the License at 6*33f37583SAndroid Build Coastguard Worker// 7*33f37583SAndroid Build Coastguard Worker// http://www.apache.org/licenses/LICENSE-2.0 8*33f37583SAndroid Build Coastguard Worker// 9*33f37583SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software 10*33f37583SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS, 11*33f37583SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*33f37583SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and 13*33f37583SAndroid Build Coastguard Worker// limitations under the License. 14*33f37583SAndroid Build Coastguard Worker 15*33f37583SAndroid Build Coastguard Workerpackage { 16*33f37583SAndroid Build Coastguard Worker default_applicable_licenses: ["Android-Apache-2.0"], 17*33f37583SAndroid Build Coastguard Worker} 18*33f37583SAndroid Build Coastguard Worker 19*33f37583SAndroid Build Coastguard Workerapex_key { 20*33f37583SAndroid Build Coastguard Worker name: "com.android.apex.vendor.foo.key", 21*33f37583SAndroid Build Coastguard Worker public_key: "com.android.apex.vendor.foo.avbpubkey", 22*33f37583SAndroid Build Coastguard Worker private_key: "com.android.apex.vendor.foo.pem", 23*33f37583SAndroid Build Coastguard Worker} 24*33f37583SAndroid Build Coastguard Worker 25*33f37583SAndroid Build Coastguard Workerandroid_app_certificate { 26*33f37583SAndroid Build Coastguard Worker name: "com.android.apex.vendor.foo.certificate", 27*33f37583SAndroid Build Coastguard Worker certificate: "com.android.apex.vendor.foo", 28*33f37583SAndroid Build Coastguard Worker} 29*33f37583SAndroid Build Coastguard Worker 30*33f37583SAndroid Build Coastguard Workerapex_defaults { 31*33f37583SAndroid Build Coastguard Worker name: "com.android.apex.vendor.foo.defaults", 32*33f37583SAndroid Build Coastguard Worker manifest: "manifest_v1.json", 33*33f37583SAndroid Build Coastguard Worker file_contexts: "file_contexts", 34*33f37583SAndroid Build Coastguard Worker key: "com.android.apex.vendor.foo.key", 35*33f37583SAndroid Build Coastguard Worker certificate: ":com.android.apex.vendor.foo.certificate", 36*33f37583SAndroid Build Coastguard Worker vendor: true, 37*33f37583SAndroid Build Coastguard Worker updatable: false, 38*33f37583SAndroid Build Coastguard Worker installable: false, 39*33f37583SAndroid Build Coastguard Worker} 40*33f37583SAndroid Build Coastguard Worker 41*33f37583SAndroid Build Coastguard Workerapex_test { 42*33f37583SAndroid Build Coastguard Worker name: "com.android.apex.vendor.foo", 43*33f37583SAndroid Build Coastguard Worker defaults: [ 44*33f37583SAndroid Build Coastguard Worker "com.android.apex.vendor.foo.defaults", 45*33f37583SAndroid Build Coastguard Worker ], 46*33f37583SAndroid Build Coastguard Worker} 47*33f37583SAndroid Build Coastguard Worker 48*33f37583SAndroid Build Coastguard Workerapex_test { 49*33f37583SAndroid Build Coastguard Worker name: "com.android.apex.vendor.bar", 50*33f37583SAndroid Build Coastguard Worker defaults: [ 51*33f37583SAndroid Build Coastguard Worker "com.android.apex.vendor.foo.defaults", 52*33f37583SAndroid Build Coastguard Worker ], 53*33f37583SAndroid Build Coastguard Worker manifest: "manifest_bar_v1.json", 54*33f37583SAndroid Build Coastguard Worker} 55*33f37583SAndroid Build Coastguard Worker 56*33f37583SAndroid Build Coastguard Workerapex_test { 57*33f37583SAndroid Build Coastguard Worker name: "com.android.apex.vendor.foo.v2", 58*33f37583SAndroid Build Coastguard Worker defaults: [ 59*33f37583SAndroid Build Coastguard Worker "com.android.apex.vendor.foo.defaults", 60*33f37583SAndroid Build Coastguard Worker ], 61*33f37583SAndroid Build Coastguard Worker manifest: "manifest_v2.json", 62*33f37583SAndroid Build Coastguard Worker} 63*33f37583SAndroid Build Coastguard Worker 64*33f37583SAndroid Build Coastguard Workerapex_test { 65*33f37583SAndroid Build Coastguard Worker name: "com.android.apex.vendor.foo.v2_with_requireNativeLibs", 66*33f37583SAndroid Build Coastguard Worker defaults: [ 67*33f37583SAndroid Build Coastguard Worker "com.android.apex.vendor.foo.defaults", 68*33f37583SAndroid Build Coastguard Worker ], 69*33f37583SAndroid Build Coastguard Worker manifest: "manifest_v2.json", 70*33f37583SAndroid Build Coastguard Worker binaries: [ 71*33f37583SAndroid Build Coastguard Worker "apex_vendor_foo_test_binary", 72*33f37583SAndroid Build Coastguard Worker ], 73*33f37583SAndroid Build Coastguard Worker skip_validations: { 74*33f37583SAndroid Build Coastguard Worker apex_sepolicy_tests: true, // we don't have a valid label for the test binary 75*33f37583SAndroid Build Coastguard Worker }, 76*33f37583SAndroid Build Coastguard Worker} 77*33f37583SAndroid Build Coastguard Worker 78*33f37583SAndroid Build Coastguard Workercc_binary { 79*33f37583SAndroid Build Coastguard Worker name: "apex_vendor_foo_test_binary", 80*33f37583SAndroid Build Coastguard Worker shared_libs: [ 81*33f37583SAndroid Build Coastguard Worker "libbinder_ndk", // will add "requireNativeLibs" 82*33f37583SAndroid Build Coastguard Worker ], 83*33f37583SAndroid Build Coastguard Worker srcs: [ 84*33f37583SAndroid Build Coastguard Worker "apex_vendor_foo_test_binary.cpp", 85*33f37583SAndroid Build Coastguard Worker ], 86*33f37583SAndroid Build Coastguard Worker vendor: true, 87*33f37583SAndroid Build Coastguard Worker installable: false, 88*33f37583SAndroid Build Coastguard Worker} 89*33f37583SAndroid Build Coastguard Worker 90*33f37583SAndroid Build Coastguard Workerapex_test { 91*33f37583SAndroid Build Coastguard Worker name: "com.android.apex.vendor.foo.apex.all.ready", 92*33f37583SAndroid Build Coastguard Worker defaults: [ 93*33f37583SAndroid Build Coastguard Worker "com.android.apex.vendor.foo.defaults", 94*33f37583SAndroid Build Coastguard Worker ], 95*33f37583SAndroid Build Coastguard Worker prebuilts: [ 96*33f37583SAndroid Build Coastguard Worker "foo.apex.all.ready.rc", 97*33f37583SAndroid Build Coastguard Worker ], 98*33f37583SAndroid Build Coastguard Worker} 99*33f37583SAndroid Build Coastguard Worker 100*33f37583SAndroid Build Coastguard Workerprebuilt_etc { 101*33f37583SAndroid Build Coastguard Worker name: "foo.apex.all.ready.rc", 102*33f37583SAndroid Build Coastguard Worker src: "foo.apex.all.ready.rc", 103*33f37583SAndroid Build Coastguard Worker} 104*33f37583SAndroid Build Coastguard Worker 105*33f37583SAndroid Build Coastguard Worker// Runs forever like /bin/yes 106*33f37583SAndroid Build Coastguard Workercc_binary { 107*33f37583SAndroid Build Coastguard Worker name: "apex_vendor_foo", 108*33f37583SAndroid Build Coastguard Worker srcs: [ 109*33f37583SAndroid Build Coastguard Worker "apex_vendor_foo.cpp", 110*33f37583SAndroid Build Coastguard Worker ], 111*33f37583SAndroid Build Coastguard Worker vendor: true, 112*33f37583SAndroid Build Coastguard Worker installable: false, 113*33f37583SAndroid Build Coastguard Worker} 114*33f37583SAndroid Build Coastguard Worker 115*33f37583SAndroid Build Coastguard Workerprebuilt_etc { 116*33f37583SAndroid Build Coastguard Worker name: "apex_vendor_foo_v1.rc", 117*33f37583SAndroid Build Coastguard Worker src: "apex_vendor_foo_v1.rc", 118*33f37583SAndroid Build Coastguard Worker} 119*33f37583SAndroid Build Coastguard Worker 120*33f37583SAndroid Build Coastguard Workerprebuilt_etc { 121*33f37583SAndroid Build Coastguard Worker name: "apex_vendor_foo_v2.rc", 122*33f37583SAndroid Build Coastguard Worker src: "apex_vendor_foo_v2.rc", 123*33f37583SAndroid Build Coastguard Worker} 124*33f37583SAndroid Build Coastguard Worker 125*33f37583SAndroid Build Coastguard Workerprebuilt_etc { 126*33f37583SAndroid Build Coastguard Worker name: "apex_vendor_foo_v2.xml", 127*33f37583SAndroid Build Coastguard Worker src: "apex_vendor_foo_v2.xml", 128*33f37583SAndroid Build Coastguard Worker sub_dir: "vintf", 129*33f37583SAndroid Build Coastguard Worker installable: false, 130*33f37583SAndroid Build Coastguard Worker} 131*33f37583SAndroid Build Coastguard Worker 132*33f37583SAndroid Build Coastguard Workerapex_test { 133*33f37583SAndroid Build Coastguard Worker name: "com.android.apex.vendor.foo.v1_with_service", 134*33f37583SAndroid Build Coastguard Worker defaults: [ 135*33f37583SAndroid Build Coastguard Worker "com.android.apex.vendor.foo.defaults", 136*33f37583SAndroid Build Coastguard Worker ], 137*33f37583SAndroid Build Coastguard Worker manifest: "manifest_v1.json", 138*33f37583SAndroid Build Coastguard Worker binaries: [ 139*33f37583SAndroid Build Coastguard Worker "apex_vendor_foo", 140*33f37583SAndroid Build Coastguard Worker ], 141*33f37583SAndroid Build Coastguard Worker prebuilts: [ 142*33f37583SAndroid Build Coastguard Worker "apex_vendor_foo_v1.rc", 143*33f37583SAndroid Build Coastguard Worker ], 144*33f37583SAndroid Build Coastguard Worker} 145*33f37583SAndroid Build Coastguard Worker 146*33f37583SAndroid Build Coastguard Workerapex_test { 147*33f37583SAndroid Build Coastguard Worker name: "com.android.apex.vendor.foo.v2_with_service", 148*33f37583SAndroid Build Coastguard Worker defaults: [ 149*33f37583SAndroid Build Coastguard Worker "com.android.apex.vendor.foo.defaults", 150*33f37583SAndroid Build Coastguard Worker ], 151*33f37583SAndroid Build Coastguard Worker manifest: "manifest_v2.json", 152*33f37583SAndroid Build Coastguard Worker binaries: [ 153*33f37583SAndroid Build Coastguard Worker "apex_vendor_foo", 154*33f37583SAndroid Build Coastguard Worker ], 155*33f37583SAndroid Build Coastguard Worker prebuilts: [ 156*33f37583SAndroid Build Coastguard Worker "apex_vendor_foo_v2.rc", 157*33f37583SAndroid Build Coastguard Worker ], 158*33f37583SAndroid Build Coastguard Worker} 159*33f37583SAndroid Build Coastguard Worker 160*33f37583SAndroid Build Coastguard Workerapex_test { 161*33f37583SAndroid Build Coastguard Worker name: "com.android.apex.vendor.foo.v2_with_wrong_vndk_version", 162*33f37583SAndroid Build Coastguard Worker defaults: [ 163*33f37583SAndroid Build Coastguard Worker "com.android.apex.vendor.foo.defaults", 164*33f37583SAndroid Build Coastguard Worker ], 165*33f37583SAndroid Build Coastguard Worker manifest: ":manifest_v2_with_wrong_vndk_version.json", 166*33f37583SAndroid Build Coastguard Worker} 167*33f37583SAndroid Build Coastguard Worker 168*33f37583SAndroid Build Coastguard Workergenrule { 169*33f37583SAndroid Build Coastguard Worker name: "manifest_v2_with_wrong_vndk_version.json", 170*33f37583SAndroid Build Coastguard Worker out: ["manifest_v2_with_wrong_vndk_version.json"], 171*33f37583SAndroid Build Coastguard Worker srcs: ["manifest_v2.json"], 172*33f37583SAndroid Build Coastguard Worker tools: ["jsonmodify"], 173*33f37583SAndroid Build Coastguard Worker cmd: "$(location jsonmodify) -v vndkVersion WrongVndkVersion $(in) -o $(out)", 174*33f37583SAndroid Build Coastguard Worker} 175*33f37583SAndroid Build Coastguard Worker 176*33f37583SAndroid Build Coastguard Workerapex_test { 177*33f37583SAndroid Build Coastguard Worker name: "com.android.apex.vendor.foo.with_vintf", 178*33f37583SAndroid Build Coastguard Worker defaults: [ 179*33f37583SAndroid Build Coastguard Worker "com.android.apex.vendor.foo.defaults", 180*33f37583SAndroid Build Coastguard Worker ], 181*33f37583SAndroid Build Coastguard Worker manifest: "manifest_v2.json", 182*33f37583SAndroid Build Coastguard Worker binaries: [ 183*33f37583SAndroid Build Coastguard Worker "apex_vendor_foo", 184*33f37583SAndroid Build Coastguard Worker ], 185*33f37583SAndroid Build Coastguard Worker prebuilts: [ 186*33f37583SAndroid Build Coastguard Worker "apex_vendor_foo_v2.rc", 187*33f37583SAndroid Build Coastguard Worker "apex_vendor_foo_v2.xml", 188*33f37583SAndroid Build Coastguard Worker ], 189*33f37583SAndroid Build Coastguard Worker} 190*33f37583SAndroid Build Coastguard Worker 191*33f37583SAndroid Build Coastguard Worker// Test apex conflicting with com.android.apex.vendor.foo.v2_with_vintf 192*33f37583SAndroid Build Coastguard Workerapex_test { 193*33f37583SAndroid Build Coastguard Worker name: "com.android.apex.vendor.bar.v2_with_vintf", 194*33f37583SAndroid Build Coastguard Worker defaults: [ 195*33f37583SAndroid Build Coastguard Worker "com.android.apex.vendor.foo.defaults", 196*33f37583SAndroid Build Coastguard Worker ], 197*33f37583SAndroid Build Coastguard Worker manifest: "manifest_bar_v2.json", 198*33f37583SAndroid Build Coastguard Worker prebuilts: [ 199*33f37583SAndroid Build Coastguard Worker "apex_vendor_foo_v2.xml", 200*33f37583SAndroid Build Coastguard Worker ], 201*33f37583SAndroid Build Coastguard Worker} 202*33f37583SAndroid Build Coastguard Worker 203*33f37583SAndroid Build Coastguard Worker// Test apex for updating com.android.hardware.wifi, with an 204*33f37583SAndroid Build Coastguard Worker// updatable-via-apex value that doesn't match wifi's interface. 205*33f37583SAndroid Build Coastguard Workerapex_test { 206*33f37583SAndroid Build Coastguard Worker name: "test.bad1.com.android.hardware.wifi", 207*33f37583SAndroid Build Coastguard Worker manifest: "wifi_manifest_rebootless.json", 208*33f37583SAndroid Build Coastguard Worker key: "com.android.hardware.key", 209*33f37583SAndroid Build Coastguard Worker certificate: ":com.android.hardware.certificate", 210*33f37583SAndroid Build Coastguard Worker file_contexts: "wifi_file_contexts", 211*33f37583SAndroid Build Coastguard Worker updatable: false, 212*33f37583SAndroid Build Coastguard Worker soc_specific: true, 213*33f37583SAndroid Build Coastguard Worker installable: false, 214*33f37583SAndroid Build Coastguard Worker prebuilts: [ 215*33f37583SAndroid Build Coastguard Worker "vintf_fragment_wifi_bad1.xml", 216*33f37583SAndroid Build Coastguard Worker "com.android.hardware.wifi.rc", 217*33f37583SAndroid Build Coastguard Worker ], 218*33f37583SAndroid Build Coastguard Worker} 219*33f37583SAndroid Build Coastguard Worker 220*33f37583SAndroid Build Coastguard Workerprebuilt_etc { 221*33f37583SAndroid Build Coastguard Worker name: "vintf_fragment_wifi_bad1.xml", 222*33f37583SAndroid Build Coastguard Worker src: "vintf_fragment_wifi_bad1.xml", 223*33f37583SAndroid Build Coastguard Worker installable: false, 224*33f37583SAndroid Build Coastguard Worker sub_dir: "vintf", // Puts fragment into etc/vintf 225*33f37583SAndroid Build Coastguard Worker} 226*33f37583SAndroid Build Coastguard Worker 227*33f37583SAndroid Build Coastguard Worker// Creates wifi test apex where its vintf fragment has invalid XML syntax 228*33f37583SAndroid Build Coastguard Worker// (an unclosed tag) 229*33f37583SAndroid Build Coastguard Workerapex_test { 230*33f37583SAndroid Build Coastguard Worker name: "test.bad2.com.android.hardware.wifi", 231*33f37583SAndroid Build Coastguard Worker manifest: "wifi_manifest_rebootless.json", 232*33f37583SAndroid Build Coastguard Worker key: "com.android.hardware.key", 233*33f37583SAndroid Build Coastguard Worker certificate: ":com.android.hardware.certificate", 234*33f37583SAndroid Build Coastguard Worker file_contexts: "wifi_file_contexts", 235*33f37583SAndroid Build Coastguard Worker updatable: false, 236*33f37583SAndroid Build Coastguard Worker soc_specific: true, 237*33f37583SAndroid Build Coastguard Worker installable: false, 238*33f37583SAndroid Build Coastguard Worker prebuilts: [ 239*33f37583SAndroid Build Coastguard Worker "vintf_fragment_wifi_bad2.xml", 240*33f37583SAndroid Build Coastguard Worker "com.android.hardware.wifi.rc", 241*33f37583SAndroid Build Coastguard Worker ], 242*33f37583SAndroid Build Coastguard Worker} 243*33f37583SAndroid Build Coastguard Worker 244*33f37583SAndroid Build Coastguard Workerprebuilt_etc { 245*33f37583SAndroid Build Coastguard Worker name: "vintf_fragment_wifi_bad2.xml", 246*33f37583SAndroid Build Coastguard Worker src: "vintf_fragment_wifi_bad2.xml", 247*33f37583SAndroid Build Coastguard Worker installable: false, 248*33f37583SAndroid Build Coastguard Worker sub_dir: "vintf", 249*33f37583SAndroid Build Coastguard Worker} 250*33f37583SAndroid Build Coastguard Worker 251*33f37583SAndroid Build Coastguard Worker// Test apex for updating com.android.hardware.wifi, with a 252*33f37583SAndroid Build Coastguard Worker// good apex 253*33f37583SAndroid Build Coastguard Workerapex_test { 254*33f37583SAndroid Build Coastguard Worker name: "test.good1.com.android.hardware.wifi", 255*33f37583SAndroid Build Coastguard Worker manifest: "wifi_manifest_rebootless.json", 256*33f37583SAndroid Build Coastguard Worker key: "com.android.hardware.key", 257*33f37583SAndroid Build Coastguard Worker certificate: ":com.android.hardware.certificate", 258*33f37583SAndroid Build Coastguard Worker file_contexts: "wifi_file_contexts", 259*33f37583SAndroid Build Coastguard Worker updatable: false, 260*33f37583SAndroid Build Coastguard Worker soc_specific: true, 261*33f37583SAndroid Build Coastguard Worker installable: false, 262*33f37583SAndroid Build Coastguard Worker prebuilts: [ 263*33f37583SAndroid Build Coastguard Worker "vintf_fragment_wifi_good1.xml", 264*33f37583SAndroid Build Coastguard Worker "com.android.hardware.wifi.rc", 265*33f37583SAndroid Build Coastguard Worker ], 266*33f37583SAndroid Build Coastguard Worker} 267*33f37583SAndroid Build Coastguard Worker 268*33f37583SAndroid Build Coastguard Workerprebuilt_etc { 269*33f37583SAndroid Build Coastguard Worker name: "vintf_fragment_wifi_good1.xml", 270*33f37583SAndroid Build Coastguard Worker src: "vintf_fragment_wifi_service.xml", 271*33f37583SAndroid Build Coastguard Worker installable: false, 272*33f37583SAndroid Build Coastguard Worker sub_dir: "vintf", // Puts fragment into etc/vintf 273*33f37583SAndroid Build Coastguard Worker} 274*33f37583SAndroid Build Coastguard Worker 275*33f37583SAndroid Build Coastguard Workerprebuilt_etc { 276*33f37583SAndroid Build Coastguard Worker name: "apex_vendor_foo_bootstrap.rc", 277*33f37583SAndroid Build Coastguard Worker src: "apex_vendor_foo_bootstrap.rc", 278*33f37583SAndroid Build Coastguard Worker vendor: true, 279*33f37583SAndroid Build Coastguard Worker installable: false, 280*33f37583SAndroid Build Coastguard Worker} 281*33f37583SAndroid Build Coastguard Worker 282*33f37583SAndroid Build Coastguard Workerapex_test { 283*33f37583SAndroid Build Coastguard Worker name: "com.android.apex.vendor.foo.bootstrap", 284*33f37583SAndroid Build Coastguard Worker defaults: [ 285*33f37583SAndroid Build Coastguard Worker "com.android.apex.vendor.foo.defaults", 286*33f37583SAndroid Build Coastguard Worker ], 287*33f37583SAndroid Build Coastguard Worker binaries: [ 288*33f37583SAndroid Build Coastguard Worker "apex_vendor_foo", 289*33f37583SAndroid Build Coastguard Worker ], 290*33f37583SAndroid Build Coastguard Worker prebuilts: [ 291*33f37583SAndroid Build Coastguard Worker "apex_vendor_foo_bootstrap.rc", 292*33f37583SAndroid Build Coastguard Worker ], 293*33f37583SAndroid Build Coastguard Worker manifest: "manifest_bootstrap.json", 294*33f37583SAndroid Build Coastguard Worker} 295