blob: 71f847c494e544e897aa22c5fd4f10de628de0d6 [file] [log] [blame]
// 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",
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",
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",
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",
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",
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",
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",
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",
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,
}