blob: ddf0d1b7fd7f9ec7348b380df41f45b83e75ed8a [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'),
Bruno Martinsb5701922024-10-01 14:42:47 +010070 'vendor/lib64/libqcodec2_core.so': blob_fixup()
71 .add_needed('libcodec2_shim.so'),
ReStranger67fe3d32025-11-18 00:24:28 +030072 'vendor/etc/qcril_database/upgrade/other/0_initial_qcrilnr.sql': blob_fixup()
73 .regex_replace(
74 r'CREATE TABLE qcril_properties_table\s*\(\s*property TEXT PRIMARY KEY NOT NULL,\s*def_val TEXT,\s*value TEXT\s*\);',
75 'CREATE TABLE qcril_properties_table (property TEXT,value TEXT, PRIMARY KEY(property));'
76 ),
77 'vendor/etc/qcril_database/upgrade/other/5_version_update_ecc_table_qcrilnr.sql': blob_fixup()
78 .regex_replace( r'COMMIT TRANSACTION;\s*',''),
79 'vendor/etc/qcril_database/upgrade/other/7_version_update_ecc_table.sql': blob_fixup()
80 .regex_replace(
81 r'(?m)^INSERT INTO qcril_emergency_source_hard_mcc_table',
82 'INSERT OR REPLACE INTO qcril_emergency_source_hard_mcc_table'
83 )
84 .regex_replace(
85 r'(?m)^INSERT INTO qcril_emergency_source_mcc_mnc_table',
86 'INSERT OR REPLACE INTO qcril_emergency_source_mcc_mnc_table'
87 ),
88 'vendor/etc/qcril_database/upgrade/other/9_version_update_ecc_table.sql': blob_fixup()
89 .regex_replace(
90 r'(?m)^INSERT INTO qcril_emergency_source_hard_mcc_table',
91 'INSERT OR REPLACE INTO qcril_emergency_source_hard_mcc_table'
92 ),
93 'vendor/etc/qcril_database/upgrade/other/15_version_update_ecc_table.sql': blob_fixup()
94 .regex_replace(
95 r"(INSERT INTO qcril_emergency_source_hard_mcc_table\b.*?where\s+MCC\s*=\s*'(\d+)'\s+AND\s+NUMBER\s*=\s*'(\d+)';)",
96 r"INSERT OR REPLACE INTO qcril_emergency_source_hard_mcc_table (MCC, NUMBER) VALUES ('\2', '\3');"
97
98 )
Bruno Martinsb5701922024-10-01 14:42:47 +010099} # fmt: skip
Nahhk7117b472025-03-19 06:23:56 -0500100
101module = ExtractUtilsModule(
102 'sm6225-common',
103 'xiaomi',
104 blob_fixups=blob_fixups,
105 lib_fixups=lib_fixups,
106 namespace_imports=namespace_imports,
107)
108
109if __name__ == '__main__':
110 utils = ExtractUtils.device(module)
111 utils.run()