blob: 8f8df2b815ea17f5b0ec70815251f0aac374af93 [file] [log] [blame]
Nahhk7117b472025-03-19 06:23:56 -05001#!/usr/bin/env -S PYTHONPATH=../../../tools/extract-utils python3
2#
3# SPDX-FileCopyrightText: 2024 The LineageOS Project
4# SPDX-License-Identifier: Apache-2.0
5#
6
7from extract_utils.fixups_blob import (
8 blob_fixup,
9 blob_fixups_user_type,
10)
11from extract_utils.fixups_lib import (
12 lib_fixup_remove,
13 lib_fixups,
14 lib_fixups_user_type,
15)
16from extract_utils.main import (
17 ExtractUtils,
18 ExtractUtilsModule,
19)
20
21namespace_imports = [
22 'device/xiaomi/sm6225-common',
Nikita Savchenko89cc3bf2025-07-03 15:30:32 +000023 'hardware/qcom-caf/sm6225',
24 'hardware/qcom-caf/wlan',
25 'hardware/xiaomi',
ReStranger6b717ba2025-09-29 22:26:10 +030026 'vendor/qcom/opensource/commonsys/display',
Nikita Savchenko89cc3bf2025-07-03 15:30:32 +000027 'vendor/qcom/opensource/commonsys-intf/display',
28 'vendor/qcom/opensource/dataservices',
Nahhk7117b472025-03-19 06:23:56 -050029]
30
31
Nikita Savchenko89cc3bf2025-07-03 15:30:32 +000032libs_add_vendor_suffix = (
33 'vendor.qti.hardware.qccsyshal@1.0',
34 'vendor.qti.hardware.qccsyshal@1.1',
35 'vendor.qti.hardware.qccsyshal@1.2',
36 'vendor.qti.hardware.qccvndhal@1.0',
37 'vendor.qti.hardware.sigma_miracast@1.0',
38 'vendor.qti.hardware.wifidisplaysession@1.0',
39 'vendor.qti.imsrtpservice@3.0',
40 'vendor.qti.imsrtpservice@3.1',
41 'vendor.qti.diaghal@1.0',
42 'com.qualcomm.qti.dpm.api@1.0',
43)
44
45libs_remove = (
46 'libar-pal',
47 'libar-acdb',
48 'liblx-osal',
49 'libats',
50 'libagm',
51 'libpalclient',
52)
53
54
Nahhk7117b472025-03-19 06:23:56 -050055def lib_fixup_vendor_suffix(lib: str, partition: str, *args, **kwargs):
56 return f'{lib}_{partition}' if partition == 'vendor' else None
57
58
59lib_fixups: lib_fixups_user_type = {
60 **lib_fixups,
Nikita Savchenko89cc3bf2025-07-03 15:30:32 +000061 libs_add_vendor_suffix: lib_fixup_vendor_suffix,
62 libs_remove: lib_fixup_remove,
Nahhk7117b472025-03-19 06:23:56 -050063}
64
65blob_fixups: blob_fixups_user_type = {
Cosmin Tanislav26c22112024-08-16 14:47:52 +030066 ('vendor/bin/hw/android.hardware.security.keymint-service-qti', 'vendor/lib64/libqtikeymint.so'): blob_fixup()
Aaron Kling96b00602024-08-18 17:05:38 -050067 .add_needed('android.hardware.security.rkp-V1-ndk.so'),
Arian52f4d322024-09-06 14:01:17 +020068 'vendor/lib64/vendor.libdpmframework.so': blob_fixup()
69 .add_needed('libhidlbase_shim.so'),
ReStranger4e37a002026-01-18 23:19:40 +030070 'system_ext/lib64/libwfdmmsrc_system.so': blob_fixup()
71 .add_needed('libinput_shim.so'),
Bruno Martinsb5701922024-10-01 14:42:47 +010072 'vendor/lib64/libqcodec2_core.so': blob_fixup()
73 .add_needed('libcodec2_shim.so'),
ReStranger67fe3d32025-11-18 00:24:28 +030074 'vendor/etc/qcril_database/upgrade/other/0_initial_qcrilnr.sql': blob_fixup()
75 .regex_replace(
76 r'CREATE TABLE qcril_properties_table\s*\(\s*property TEXT PRIMARY KEY NOT NULL,\s*def_val TEXT,\s*value TEXT\s*\);',
77 'CREATE TABLE qcril_properties_table (property TEXT,value TEXT, PRIMARY KEY(property));'
78 ),
79 'vendor/etc/qcril_database/upgrade/other/5_version_update_ecc_table_qcrilnr.sql': blob_fixup()
80 .regex_replace( r'COMMIT TRANSACTION;\s*',''),
81 'vendor/etc/qcril_database/upgrade/other/7_version_update_ecc_table.sql': blob_fixup()
82 .regex_replace(
83 r'(?m)^INSERT INTO qcril_emergency_source_hard_mcc_table',
84 'INSERT OR REPLACE INTO qcril_emergency_source_hard_mcc_table'
85 )
86 .regex_replace(
87 r'(?m)^INSERT INTO qcril_emergency_source_mcc_mnc_table',
88 'INSERT OR REPLACE INTO qcril_emergency_source_mcc_mnc_table'
89 ),
90 'vendor/etc/qcril_database/upgrade/other/9_version_update_ecc_table.sql': blob_fixup()
91 .regex_replace(
92 r'(?m)^INSERT INTO qcril_emergency_source_hard_mcc_table',
93 'INSERT OR REPLACE INTO qcril_emergency_source_hard_mcc_table'
94 ),
95 'vendor/etc/qcril_database/upgrade/other/15_version_update_ecc_table.sql': blob_fixup()
96 .regex_replace(
97 r"(INSERT INTO qcril_emergency_source_hard_mcc_table\b.*?where\s+MCC\s*=\s*'(\d+)'\s+AND\s+NUMBER\s*=\s*'(\d+)';)",
98 r"INSERT OR REPLACE INTO qcril_emergency_source_hard_mcc_table (MCC, NUMBER) VALUES ('\2', '\3');"
99
100 )
Bruno Martinsb5701922024-10-01 14:42:47 +0100101} # fmt: skip
Nahhk7117b472025-03-19 06:23:56 -0500102
103module = ExtractUtilsModule(
104 'sm6225-common',
105 'xiaomi',
106 blob_fixups=blob_fixups,
107 lib_fixups=lib_fixups,
108 namespace_imports=namespace_imports,
109)
110
111if __name__ == '__main__':
112 utils = ExtractUtils.device(module)
113 utils.run()