123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- #!/usr/bin/env -S PYTHONPATH=../../../../tools/extract-utils python3
- #
- # SPDX-FileCopyrightText: 2024 The LineageOS Project
- # SPDX-License-Identifier: Apache-2.0
- #
- from extract_utils.extract import extract_fns_user_type
- from extract_utils.extract_pixel import (
- extract_pixel_factory_image,
- extract_pixel_firmware,
- pixel_factory_image_regex,
- pixel_firmware_regex,
- )
- from extract_utils.file import FileArgs, FileList
- from extract_utils.fixups_blob import (
- blob_fixup,
- blob_fixups_user_type,
- )
- from extract_utils.fixups_lib import (
- lib_fixup_remove,
- lib_fixups,
- lib_fixups_user_type,
- )
- from extract_utils.main import (
- ExtractUtils,
- ExtractUtilsModule,
- )
- namespace_imports = [
- 'device/google/lynx',
- 'hardware/google/av',
- 'hardware/google/gchips',
- 'hardware/google/graphics/common',
- 'hardware/google/interfaces',
- 'hardware/google/pixel',
- 'hardware/qcom/wlan/wcn6740',
- ]
- def lib_fixup_vendor_suffix(lib: str, partition: str, *args, **kwargs):
- return f'{lib}_{partition}' if partition == 'vendor' else None
- lib_fixups: lib_fixups_user_type = {
- **lib_fixups,
- (
- 'com.google.edgetpu_app_service-V3-ndk',
- 'com.google.edgetpu_vendor_service-V2-ndk',
- ): lib_fixup_vendor_suffix,
- 'libwpa_client': lib_fixup_remove,
- }
- blob_fixups: blob_fixups_user_type = {
- 'product/etc/felica/common.cfg': blob_fixup()
- .patch_file('osaifu-keitai.patch'),
- 'vendor/etc/init/init.modem_logging_control.rc': blob_fixup()
- .regex_replace(' && property:ro.debuggable=0', ''),
- } # fmt: skip
- extract_fns: extract_fns_user_type = {
- pixel_factory_image_regex: extract_pixel_factory_image,
- pixel_firmware_regex: extract_pixel_firmware,
- }
- module = ExtractUtilsModule(
- 'lynx',
- 'google',
- device_rel_path='device/google/lynx/lynx',
- blob_fixups=blob_fixups,
- lib_fixups=lib_fixups,
- namespace_imports=namespace_imports,
- add_generated_carriersettings_file=True,
- add_firmware_proprietary_file=True,
- extract_fns=extract_fns,
- )
- def fix_vendor_file_list(file_list: FileList):
- # flp.default & gps.default have incorrect SONAME
- # lowi-server depends on libwpa_client, which is a gnu makefile target
- disable_checkelf_file_paths = [
- 'vendor/bin/lowi-server',
- 'vendor/lib64/hw/flp.default.so',
- 'vendor/lib64/hw/gps.default.so',
- ]
- for file_path in disable_checkelf_file_paths:
- file_list.get_file(file_path).set_arg(FileArgs.DISABLE_CHECKELF, True)
- module_suffix_file_paths = [
- 'vendor/lib/com.google.edgetpu_app_service-V3-ndk.so',
- 'vendor/lib64/com.google.edgetpu_app_service-V3-ndk.so',
- 'vendor/lib64/com.google.edgetpu_vendor_service-V2-ndk.so',
- ]
- for file_path in module_suffix_file_paths:
- file_list.get_file(file_path).set_arg(FileArgs.MODULE_SUFFIX, '_vendor')
- module.add_generated_proprietary_file(
- 'proprietary-files-vendor.txt',
- partition='vendor',
- skip_file_list_name='skip-files-vendor.txt',
- fix_file_list=fix_vendor_file_list,
- )
- if __name__ == '__main__':
- utils = ExtractUtils.device(module)
- utils.run()
|