Loading core/artifact_path_requirements.mk +1 −0 Original line number Original line Diff line number Diff line Loading @@ -4,6 +4,7 @@ # Fakes don't get installed, and NDK stubs aren't installed to device. # Fakes don't get installed, and NDK stubs aren't installed to device. static_allowed_patterns := $(TARGET_OUT_FAKE)/% $(SOONG_OUT_DIR)/ndk/% static_allowed_patterns := $(TARGET_OUT_FAKE)/% $(SOONG_OUT_DIR)/ndk/% # RROs become REQUIRED by the source module, but are always placed on the vendor partition. # RROs become REQUIRED by the source module, but are always placed on the vendor partition. static_allowed_patterns += %__auto_generated_characteristics_rro.apk static_allowed_patterns += %__auto_generated_rro_product.apk static_allowed_patterns += %__auto_generated_rro_product.apk static_allowed_patterns += %__auto_generated_rro_vendor.apk static_allowed_patterns += %__auto_generated_rro_vendor.apk # Auto-included targets are not considered # Auto-included targets are not considered Loading tools/Android.bp +10 −0 Original line number Original line Diff line number Diff line Loading @@ -96,3 +96,13 @@ python_test_host { unit_test: true, unit_test: true, }, }, } } python_binary_host { name: "characteristics_rro_generator", srcs: ["characteristics_rro_generator.py"], version: { py3: { embedded_launcher: true, }, }, } tools/characteristics_rro_generator.py 0 → 100644 +23 −0 Original line number Original line Diff line number Diff line #!/usr/bin/env python3 import sys from xml.dom.minidom import parseString def parse_package(manifest): with open(manifest, 'r') as f: data = f.read() dom = parseString(data) return dom.documentElement.getAttribute('package') if __name__ == '__main__': if len(sys.argv) != 3: sys.exit(f"usage: {sys_argv[0]} target_package_manifest output\n") package_name = parse_package(sys.argv[1]) with open(sys.argv[2], "w") as f: f.write(f'''<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="{package_name}.auto_generated_characteristics_rro"> <application android:hasCode="false" /> <overlay android:targetPackage="{package_name}" android:isStatic="true" android:priority="0" /> </manifest> ''') Loading
core/artifact_path_requirements.mk +1 −0 Original line number Original line Diff line number Diff line Loading @@ -4,6 +4,7 @@ # Fakes don't get installed, and NDK stubs aren't installed to device. # Fakes don't get installed, and NDK stubs aren't installed to device. static_allowed_patterns := $(TARGET_OUT_FAKE)/% $(SOONG_OUT_DIR)/ndk/% static_allowed_patterns := $(TARGET_OUT_FAKE)/% $(SOONG_OUT_DIR)/ndk/% # RROs become REQUIRED by the source module, but are always placed on the vendor partition. # RROs become REQUIRED by the source module, but are always placed on the vendor partition. static_allowed_patterns += %__auto_generated_characteristics_rro.apk static_allowed_patterns += %__auto_generated_rro_product.apk static_allowed_patterns += %__auto_generated_rro_product.apk static_allowed_patterns += %__auto_generated_rro_vendor.apk static_allowed_patterns += %__auto_generated_rro_vendor.apk # Auto-included targets are not considered # Auto-included targets are not considered Loading
tools/Android.bp +10 −0 Original line number Original line Diff line number Diff line Loading @@ -96,3 +96,13 @@ python_test_host { unit_test: true, unit_test: true, }, }, } } python_binary_host { name: "characteristics_rro_generator", srcs: ["characteristics_rro_generator.py"], version: { py3: { embedded_launcher: true, }, }, }
tools/characteristics_rro_generator.py 0 → 100644 +23 −0 Original line number Original line Diff line number Diff line #!/usr/bin/env python3 import sys from xml.dom.minidom import parseString def parse_package(manifest): with open(manifest, 'r') as f: data = f.read() dom = parseString(data) return dom.documentElement.getAttribute('package') if __name__ == '__main__': if len(sys.argv) != 3: sys.exit(f"usage: {sys_argv[0]} target_package_manifest output\n") package_name = parse_package(sys.argv[1]) with open(sys.argv[2], "w") as f: f.write(f'''<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="{package_name}.auto_generated_characteristics_rro"> <application android:hasCode="false" /> <overlay android:targetPackage="{package_name}" android:isStatic="true" android:priority="0" /> </manifest> ''')