diff --git a/core/gn/ohos_exec_script_allowlist.gni b/core/gn/ohos_exec_script_allowlist.gni index 6045c69298340f6b43a3e0fc572ca563b5dac6ef..0a986f49d360331e621e2c5f4eba73859a1cb761 100644 --- a/core/gn/ohos_exec_script_allowlist.gni +++ b/core/gn/ohos_exec_script_allowlist.gni @@ -36,6 +36,7 @@ ohos_exec_script_config = { "//build/lite/config/component/lite_component.gni", "//build/lite/config/test/test.gni", "//build/ohos/app/app.gni", + "//build/ohos/images/BUILD.gn", "//build/ohos/native_stub/native_stub.gni", "//build/ohos/ndk/ndk.gni", "//build/ohos/ndk/ndk_targets.gni", diff --git "a/docs/\346\240\207\345\207\206\347\263\273\347\273\237\345\246\202\344\275\225\344\277\256\346\224\271\351\225\234\345\203\217\346\226\207\344\273\266\347\232\204\346\211\223\345\214\205\345\217\202\346\225\260.md" "b/docs/\346\240\207\345\207\206\347\263\273\347\273\237\345\246\202\344\275\225\344\277\256\346\224\271\351\225\234\345\203\217\346\226\207\344\273\266\347\232\204\346\211\223\345\214\205\345\217\202\346\225\260.md" index 293b6be52ecac6c89afb4509c4cf1bde15f6dff5..94fb352cda76b3aaa0899422c54e444239c59966 100755 --- "a/docs/\346\240\207\345\207\206\347\263\273\347\273\237\345\246\202\344\275\225\344\277\256\346\224\271\351\225\234\345\203\217\346\226\207\344\273\266\347\232\204\346\211\223\345\214\205\345\217\202\346\225\260.md" +++ "b/docs/\346\240\207\345\207\206\347\263\273\347\273\237\345\246\202\344\275\225\344\277\256\346\224\271\351\225\234\345\203\217\346\226\207\344\273\266\347\232\204\346\211\223\345\214\205\345\217\202\346\225\260.md" @@ -16,6 +16,8 @@ ``` 如果要修改某个镜像的打包参数,只需要修改//build/ohos/images/mkimage目录下对应的{镜像名}_image_config.txt文件即可。 + + 如果要修改asan版本某个镜像的打包参数,只需要修改//build/ohos/images/mkimage/asan目录下对应的{镜像名}_image_config.txt文件即可。 ## 修改单个平台或产品的系统镜像打包参数 //build/ohos/images/mkimage目录下的{镜像名}_image_config.txt文件是系统默认的镜像打包参数,修改后会影响所有平台所有产品的镜像默认打包行为。 diff --git a/ohos/images/BUILD.gn b/ohos/images/BUILD.gn index 8ff3ccfc8058290718c14738f1c85b926b3c9ce5..a9480fb61d59ce7194e988732fc2fbe8df4a77c3 100644 --- a/ohos/images/BUILD.gn +++ b/ohos/images/BUILD.gn @@ -192,6 +192,8 @@ build_image_tools_path = [ "//build/ohos/images/mkimage", ] +base_dir = "//build/ohos/images/mkimage" + foreach(_platform, target_platform_list) { current_platform = _platform current_platform_dir = "${product_output_dir}/$current_platform" @@ -258,11 +260,25 @@ foreach(_platform, target_platform_list) { } } - image_config_file = - "//build/ohos/images/mkimage/${_image_name}_image_conf.txt" + base_path = base_dir if (is_debug) { - image_config_file = - "//build/ohos/images/mkimage/debug/${_image_name}_image_conf.txt" + base_path = "${base_dir}/debug" + } + image_config_file = "${base_path}/${_image_name}_image_conf.txt" + if (asan_detector) { + image_config_file_asan = + "${base_path}/asan/${_image_name}_image_conf.txt" + + # Check if asan image file exists + _file_exists_script = "//build/ohos/file_exists.py" + _process_args = [ + "--filename", + rebase_path(image_config_file_asan, root_build_dir), + ] + _result = exec_script(_file_exists_script, _process_args, "string") + if (_result == "True") { + image_config_file = image_config_file_asan + } } device_image_config_file = "${product_output_dir}/imagesconf/${_image_name}_image_conf.txt" @@ -320,8 +336,7 @@ foreach(_platform, target_platform_list) { depfile = "$target_gen_dir/$target_name.d" deps = [ "//build/ohos/packages:${_platform}_install_modules" ] - image_config_file = - "//build/ohos/images/mkimage/${_image_name}_image_conf.txt" + image_config_file = "${base_dir}/${_image_name}_image_conf.txt" device_image_config_file = "${product_output_dir}/imagesconf/${_image_name}_image_conf.txt" image_input_path = "${current_platform_dir}/${_image_name}/${_product}" diff --git a/ohos/images/mkimage/asan/debug/userdata_image_conf.txt b/ohos/images/mkimage/asan/debug/userdata_image_conf.txt new file mode 100644 index 0000000000000000000000000000000000000000..fa054bab2087f1990c2f2d1f57ce90b15d25e483 --- /dev/null +++ b/ohos/images/mkimage/asan/debug/userdata_image_conf.txt @@ -0,0 +1,5 @@ +/data +4404019200 +--fs_type=f2fs +--dac_config ../../build/ohos/images/mkimage/dac.txt +--file_context obj/base/security/selinux_adapter/file_contexts.bin diff --git a/ohos/images/mkimage/asan/userdata_image_conf.txt b/ohos/images/mkimage/asan/userdata_image_conf.txt new file mode 100644 index 0000000000000000000000000000000000000000..d3e42cd05f810b7fb3c58c80d38c5201f6dd2d7b --- /dev/null +++ b/ohos/images/mkimage/asan/userdata_image_conf.txt @@ -0,0 +1,6 @@ +/data +4404019200 +--fs_type=f2fs +--dac_config ../../build/ohos/images/mkimage/dac.txt +--file_context obj/base/security/selinux_adapter/file_contexts.bin +--prjquota \ No newline at end of file