15f9996aaSopenharmony_ci# Copyright (c) 2020 Huawei Device Co., Ltd. 25f9996aaSopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License"); 35f9996aaSopenharmony_ci# you may not use this file except in compliance with the License. 45f9996aaSopenharmony_ci# You may obtain a copy of the License at 55f9996aaSopenharmony_ci# 65f9996aaSopenharmony_ci# http://www.apache.org/licenses/LICENSE-2.0 75f9996aaSopenharmony_ci# 85f9996aaSopenharmony_ci# Unless required by applicable law or agreed to in writing, software 95f9996aaSopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS, 105f9996aaSopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 115f9996aaSopenharmony_ci# See the License for the specific language governing permissions and 125f9996aaSopenharmony_ci# limitations under the License. 135f9996aaSopenharmony_ci 145f9996aaSopenharmony_ciimport("//build/lite/config/subsystem/aafwk/path.gni") 155f9996aaSopenharmony_ci 165f9996aaSopenharmony_cideclare_args() { 175f9996aaSopenharmony_ci ohos_sign_haps_by_server = false 185f9996aaSopenharmony_ci hapsigner = "//developtools/hapsigner/dist/hap-sign-tool.jar" 195f9996aaSopenharmony_ci packtool = 205f9996aaSopenharmony_ci "${root_out_dir}/obj/developtools/packing_tool/jar/app_packing_tool.jar" 215f9996aaSopenharmony_ci jks_file = "//developtools/hapsigner/dist/OpenHarmony.p12" 225f9996aaSopenharmony_ci cert_file = "//developtools/hapsigner/dist/OpenHarmonyApplication.pem" 235f9996aaSopenharmony_ci default_hap_signature_algorithm = "SHA256withECDSA" 245f9996aaSopenharmony_ci sign_server = "rnd-signserver.huawei.com" 255f9996aaSopenharmony_ci privatekey = "OpenHarmony Application Release" 265f9996aaSopenharmony_ci keystorepasswd = "123456" 275f9996aaSopenharmony_ci} 285f9996aaSopenharmony_ci 295f9996aaSopenharmony_citemplate("hap_pack") { 305f9996aaSopenharmony_ci assert(defined(invoker.cert_profile), "cert_profile in required.") 315f9996aaSopenharmony_ci assert(defined(invoker.hap_name), "hap_name in required.") 325f9996aaSopenharmony_ci assert(defined(invoker.privatekey), "privatekey in required.") 335f9996aaSopenharmony_ci 345f9996aaSopenharmony_ci if (ohos_sign_haps_by_server == false) { 355f9996aaSopenharmony_ci invoker.privatekey = "OpenHarmony Application Release" 365f9996aaSopenharmony_ci } 375f9996aaSopenharmony_ci 385f9996aaSopenharmony_ci unsignhap_path = 395f9996aaSopenharmony_ci "$root_out_dir/system/internal/unsigned_${invoker.hap_name}.hap" 405f9996aaSopenharmony_ci signhap_path = "$root_out_dir/system/internal/${invoker.hap_name}.hap" 415f9996aaSopenharmony_ci 425f9996aaSopenharmony_ci action(target_name) { 435f9996aaSopenharmony_ci if (defined(invoker.deps)) { 445f9996aaSopenharmony_ci deps = [] 455f9996aaSopenharmony_ci deps += invoker.deps 465f9996aaSopenharmony_ci } 475f9996aaSopenharmony_ci _pack_tool_deps = [ "//developtools/packing_tool:packing_tool" ] 485f9996aaSopenharmony_ci if (defined(deps)) { 495f9996aaSopenharmony_ci deps += _pack_tool_deps 505f9996aaSopenharmony_ci } else { 515f9996aaSopenharmony_ci deps = _pack_tool_deps 525f9996aaSopenharmony_ci } 535f9996aaSopenharmony_ci script = "//build/lite/hap_pack.py" 545f9996aaSopenharmony_ci args = [ 555f9996aaSopenharmony_ci "--packing-tool-path", 565f9996aaSopenharmony_ci rebase_path(packtool), 575f9996aaSopenharmony_ci ] 585f9996aaSopenharmony_ci if (defined(invoker.mode)) { 595f9996aaSopenharmony_ci args += [ 605f9996aaSopenharmony_ci "--mode", 615f9996aaSopenharmony_ci invoker.mode, 625f9996aaSopenharmony_ci ] 635f9996aaSopenharmony_ci } 645f9996aaSopenharmony_ci if (defined(invoker.json_path)) { 655f9996aaSopenharmony_ci args += [ 665f9996aaSopenharmony_ci "--json-path", 675f9996aaSopenharmony_ci rebase_path(invoker.json_path), 685f9996aaSopenharmony_ci ] 695f9996aaSopenharmony_ci } 705f9996aaSopenharmony_ci if (defined(invoker.resources_path)) { 715f9996aaSopenharmony_ci args += [ 725f9996aaSopenharmony_ci "--resources-path", 735f9996aaSopenharmony_ci rebase_path(invoker.resources_path), 745f9996aaSopenharmony_ci ] 755f9996aaSopenharmony_ci } 765f9996aaSopenharmony_ci if (defined(invoker.assets_path)) { 775f9996aaSopenharmony_ci args += [ 785f9996aaSopenharmony_ci "--assets-path", 795f9996aaSopenharmony_ci rebase_path(invoker.assets_path), 805f9996aaSopenharmony_ci ] 815f9996aaSopenharmony_ci } 825f9996aaSopenharmony_ci if (defined(invoker.lib_path)) { 835f9996aaSopenharmony_ci args += [ 845f9996aaSopenharmony_ci "--lib-path", 855f9996aaSopenharmony_ci rebase_path(invoker.lib_path), 865f9996aaSopenharmony_ci ] 875f9996aaSopenharmony_ci } 885f9996aaSopenharmony_ci if (defined(invoker.shared_libs_path)) { 895f9996aaSopenharmony_ci args += [ 905f9996aaSopenharmony_ci "--shared-libs-path", 915f9996aaSopenharmony_ci rebase_path(invoker.shared_libs_path), 925f9996aaSopenharmony_ci ] 935f9996aaSopenharmony_ci } 945f9996aaSopenharmony_ci if (defined(invoker.ability_so_path)) { 955f9996aaSopenharmony_ci args += [ 965f9996aaSopenharmony_ci "--ability-so-path", 975f9996aaSopenharmony_ci rebase_path(invoker.ability_so_path), 985f9996aaSopenharmony_ci ] 995f9996aaSopenharmony_ci } 1005f9996aaSopenharmony_ci if (defined(invoker.index_path)) { 1015f9996aaSopenharmony_ci args += [ 1025f9996aaSopenharmony_ci "--index-path", 1035f9996aaSopenharmony_ci rebase_path(invoker.index_path), 1045f9996aaSopenharmony_ci ] 1055f9996aaSopenharmony_ci } 1065f9996aaSopenharmony_ci if (defined(invoker.force)) { 1075f9996aaSopenharmony_ci args += [ 1085f9996aaSopenharmony_ci "--force", 1095f9996aaSopenharmony_ci invoker.force, 1105f9996aaSopenharmony_ci ] 1115f9996aaSopenharmony_ci } 1125f9996aaSopenharmony_ci args += [ 1135f9996aaSopenharmony_ci "--signtool-path", 1145f9996aaSopenharmony_ci rebase_path(hapsigner), 1155f9996aaSopenharmony_ci "--privatekey", 1165f9996aaSopenharmony_ci invoker.privatekey, 1175f9996aaSopenharmony_ci "--sign-algo", 1185f9996aaSopenharmony_ci default_hap_signature_algorithm, 1195f9996aaSopenharmony_ci "--unsignhap-path", 1205f9996aaSopenharmony_ci rebase_path(unsignhap_path), 1215f9996aaSopenharmony_ci "--signhap-path", 1225f9996aaSopenharmony_ci rebase_path(signhap_path), 1235f9996aaSopenharmony_ci "--sign-server", 1245f9996aaSopenharmony_ci sign_server, 1255f9996aaSopenharmony_ci "--jks-path", 1265f9996aaSopenharmony_ci rebase_path(jks_file), 1275f9996aaSopenharmony_ci "--cert-path", 1285f9996aaSopenharmony_ci rebase_path(cert_file), 1295f9996aaSopenharmony_ci ] 1305f9996aaSopenharmony_ci if (ohos_sign_haps_by_server) { 1315f9996aaSopenharmony_ci args += [ 1325f9996aaSopenharmony_ci "--sign-by-server", 1335f9996aaSopenharmony_ci "True", 1345f9996aaSopenharmony_ci ] 1355f9996aaSopenharmony_ci } else { 1365f9996aaSopenharmony_ci args += [ 1375f9996aaSopenharmony_ci "--sign-by-server", 1385f9996aaSopenharmony_ci "False", 1395f9996aaSopenharmony_ci ] 1405f9996aaSopenharmony_ci } 1415f9996aaSopenharmony_ci if (defined(invoker.cert_profile)) { 1425f9996aaSopenharmony_ci args += [ 1435f9996aaSopenharmony_ci "--cert-profile", 1445f9996aaSopenharmony_ci rebase_path(invoker.cert_profile), 1455f9996aaSopenharmony_ci ] 1465f9996aaSopenharmony_ci } 1475f9996aaSopenharmony_ci outputs = [ "$target_out_dir/${target_name}_build_log.txt" ] 1485f9996aaSopenharmony_ci } 1495f9996aaSopenharmony_ci} 150