1*b7c941bbSAndroid Build Coastguard Worker// Copyright (C) 2020 The Android Open Source Project 2*b7c941bbSAndroid Build Coastguard Worker// 3*b7c941bbSAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License"); 4*b7c941bbSAndroid Build Coastguard Worker// you may not use this file except in compliance with the License. 5*b7c941bbSAndroid Build Coastguard Worker// You may obtain a copy of the License at 6*b7c941bbSAndroid Build Coastguard Worker// 7*b7c941bbSAndroid Build Coastguard Worker// http://www.apache.org/licenses/LICENSE-2.0 8*b7c941bbSAndroid Build Coastguard Worker// 9*b7c941bbSAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software 10*b7c941bbSAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS, 11*b7c941bbSAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*b7c941bbSAndroid Build Coastguard Worker// See the License for the specific language governing permissions and 13*b7c941bbSAndroid Build Coastguard Worker// limitations under the License. 14*b7c941bbSAndroid Build Coastguard Worker 15*b7c941bbSAndroid Build Coastguard Worker// A rule to collect apps for debugging purpose. See ApkVerityTestAppPrebuilt/README.md. 16*b7c941bbSAndroid Build Coastguard Workerpackage { 17*b7c941bbSAndroid Build Coastguard Worker default_team: "trendy_team_framework_android_packages", 18*b7c941bbSAndroid Build Coastguard Worker default_applicable_licenses: ["Android-Apache-2.0"], 19*b7c941bbSAndroid Build Coastguard Worker} 20*b7c941bbSAndroid Build Coastguard Worker 21*b7c941bbSAndroid Build Coastguard Workerjava_genrule { 22*b7c941bbSAndroid Build Coastguard Worker name: "CtsApkVerityTestDebugFiles", 23*b7c941bbSAndroid Build Coastguard Worker srcs: [ 24*b7c941bbSAndroid Build Coastguard Worker ":CtsApkVerityTestApp", 25*b7c941bbSAndroid Build Coastguard Worker ":CtsApkVerityTestAppApkIdSig", 26*b7c941bbSAndroid Build Coastguard Worker ":CtsApkVerityTestAppFsvSig", 27*b7c941bbSAndroid Build Coastguard Worker ":CtsApkVerityTestAppDm", 28*b7c941bbSAndroid Build Coastguard Worker ":CtsApkVerityTestAppDmFsvSig", 29*b7c941bbSAndroid Build Coastguard Worker ":CtsApkVerityTestAppSplit", 30*b7c941bbSAndroid Build Coastguard Worker ":CtsApkVerityTestAppSplitFsvSig", 31*b7c941bbSAndroid Build Coastguard Worker ":CtsApkVerityTestAppSplitDm", 32*b7c941bbSAndroid Build Coastguard Worker ":CtsApkVerityTestAppSplitDmFsvSig", 33*b7c941bbSAndroid Build Coastguard Worker ], 34*b7c941bbSAndroid Build Coastguard Worker cmd: "echo $(in) > $(out)", 35*b7c941bbSAndroid Build Coastguard Worker out: ["CtsApkVerityTestDebugFiles.txt"], 36*b7c941bbSAndroid Build Coastguard Worker} 37*b7c941bbSAndroid Build Coastguard Worker 38*b7c941bbSAndroid Build Coastguard Worker// This is a rather complicated way to keep only APKs. 39*b7c941bbSAndroid Build Coastguard Worker// exclude_srcs does not work because it uses paths local to Android.bp. 40*b7c941bbSAndroid Build Coastguard Workerjava_genrule { 41*b7c941bbSAndroid Build Coastguard Worker name: "CtsApkVerityTestAppApk", 42*b7c941bbSAndroid Build Coastguard Worker srcs: [":CtsApkVerityTestApp"], 43*b7c941bbSAndroid Build Coastguard Worker cmd: "for file in $(in); do " + 44*b7c941bbSAndroid Build Coastguard Worker " if [[ $$file == *.apk ]]; then " + 45*b7c941bbSAndroid Build Coastguard Worker " cp $$file $(out); " + 46*b7c941bbSAndroid Build Coastguard Worker " fi " + 47*b7c941bbSAndroid Build Coastguard Worker " done", 48*b7c941bbSAndroid Build Coastguard Worker out: ["CtsApkVerityTestApp.apk"], 49*b7c941bbSAndroid Build Coastguard Worker} 50*b7c941bbSAndroid Build Coastguard Worker 51*b7c941bbSAndroid Build Coastguard Workerfilegroup { 52*b7c941bbSAndroid Build Coastguard Worker name: "CtsApkVerityTestAppDm", 53*b7c941bbSAndroid Build Coastguard Worker srcs: ["CtsApkVerityTestApp.dm"], 54*b7c941bbSAndroid Build Coastguard Worker} 55*b7c941bbSAndroid Build Coastguard Worker 56*b7c941bbSAndroid Build Coastguard Workerfilegroup { 57*b7c941bbSAndroid Build Coastguard Worker name: "CtsApkVerityTestAppSplitDm", 58*b7c941bbSAndroid Build Coastguard Worker srcs: ["CtsApkVerityTestAppSplit.dm"], 59*b7c941bbSAndroid Build Coastguard Worker} 60*b7c941bbSAndroid Build Coastguard Worker 61*b7c941bbSAndroid Build Coastguard Workerfilegroup { 62*b7c941bbSAndroid Build Coastguard Worker name: "fsverity-debug-key", 63*b7c941bbSAndroid Build Coastguard Worker srcs: ["fsverity-debug-key.pem"], 64*b7c941bbSAndroid Build Coastguard Worker} 65*b7c941bbSAndroid Build Coastguard Worker 66*b7c941bbSAndroid Build Coastguard Workerfilegroup { 67*b7c941bbSAndroid Build Coastguard Worker name: "fsverity-debug-cert", 68*b7c941bbSAndroid Build Coastguard Worker srcs: ["fsverity-debug.x509.pem"], 69*b7c941bbSAndroid Build Coastguard Worker} 70*b7c941bbSAndroid Build Coastguard Worker 71*b7c941bbSAndroid Build Coastguard Workergenrule_defaults { 72*b7c941bbSAndroid Build Coastguard Worker name: "cts_apk_verity_sig_gen_default", 73*b7c941bbSAndroid Build Coastguard Worker tools: ["fsverity"], 74*b7c941bbSAndroid Build Coastguard Worker tool_files: [ 75*b7c941bbSAndroid Build Coastguard Worker ":fsverity-debug-key", 76*b7c941bbSAndroid Build Coastguard Worker ":fsverity-debug-cert", 77*b7c941bbSAndroid Build Coastguard Worker ], 78*b7c941bbSAndroid Build Coastguard Worker cmd: "$(location fsverity) sign $(in) $(out) " + 79*b7c941bbSAndroid Build Coastguard Worker "--key=$(location :fsverity-debug-key) " + 80*b7c941bbSAndroid Build Coastguard Worker "--cert=$(location :fsverity-debug-cert) " + 81*b7c941bbSAndroid Build Coastguard Worker "> /dev/null", 82*b7c941bbSAndroid Build Coastguard Worker} 83*b7c941bbSAndroid Build Coastguard Worker 84*b7c941bbSAndroid Build Coastguard Workerjava_genrule { 85*b7c941bbSAndroid Build Coastguard Worker name: "CtsApkVerityTestAppFsvSig", 86*b7c941bbSAndroid Build Coastguard Worker defaults: ["cts_apk_verity_sig_gen_default"], 87*b7c941bbSAndroid Build Coastguard Worker srcs: [":CtsApkVerityTestAppApk"], 88*b7c941bbSAndroid Build Coastguard Worker out: ["CtsApkVerityTestApp.apk.fsv_sig"], 89*b7c941bbSAndroid Build Coastguard Worker} 90*b7c941bbSAndroid Build Coastguard Worker 91*b7c941bbSAndroid Build Coastguard Workergenrule { 92*b7c941bbSAndroid Build Coastguard Worker name: "CtsApkVerityTestAppDmFsvSig", 93*b7c941bbSAndroid Build Coastguard Worker defaults: ["cts_apk_verity_sig_gen_default"], 94*b7c941bbSAndroid Build Coastguard Worker srcs: [":CtsApkVerityTestAppDm"], 95*b7c941bbSAndroid Build Coastguard Worker out: ["CtsApkVerityTestApp.dm.fsv_sig"], 96*b7c941bbSAndroid Build Coastguard Worker} 97*b7c941bbSAndroid Build Coastguard Worker 98*b7c941bbSAndroid Build Coastguard Workerjava_genrule { 99*b7c941bbSAndroid Build Coastguard Worker name: "CtsApkVerityTestAppSplitFsvSig", 100*b7c941bbSAndroid Build Coastguard Worker defaults: ["cts_apk_verity_sig_gen_default"], 101*b7c941bbSAndroid Build Coastguard Worker srcs: [":CtsApkVerityTestAppSplit"], 102*b7c941bbSAndroid Build Coastguard Worker out: ["CtsApkVerityTestAppSplit.apk.fsv_sig"], 103*b7c941bbSAndroid Build Coastguard Worker} 104*b7c941bbSAndroid Build Coastguard Worker 105*b7c941bbSAndroid Build Coastguard Workergenrule { 106*b7c941bbSAndroid Build Coastguard Worker name: "CtsApkVerityTestAppSplitDmFsvSig", 107*b7c941bbSAndroid Build Coastguard Worker defaults: ["cts_apk_verity_sig_gen_default"], 108*b7c941bbSAndroid Build Coastguard Worker srcs: [":CtsApkVerityTestAppSplitDm"], 109*b7c941bbSAndroid Build Coastguard Worker out: ["CtsApkVerityTestAppSplit.dm.fsv_sig"], 110*b7c941bbSAndroid Build Coastguard Worker} 111