| // Copyright (C) 2019 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. |
| |
| // Build rules to build shim apexes. |
| |
| genrule { |
| name: "com.android.apex.cts.shim.pem", |
| out: ["com.android.apex.cts.shim.pem"], |
| cmd: "openssl genrsa -out $(out) 4096", |
| } |
| |
| genrule { |
| name: "com.android.apex.cts.shim.pubkey", |
| srcs: [":com.android.apex.cts.shim.pem"], |
| out: ["com.android.apex.cts.shim.pubkey"], |
| tools: ["avbtool"], |
| cmd: "$(location avbtool) extract_public_key --key $(in) --output $(out)", |
| } |
| |
| apex_key { |
| name: "com.android.apex.cts.shim.key", |
| private_key: ":com.android.apex.cts.shim.pem", |
| public_key: ":com.android.apex.cts.shim.pubkey", |
| installable: false, |
| } |
| |
| genrule { |
| name: "generate_hash_of_dev_null", |
| out: ["hash.txt"], |
| cmd: "sha512sum -b /dev/null | cut -d' ' -f1 | tee $(out)", |
| } |
| |
| prebuilt_etc { |
| name: "hash_of_dev_null", |
| src: ":generate_hash_of_dev_null", |
| filename: "hash.txt", |
| installable: false, |
| } |
| |
| apex { |
| name: "com.android.apex.cts.shim.v3", |
| manifest: "manifest_v3.json", |
| androidManifest: "AndroidManifest.xml", |
| file_contexts: "apex.test", |
| key: "com.android.apex.cts.shim.key", |
| prebuilts: ["hash_of_dev_null"], |
| installable: false, |
| } |
| |
| apex { |
| name: "com.android.apex.cts.shim.v2", |
| manifest: "manifest_v2.json", |
| androidManifest: "AndroidManifest.xml", |
| file_contexts: "apex.test", |
| key: "com.android.apex.cts.shim.key", |
| prebuilts: ["hash_of_dev_null"], |
| installable: false, |
| } |
| |
| genrule { |
| name: "generate_empty_hash", |
| out: ["hash.txt"], |
| cmd: "touch $(out)", |
| } |
| |
| prebuilt_etc { |
| name: "empty_hash", |
| src: ":generate_empty_hash", |
| filename: "hash.txt", |
| installable: false, |
| } |
| |
| // Use empty hash.txt to make sure that this apex has wrong SHA512, hence trying |
| // to stage it should fail. |
| apex { |
| name: "com.android.apex.cts.shim.v2_wrong_sha", |
| manifest: "manifest_v2.json", |
| androidManifest: "AndroidManifest.xml", |
| file_contexts: "apex.test", |
| key: "com.android.apex.cts.shim.key", |
| prebuilts: ["empty_hash"], |
| installable: false, |
| } |
| |
| prebuilt_etc { |
| name: "apex_shim_additional_file", |
| src: "additional_file", |
| filename: "additional_file", |
| installable: false, |
| } |
| |
| apex { |
| name: "com.android.apex.cts.shim.v2_additional_file", |
| manifest: "manifest_v2.json", |
| androidManifest: "AndroidManifest.xml", |
| file_contexts: "apex.test", |
| key: "com.android.apex.cts.shim.key", |
| prebuilts: ["hash_of_dev_null", "apex_shim_additional_file"], |
| installable: false, |
| } |
| |
| prebuilt_etc { |
| name: "apex_shim_additional_folder", |
| src: "additional_file", |
| filename: "additional_file", |
| sub_dir: "additional_folder", |
| installable: false, |
| } |
| |
| apex { |
| name: "com.android.apex.cts.shim.v2_additional_folder", |
| manifest: "manifest_v2.json", |
| androidManifest: "AndroidManifest.xml", |
| file_contexts: "apex.test", |
| key: "com.android.apex.cts.shim.key", |
| prebuilts: ["hash_of_dev_null", "apex_shim_additional_folder"], |
| installable: false, |
| } |
| |
| apex { |
| name: "com.android.apex.cts.shim.v2_with_pre_install_hook", |
| manifest: "manifest_v2_with_pre_install_hook.json", |
| androidManifest: "AndroidManifest.xml", |
| file_contexts: "apex.test", |
| key: "com.android.apex.cts.shim.key", |
| prebuilts: ["hash_of_dev_null"], |
| installable: false, |
| } |
| |
| apex { |
| name: "com.android.apex.cts.shim.v2_with_post_install_hook", |
| manifest: "manifest_v2_with_post_install_hook.json", |
| androidManifest: "AndroidManifest.xml", |
| file_contexts: "apex.test", |
| key: "com.android.apex.cts.shim.key", |
| prebuilts: ["hash_of_dev_null"], |
| installable: false, |
| } |
| |
| genrule { |
| name: "generate_hash_v1", |
| srcs: [ |
| ":com.android.apex.cts.shim.v2", |
| ":com.android.apex.cts.shim.v2_additional_file", |
| ":com.android.apex.cts.shim.v2_additional_folder", |
| ":com.android.apex.cts.shim.v2_with_pre_install_hook", |
| ":com.android.apex.cts.shim.v2_with_post_install_hook", |
| ":com.android.apex.cts.shim.v3", |
| ], |
| out: ["hash.txt"], |
| cmd: "sha512sum -b $(in) | cut -d' ' -f1 | tee $(out)", |
| } |
| |
| prebuilt_etc { |
| name: "hash_v1", |
| src: ":generate_hash_v1", |
| filename: "hash.txt", |
| installable: false, |
| } |
| |
| apex { |
| name: "com.android.apex.cts.shim.v1", |
| manifest: "manifest.json", |
| androidManifest: "AndroidManifest.xml", |
| file_contexts: "apex.test", |
| key: "com.android.apex.cts.shim.key", |
| prebuilts: ["hash_v1"], |
| installable: false, |
| } |
| |
| genrule { |
| name: "com.android.apex.cts.shim_not_pre_installed.pem", |
| out: ["com.android.apex.cts.shim_not_pre_installed.pem"], |
| cmd: "openssl genrsa -out $(out) 4096", |
| } |
| |
| genrule { |
| name: "com.android.apex.cts.shim_not_pre_installed.pubkey", |
| srcs: [":com.android.apex.cts.shim_not_pre_installed.pem"], |
| out: ["com.android.apex.cts.shim_not_pre_installed.pubkey"], |
| tools: ["avbtool"], |
| cmd: "$(location avbtool) extract_public_key --key $(in) --output $(out)", |
| } |
| |
| apex_key { |
| name: "com.android.apex.cts.shim_not_pre_installed.key", |
| private_key: ":com.android.apex.cts.shim_not_pre_installed.pem", |
| public_key: ":com.android.apex.cts.shim_not_pre_installed.pubkey", |
| installable: false, |
| } |
| |
| apex { |
| name: "com.android.apex.cts.shim_not_pre_installed", |
| manifest: "manifest_not_pre_installed.json", |
| file_contexts: "apex.test", |
| key: "com.android.apex.cts.shim_not_pre_installed.key", |
| prebuilts: ["hash_of_dev_null"], |
| installable: false, |
| } |