From ca38f9abba643fff9437e3517449fc4ea52bf3ec Mon Sep 17 00:00:00 2001 From: Anand S Date: Wed, 3 Jul 2024 12:56:42 +0530 Subject: [PATCH] bangkk: Initial tree conversion from dubai * Remove regulatory info overlays. * Drop dubai camera. * All configs updated from bangkk MMI-U1TC34M.22-64-18 build. Change-Id: I1fa8c8d6adb783dad7176a168fed6117211f4899 --- Android.mk | 2 +- AndroidProducts.mk | 2 +- BoardConfig.mk | 27 +- README.md | 4 +- audio/audio_effects.xml | 60 +- audio/audio_ext_spkr.conf | 2 +- audio/audio_io_policy.conf | 80 + audio/audio_policy_configuration.xml | 58 +- audio/audio_policy_volumes.xml | 60 +- audio/default_volume_tables.xml | 37 +- .../audio_platform_info.xml | 171 +- audio/sku_holi/mixer_paths.xml | 4055 +++++++++++++++++ audio/sku_yupik/mixer_paths.xml | 2290 ---------- camera/Android.bp | 25 - camera/AndroidManifest.xml | 36 - ...privapp-permissions-dubaicameraservice.xml | 11 - .../dubaicameraservice/BootReceiver.java | 22 - .../DubaiCameraService.java | 163 - .../dubaicameraservice/QcRilMsgUtils.java | 170 - .../qcrilmsgtunnel/IQcrilMsgTunnel.aidl | 11 - configs/keylayout/fts_ts.kl | 9 + configs/keylayout/goodix_ts.kl | 0 configs/thermal-engine-dubai-game-perf.conf | 123 - device.mk | 45 +- ....xml => device_framework_matrix_bangkk.xml | 0 extract-files.sh | 4 +- fingerprint/Android.bp | 8 +- fingerprint/BiometricsFingerprint.cpp | 2 +- ...metrics.fingerprint@2.3-service.bangkk.rc} | 2 +- ...etrics.fingerprint@2.3-service.bangkk.xml} | 0 fingerprint/service.cpp | 2 +- lineage.dependencies | 2 +- lineage_dubai.mk => lineage_bangkk.mk | 16 +- manifest_dubai.xml => manifest_bangkk.xml | 0 modules.blocklist | 15 +- modules.load | 144 +- modules.load.recovery | 9 +- proprietary-files.txt | 320 +- .../{dubai => bangkk}/Frameworks/Android.bp | 2 +- .../Frameworks/AndroidManifest.xml | 2 +- .../Frameworks/res/values-land/dimens.xml | 2 +- .../Frameworks/res/values/config.xml | 71 +- .../Frameworks/res/values/dimens.xml | 6 +- .../Frameworks/res/xml/power_profile.xml | 82 + .../LineageSystemUI/Android.bp | 2 +- .../LineageSystemUI/AndroidManifest.xml | 2 +- .../LineageSystemUI/res/values/config.xml | 0 .../SystemUI => bangkk/Settings}/Android.bp | 2 +- .../Settings/AndroidManifest.xml | 2 +- .../Settings/res/values/config.xml | 5 +- .../SettingsProvider/Android.bp | 2 +- .../SettingsProvider/AndroidManifest.xml | 2 +- .../SettingsProvider/res/values/config.xml | 2 +- .../Settings => bangkk/SystemUI}/Android.bp | 2 +- .../SystemUI/AndroidManifest.xml | 2 +- .../SystemUI/res/values-land/dimens.xml | 0 .../SystemUI/res/values/dimens.xml | 0 .../SystemUI/res/values/integers.xml | 0 .../{dubai => bangkk}/Wifi/Android.bp | 2 +- .../Wifi/AndroidManifest.xml | 2 +- .../Wifi/res/values/config.xml | 2 +- .../Frameworks/res/xml/power_profile.xml | 113 - .../Settings/res/drawable/regulatory_info.png | Bin 82979 -> 0 bytes rootdir/etc/init/hw/init.mmi.overlay.rc | 191 +- rootdir/etc/init/hw/init.nfc.sec.rc | 12 + rootdir/etc/init/hw/init.vendor.st21nfc.rc | 23 - sensors/Android.bp | 4 +- sensors/hals.conf | 3 +- setup-makefiles.sh | 4 +- system.prop | 2 +- update-sha1sums.py | 2 +- vendor.prop | 6 +- 72 files changed, 4912 insertions(+), 3629 deletions(-) mode change 100755 => 100644 audio/audio_effects.xml mode change 100755 => 100644 audio/audio_ext_spkr.conf create mode 100644 audio/audio_io_policy.conf mode change 100755 => 100644 audio/audio_policy_configuration.xml mode change 100755 => 100644 audio/audio_policy_volumes.xml mode change 100755 => 100644 audio/default_volume_tables.xml rename audio/{sku_yupik => sku_holi}/audio_platform_info.xml (84%) mode change 100755 => 100644 create mode 100644 audio/sku_holi/mixer_paths.xml delete mode 100755 audio/sku_yupik/mixer_paths.xml delete mode 100644 camera/Android.bp delete mode 100644 camera/AndroidManifest.xml delete mode 100644 camera/privapp-permissions-dubaicameraservice.xml delete mode 100644 camera/src/com/arrow/dubaicameraservice/BootReceiver.java delete mode 100644 camera/src/com/arrow/dubaicameraservice/DubaiCameraService.java delete mode 100644 camera/src/com/arrow/dubaicameraservice/QcRilMsgUtils.java delete mode 100644 camera/src/com/qualcomm/qcrilmsgtunnel/IQcrilMsgTunnel.aidl create mode 100644 configs/keylayout/fts_ts.kl mode change 100755 => 100644 configs/keylayout/goodix_ts.kl delete mode 100644 configs/thermal-engine-dubai-game-perf.conf rename device_framework_matrix_dubai.xml => device_framework_matrix_bangkk.xml (100%) rename fingerprint/{android.hardware.biometrics.fingerprint@2.3-service.dubai.rc => android.hardware.biometrics.fingerprint@2.3-service.bangkk.rc} (71%) rename fingerprint/{android.hardware.biometrics.fingerprint@2.3-service.dubai.xml => android.hardware.biometrics.fingerprint@2.3-service.bangkk.xml} (100%) rename lineage_dubai.mk => lineage_bangkk.mk (57%) rename manifest_dubai.xml => manifest_bangkk.xml (100%) rename resource-overlay/{dubai => bangkk}/Frameworks/Android.bp (69%) rename resource-overlay/{dubai => bangkk}/Frameworks/AndroidManifest.xml (89%) rename resource-overlay/{dubai => bangkk}/Frameworks/res/values-land/dimens.xml (85%) rename resource-overlay/{dubai => bangkk}/Frameworks/res/values/config.xml (93%) rename resource-overlay/{dubai => bangkk}/Frameworks/res/values/dimens.xml (67%) create mode 100644 resource-overlay/bangkk/Frameworks/res/xml/power_profile.xml rename resource-overlay/{dubai => bangkk}/LineageSystemUI/Android.bp (79%) rename resource-overlay/{dubai => bangkk}/LineageSystemUI/AndroidManifest.xml (87%) rename resource-overlay/{dubai => bangkk}/LineageSystemUI/res/values/config.xml (100%) rename resource-overlay/{dubai/SystemUI => bangkk/Settings}/Android.bp (70%) rename resource-overlay/{dubai => bangkk}/Settings/AndroidManifest.xml (87%) rename resource-overlay/{dubai => bangkk}/Settings/res/values/config.xml (79%) rename resource-overlay/{dubai => bangkk}/SettingsProvider/Android.bp (65%) rename resource-overlay/{dubai => bangkk}/SettingsProvider/AndroidManifest.xml (84%) rename resource-overlay/{dubai => bangkk}/SettingsProvider/res/values/config.xml (76%) rename resource-overlay/{dubai/Settings => bangkk/SystemUI}/Android.bp (70%) rename resource-overlay/{dubai => bangkk}/SystemUI/AndroidManifest.xml (86%) rename resource-overlay/{dubai => bangkk}/SystemUI/res/values-land/dimens.xml (100%) rename resource-overlay/{dubai => bangkk}/SystemUI/res/values/dimens.xml (100%) rename resource-overlay/{dubai => bangkk}/SystemUI/res/values/integers.xml (100%) rename resource-overlay/{dubai => bangkk}/Wifi/Android.bp (85%) rename resource-overlay/{dubai => bangkk}/Wifi/AndroidManifest.xml (87%) rename resource-overlay/{dubai => bangkk}/Wifi/res/values/config.xml (95%) delete mode 100644 resource-overlay/dubai/Frameworks/res/xml/power_profile.xml delete mode 100644 resource-overlay/dubai/Settings/res/drawable/regulatory_info.png create mode 100644 rootdir/etc/init/hw/init.nfc.sec.rc delete mode 100644 rootdir/etc/init/hw/init.vendor.st21nfc.rc diff --git a/Android.mk b/Android.mk index 77b026c..7cfd686 100644 --- a/Android.mk +++ b/Android.mk @@ -16,6 +16,6 @@ LOCAL_PATH := $(call my-dir) -ifeq ($(TARGET_DEVICE),dubai) +ifeq ($(TARGET_DEVICE),bangkk) include $(call all-makefiles-under,$(LOCAL_PATH)) endif diff --git a/AndroidProducts.mk b/AndroidProducts.mk index 7020d32..59ac1d1 100644 --- a/AndroidProducts.mk +++ b/AndroidProducts.mk @@ -15,4 +15,4 @@ # PRODUCT_MAKEFILES := \ - $(LOCAL_DIR)/lineage_dubai.mk + $(LOCAL_DIR)/lineage_bangkk.mk diff --git a/BoardConfig.mk b/BoardConfig.mk index 1413dc6..515fb18 100644 --- a/BoardConfig.mk +++ b/BoardConfig.mk @@ -14,25 +14,25 @@ # limitations under the License. # -DEVICE_PATH := device/motorola/dubai +DEVICE_PATH := device/motorola/bangkk -# Inherit from motorola sm7325-common -include device/motorola/sm7325-common/BoardConfigCommon.mk +# Inherit from motorola sm6375-common +include device/motorola/sm6375-common/BoardConfigCommon.mk # Bootloader -TARGET_BOOTLOADER_BOARD_NAME := dubai +TARGET_BOOTLOADER_BOARD_NAME := bangkk # Fingerprint -TARGET_SURFACEFLINGER_UDFPS_LIB := //$(DEVICE_PATH):libudfps_extension.dubai +TARGET_SURFACEFLINGER_UDFPS_LIB := //$(DEVICE_PATH):libudfps_extension.bangkk SOONG_CONFIG_qtidisplay_udfps := true # HIDL -DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX_FILE += $(DEVICE_PATH)/device_framework_matrix_dubai.xml -DEVICE_MANIFEST_FILE += $(DEVICE_PATH)/manifest_dubai.xml +DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX_FILE += $(DEVICE_PATH)/device_framework_matrix_bangkk.xml +DEVICE_MANIFEST_FILE += $(DEVICE_PATH)/manifest_bangkk.xml # Kernel -BOARD_KERNEL_CMDLINE += androidboot.hab.product=dubai -TARGET_KERNEL_CONFIG += vendor/lineage_dubai.config +BOARD_KERNEL_CMDLINE += androidboot.hab.product=bangkk +TARGET_KERNEL_CONFIG += vendor/bangkk_defconfig # Kernel Modules BOARD_VENDOR_KERNEL_MODULES_LOAD := $(strip $(shell cat $(DEVICE_PATH)/modules.load)) @@ -41,9 +41,8 @@ BOARD_VENDOR_RAMDISK_RECOVERY_KERNEL_MODULES_LOAD := $(strip $(shell cat $(DEVIC BOOT_KERNEL_MODULES := $(BOARD_VENDOR_RAMDISK_RECOVERY_KERNEL_MODULES_LOAD) # Partitions -BOARD_USERDATAIMAGE_PARTITION_SIZE := 116340535296 -BOARD_MOT_DP_GROUP_SIZE := 8921284608 # ( BOARD_SUPER_PARTITION_SIZE - 4MB ) -BOARD_SUPER_PARTITION_SIZE := 8925478912 +BOARD_MOT_DP_GROUP_SIZE := 6706692096 # (BOARD_SUPER_PARTITION_SIZE - 4MB) +BOARD_SUPER_PARTITION_SIZE := 6710886400 # Properties TARGET_SYSTEM_PROP += $(DEVICE_PATH)/system.prop @@ -52,8 +51,8 @@ TARGET_VENDOR_PROP += $(DEVICE_PATH)/vendor.prop # Recovery TARGET_RECOVERY_UI_MARGIN_HEIGHT := 90 -# Security +# Security patch level VENDOR_SECURITY_PATCH := 2024-05-01 # inherit from the proprietary version -include vendor/motorola/dubai/BoardConfigVendor.mk +include vendor/motorola/bangkk/BoardConfigVendor.mk diff --git a/README.md b/README.md index d4e0d22..590811b 100644 --- a/README.md +++ b/README.md @@ -1,3 +1 @@ -Device tree for the Motorola edge 30 - -Information about the device, build and install instructions can be found [here](http://wiki.lineageos.org/devices/dubai/) +# Device configuration files for Motorola moto g84 5G (bangkk) diff --git a/audio/audio_effects.xml b/audio/audio_effects.xml old mode 100755 new mode 100644 index 82dd738..c83e3a6 --- a/audio/audio_effects.xml +++ b/audio/audio_effects.xml @@ -2,7 +2,7 @@ - + @@ -10,13 +10,23 @@ + + + + + + + + + + + - @@ -25,9 +35,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/audio/audio_ext_spkr.conf b/audio/audio_ext_spkr.conf old mode 100755 new mode 100644 index c90b01e..c96fc74 --- a/audio/audio_ext_spkr.conf +++ b/audio/audio_ext_spkr.conf @@ -1,5 +1,5 @@ global_config { - name Dubai + name Bangkk sonification_pad 20 sonification_prox_timeout_sec 5 } diff --git a/audio/audio_io_policy.conf b/audio/audio_io_policy.conf new file mode 100644 index 0000000..5e283d8 --- /dev/null +++ b/audio/audio_io_policy.conf @@ -0,0 +1,80 @@ +# List of profiles for the output device session where stream is routed. +# A stream opened with the inputs attributes which match the "flags" and +# "formats" as specified in the profile is routed to a device at +# sample rate specified under "sampling_rates" and bit width under +# "bit_width" and the topology extracted from the acdb data against +# the "app_type". +# +# the flags and formats are specified using the strings corresponding to +# enums in audio.h and audio_policy.h. They are concatenated with "|" +# without space or "\n". +# the flags and formats should match the ones in "audio_policy.conf" + +outputs { + default { + flags AUDIO_OUTPUT_FLAG_PRIMARY + formats AUDIO_FORMAT_PCM_16_BIT + sampling_rates 48000 + bit_width 16 + app_type 69937 + } + voip_rx { + flags AUDIO_OUTPUT_FLAG_VOIP_RX + formats AUDIO_FORMAT_PCM_16_BIT + sampling_rates 48000 + bit_width 16 + app_type 69946 + } + direct_pcm_16 { + flags AUDIO_OUTPUT_FLAG_DIRECT + formats AUDIO_FORMAT_PCM_16_BIT|AUDIO_FORMAT_PCM_24_BIT_PACKED|AUDIO_FORMAT_PCM_8_24_BIT|AUDIO_FORMAT_PCM_32_BIT + sampling_rates 44100|48000|88200|96000|176400|192000 + bit_width 16 + app_type 69936 + } + direct_pcm_24 { + flags AUDIO_OUTPUT_FLAG_DIRECT + formats AUDIO_FORMAT_PCM_24_BIT_PACKED|AUDIO_FORMAT_PCM_8_24_BIT|AUDIO_FORMAT_PCM_32_BIT + sampling_rates 44100|48000|88200|96000|176400|192000|352800|384000 + bit_width 24 + app_type 69940 + } + direct_pcm_32 { + flags AUDIO_OUTPUT_FLAG_DIRECT + formats AUDIO_FORMAT_PCM_32_BIT + sampling_rates 44100|48000|88200|96000|176400|192000|352800|384000 + bit_width 32 + app_type 69942 + } + compress_offload_16 { + flags AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING + formats AUDIO_FORMAT_MP3|AUDIO_FORMAT_PCM_16_BIT_OFFLOAD|AUDIO_FORMAT_PCM_24_BIT_OFFLOAD|AUDIO_FORMAT_FLAC|AUDIO_FORMAT_ALAC|AUDIO_FORMAT_APE|AUDIO_FORMAT_AAC_LC|AUDIO_FORMAT_AAC_HE_V1|AUDIO_FORMAT_AAC_HE_V2|AUDIO_FORMAT_WMA|AUDIO_FORMAT_WMA_PRO|AUDIO_FORMAT_VORBIS|AUDIO_FORMAT_AAC_ADTS_LC|AUDIO_FORMAT_AAC_ADTS_HE_V1|AUDIO_FORMAT_AAC_ADTS_HE_V2|AUDIO_FORMAT_AAC_LATM_LC|AUDIO_FORMAT_AAC_LATM_HE_V1|AUDIO_FORMAT_AAC_LATM_HE_V2 + sampling_rates 44100|48000|88200|96000|176400|192000 + bit_width 16 + app_type 69936 + } + compress_offload_24 { + flags AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING + formats AUDIO_FORMAT_MP3|AUDIO_FORMAT_PCM_24_BIT_OFFLOAD|AUDIO_FORMAT_FLAC|AUDIO_FORMAT_ALAC|AUDIO_FORMAT_APE|AUDIO_FORMAT_AAC_LC|AUDIO_FORMAT_AAC_HE_V1|AUDIO_FORMAT_AAC_HE_V2|AUDIO_FORMAT_WMA_PRO|AUDIO_FORMAT_VORBIS|AUDIO_FORMAT_AAC_ADTS_LC|AUDIO_FORMAT_AAC_ADTS_HE_V1|AUDIO_FORMAT_AAC_ADTS_HE_V2|AUDIO_FORMAT_AAC_LATM_LC|AUDIO_FORMAT_AAC_LATM_HE_V1|AUDIO_FORMAT_AAC_LATM_HE_V2 + sampling_rates 44100|48000|88200|96000|176400|192000 + bit_width 24 + app_type 69940 + } + deep_buffer { + flags AUDIO_OUTPUT_FLAG_DEEP_BUFFER + formats AUDIO_FORMAT_PCM_16_BIT + sampling_rates 48000 + bit_width 16 + app_type 69936 + } +} + +inputs { + voip_tx { + flags AUDIO_INPUT_FLAG_VOIP_TX + formats AUDIO_FORMAT_PCM_16_BIT + sampling_rates 48000 + bit_width 16 + app_type 69946 + } +} diff --git a/audio/audio_policy_configuration.xml b/audio/audio_policy_configuration.xml old mode 100755 new mode 100644 index 066f820..58dcacc --- a/audio/audio_policy_configuration.xml +++ b/audio/audio_policy_configuration.xml @@ -45,11 +45,11 @@ samplingRates="44100,48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/> + flags="AUDIO_OUTPUT_FLAG_DEEP_BUFFER"> - + + channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_IN_AMBISONIC,AUDIO_CHANNEL_INDEX_MASK_3,AUDIO_CHANNEL_INDEX_MASK_4"/> + channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_IN_AMBISONIC,AUDIO_CHANNEL_INDEX_MASK_3,AUDIO_CHANNEL_INDEX_MASK_4"/> + flags="AUDIO_OUTPUT_FLAG_VOIP_RX"> + samplingRates="8000,16000,32000,48000" channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO"/> @@ -147,6 +147,15 @@ + + + + + + @@ -194,6 +203,14 @@ sources="primary output,deep_buffer,direct_pcm,voip_rx"/> + + + + - - + + + + + + + + + + + + + + + + + - - - - + + diff --git a/audio/audio_policy_volumes.xml b/audio/audio_policy_volumes.xml old mode 100755 new mode 100644 index 437824f..bac62cb --- a/audio/audio_policy_volumes.xml +++ b/audio/audio_policy_volumes.xml @@ -8,22 +8,28 @@ volume index from 0 to 100. --> - - 0,-3700 - 20,-2600 - 40,-1800 - 60,-1100 - 80,-500 - 100,0 - - - 0,-3000 - 33,-2000 - 66,-1000 - 100,0 - - + + 0,-3000 + 25,-2500 + 37,-2100 + 50,-1800 + 63,-1500 + 75,-1200 + 87,-900 + 100,0 + + + 0,-2500 + 25,-1880 + 37,-1450 + 50,-1250 + 63,-900 + 75,-650 + 87,-350 + 100,0 + @@ -32,8 +38,12 @@ volume index from 0 to 100. 66,-2200 100,-1800 - + + 1,-3600 + 33,-2700 + 66,-1800 + 100,-900 + - - 1,-6000 - 33,-3800 - 66,-1800 - 100,0 - + - + + 1,-3500 + 33,-2100 + 66,-1300 + 100,-500 + - 1,-4800 - 33,-3100 - 66,-1500 + 1,-3900 + 33,-2600 + 66,-1300 100,0 - 1,-4900 - 33,-3400 - 66,-2000 - 100,-700 + 1,-5300 + 70,-2390 + 84,-1010 + 100,0 @@ -41,9 +41,9 @@ - 1,-4800 - 34,-3200 - 67,-1600 + 1,-5400 + 34,-3600 + 67,-1800 100,0 @@ -62,9 +62,20 @@ - 1,-5400 - 33,-3000 - 66,-1200 + 1,-5600 + 13,-4200 + 20,-3900 + 27,-3400 + 33,-3100 + 40,-2800 + 47,-2500 + 50,-2200 + 60,-1900 + 66,-1650 + 73,-1450 + 80,-1250 + 86,-1050 + 90,-850 100,0 diff --git a/audio/sku_yupik/audio_platform_info.xml b/audio/sku_holi/audio_platform_info.xml old mode 100755 new mode 100644 similarity index 84% rename from audio/sku_yupik/audio_platform_info.xml rename to audio/sku_holi/audio_platform_info.xml index 8e75d0d..3fb058f --- a/audio/sku_yupik/audio_platform_info.xml +++ b/audio/sku_holi/audio_platform_info.xml @@ -38,11 +38,14 @@ + + + @@ -50,11 +53,14 @@ + + + @@ -77,9 +83,9 @@ - + - + @@ -92,11 +98,11 @@ - - + + - + @@ -104,7 +110,7 @@ - + @@ -134,7 +140,6 @@ - @@ -142,12 +147,23 @@ + + + + + + + + + + + @@ -156,32 +172,30 @@ - - - - + + - + + - @@ -191,7 +205,7 @@ - + @@ -204,7 +218,6 @@ - @@ -215,20 +228,17 @@ - + - - - - - - - - - + + + + - + + + @@ -243,48 +253,70 @@ - - - - + + + + + + - + - + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + - + @@ -298,16 +330,14 @@ + + - - - - @@ -333,7 +363,6 @@ - @@ -348,34 +377,43 @@ + - - - + + + + + + + + - - - - - + + + + + + + + @@ -395,7 +433,6 @@ - diff --git a/audio/sku_holi/mixer_paths.xml b/audio/sku_holi/mixer_paths.xml new file mode 100644 index 0000000..3c9e5c2 --- /dev/null +++ b/audio/sku_holi/mixer_paths.xml @@ -0,0 +1,4055 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/audio/sku_yupik/mixer_paths.xml b/audio/sku_yupik/mixer_paths.xml deleted file mode 100755 index ba94e68..0000000 --- a/audio/sku_yupik/mixer_paths.xml +++ /dev/null @@ -1,2290 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/camera/Android.bp b/camera/Android.bp deleted file mode 100644 index 7d55c11..0000000 --- a/camera/Android.bp +++ /dev/null @@ -1,25 +0,0 @@ -// -// Copyright (C) 2023 ArrowOS -// -// SPDX-License-Identifier: Apache-2.0 -// - -android_app { - name: "DubaiCameraService", - srcs: [ - "src/**/*.java", - "src/**/*.aidl", - ], - certificate: "platform", - platform_apis: true, - privileged: true, - system_ext_specific: true, - required: ["privapp-permissions-dubaicameraservice.xml"], -} - -prebuilt_etc { - name: "privapp-permissions-dubaicameraservice.xml", - src: "privapp-permissions-dubaicameraservice.xml", - system_ext_specific: true, - sub_dir: "permissions", -} diff --git a/camera/AndroidManifest.xml b/camera/AndroidManifest.xml deleted file mode 100644 index 48e4de5..0000000 --- a/camera/AndroidManifest.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/camera/privapp-permissions-dubaicameraservice.xml b/camera/privapp-permissions-dubaicameraservice.xml deleted file mode 100644 index 0b11906..0000000 --- a/camera/privapp-permissions-dubaicameraservice.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - diff --git a/camera/src/com/arrow/dubaicameraservice/BootReceiver.java b/camera/src/com/arrow/dubaicameraservice/BootReceiver.java deleted file mode 100644 index 206385b..0000000 --- a/camera/src/com/arrow/dubaicameraservice/BootReceiver.java +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (C) 2023 ArrowOS - * - * SPDX-License-Identifier: Apache-2.0 - */ - -package com.arrow.dubaicameraservice; - -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; - -public class BootReceiver extends BroadcastReceiver { - - @Override - public void onReceive(final Context context, Intent intent) { - if (!intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) - return; - - DubaiCameraService.startService(context); - } -} diff --git a/camera/src/com/arrow/dubaicameraservice/DubaiCameraService.java b/camera/src/com/arrow/dubaicameraservice/DubaiCameraService.java deleted file mode 100644 index 9e4f01c..0000000 --- a/camera/src/com/arrow/dubaicameraservice/DubaiCameraService.java +++ /dev/null @@ -1,163 +0,0 @@ -/* - * Copyright (C) 2023 ArrowOS - * - * SPDX-License-Identifier: Apache-2.0 - */ - -package com.arrow.dubaicameraservice; - -import static android.telephony.SubscriptionManager.INVALID_SUBSCRIPTION_ID; - -import android.app.Service; -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.hardware.camera2.CameraManager; -import android.os.Handler; -import android.os.HandlerExecutor; -import android.os.IBinder; -import android.os.Looper; -import android.os.UserHandle; -import android.telephony.SubscriptionManager; -import android.telephony.TelephonyCallback; -import android.telephony.TelephonyManager; -import android.util.Log; - -import java.util.Arrays; -import java.util.Set; -import java.util.concurrent.Executor; - -public class DubaiCameraService extends Service { - - private static final boolean DEBUG = false; - private static final String TAG = "DubaiCameraService"; - - private static final String FRONT_CAMERA_ID = "1"; - private static final int OFFENDING_NR_BAND = 78; - - private static final Set IGNORED_PACKAGES = Set.of( - "co.aospa.sense", // face unlock - "com.google.android.as" // auto rotate, screen attention etc - ); - - private CameraManager mCameraManager; - private SubscriptionManager mSubManager; - private TelephonyManager mTelephonyManager; - private QcRilMsgUtils mQcRilMsgUtils; - - private boolean mIsFrontCamInUse = false; - private int[] mActiveSubIds = new int[0]; - private int mDefaultDataSubId = INVALID_SUBSCRIPTION_ID; - - private final Handler mHandler = new Handler(Looper.getMainLooper()); - private final Executor mExecutor = new HandlerExecutor(mHandler); - - private final CameraManager.AvailabilityCallback mCameraCallback = - new CameraManager.AvailabilityCallback() { - @Override - public void onCameraOpened(String cameraId, String packageId) { - dlog("onCameraOpened id=" + cameraId + " package=" + packageId); - if (cameraId.equals(FRONT_CAMERA_ID) && !IGNORED_PACKAGES.contains(packageId)) { - mIsFrontCamInUse = true; - update5gState(); - } - } - - @Override - public void onCameraClosed(String cameraId) { - dlog("onCameraClosed id=" + cameraId); - if (cameraId.equals(FRONT_CAMERA_ID) && mIsFrontCamInUse) { - mIsFrontCamInUse = false; - update5gState(); - } - } - }; - - private final SubscriptionManager.OnSubscriptionsChangedListener mSubListener = - new SubscriptionManager.OnSubscriptionsChangedListener() { - @Override - public void onSubscriptionsChanged() { - dlog("onSubscriptionsChanged"); - final int[] subs = mSubManager.getActiveSubscriptionIdList(); - if (!Arrays.equals(subs, mActiveSubIds)) { - dlog("active subs changed, was: " + Arrays.toString(mActiveSubIds) - + ", now: " + Arrays.toString(subs)); - mActiveSubIds = subs; - update5gState(); - } - } - }; - - private class ActiveDataSubIdCallback extends TelephonyCallback implements - TelephonyCallback.ActiveDataSubscriptionIdListener { - @Override - public void onActiveDataSubscriptionIdChanged(int subId) { - dlog("onActiveDataSubscriptionIdChanged subId:" + subId); - if (subId != mDefaultDataSubId) { - mDefaultDataSubId = subId; - update5gState(); - } - } - }; - - private final TelephonyCallback mTelephonyCallback = new ActiveDataSubIdCallback(); - - @Override - public void onCreate() { - dlog("onCreate"); - mQcRilMsgUtils = new QcRilMsgUtils(this); - mCameraManager = getSystemService(CameraManager.class); - mSubManager = getSystemService(SubscriptionManager.class); - mTelephonyManager = getSystemService(TelephonyManager.class); - } - - @Override - public int onStartCommand(Intent intent, int flags, int startId) { - dlog("onStartCommand"); - mQcRilMsgUtils.bindService(); - mCameraManager.registerAvailabilityCallback(mCameraCallback, mHandler); - mTelephonyManager.registerTelephonyCallback(mExecutor, mTelephonyCallback); - mSubManager.addOnSubscriptionsChangedListener(mExecutor, mSubListener); - return START_STICKY; - } - - @Override - public void onDestroy() { - dlog("onDestroy"); - mQcRilMsgUtils.unbindService(); - mCameraManager.unregisterAvailabilityCallback(mCameraCallback); - mTelephonyManager.unregisterTelephonyCallback(mTelephonyCallback); - mSubManager.removeOnSubscriptionsChangedListener(mSubListener); - } - - @Override - public IBinder onBind(Intent intent) { - return null; - } - - public static void startService(Context context) { - Log.i(TAG, "Starting service"); - context.startServiceAsUser(new Intent(context, DubaiCameraService.class), - UserHandle.CURRENT); - } - - private void update5gState() { - if (mDefaultDataSubId == INVALID_SUBSCRIPTION_ID - || mActiveSubIds.length == 0) { - dlog("update5gState: Invalid subid or no active subs!"); - return; - } - if (mQcRilMsgUtils.setNrBandEnabled(mSubManager.getPhoneId(mDefaultDataSubId), - OFFENDING_NR_BAND, !mIsFrontCamInUse)) { - Log.i(TAG, (mIsFrontCamInUse ? "Disabled" : "Enabled") + " NR band " - + OFFENDING_NR_BAND + " for subId " + mDefaultDataSubId); - } else { - Log.e(TAG, "Failed to " + (mIsFrontCamInUse ? "disable" : "enable") + " NR band " - + OFFENDING_NR_BAND + " for subId " + mDefaultDataSubId); - } - } - - protected static void dlog(String msg) { - if (DEBUG) Log.d(TAG, msg); - } -} diff --git a/camera/src/com/arrow/dubaicameraservice/QcRilMsgUtils.java b/camera/src/com/arrow/dubaicameraservice/QcRilMsgUtils.java deleted file mode 100644 index 0db509c..0000000 --- a/camera/src/com/arrow/dubaicameraservice/QcRilMsgUtils.java +++ /dev/null @@ -1,170 +0,0 @@ -/* - * Copyright (C) 2023 ArrowOS - * - * SPDX-License-Identifier: Apache-2.0 - */ - -package com.arrow.dubaicameraservice; - -import android.content.ComponentName; -import android.content.Context; -import android.content.Intent; -import android.content.ServiceConnection; -import android.os.IBinder; -import android.os.RemoteException; -import android.util.Log; - -import com.qualcomm.qcrilmsgtunnel.IQcrilMsgTunnel; - -import java.nio.ByteBuffer; -import java.nio.ByteOrder; - -public class QcRilMsgUtils { - - private static final String TAG = "DubaiCameraService-QcRil"; - - private static final String PACKAGE_NAME = "com.qualcomm.qcrilmsgtunnel"; - private static final String SERVICE_NAME = "com.qualcomm.qcrilmsgtunnel.QcrilMsgTunnelService"; - - private static final int OEM_RIL_REQUEST_GET_BAND_PREF = 327723; - private static final int OEM_RIL_REQUEST_SET_BAND_PREF = 327724; - private static final int BAND_CONFIG_LENGTH = 168; - private static final int LTE_CONFIG_LENGTH = 4; - private static final int NR_CONFIG_LENGTH = 8; - - private IQcrilMsgTunnel mService; - private QcrilMsgTunnelConnection mServiceConnection; - private Context mContext; - - public QcRilMsgUtils(Context context) { - mContext = context; - mServiceConnection = new QcrilMsgTunnelConnection(); - } - - protected void bindService() { - dlog("bindService"); - if (!mContext.bindService(new Intent().setClassName(PACKAGE_NAME, SERVICE_NAME), - mServiceConnection, Context.BIND_AUTO_CREATE)) { - Log.e(TAG, "Failed to bind to QcrilMsgTunnelService!"); - } - } - - protected void unbindService() { - dlog("unbindService"); - mContext.unbindService(mServiceConnection); - mService = null; - } - - /* TODO: split this function */ - protected boolean setNrBandEnabled(int phoneId, int band, boolean enabled) { - if (mService == null) { - Log.e(TAG, "setNrSaBandEnabled: mService is null!"); - return false; - } - dlog("setNrSaBandEnabled: phoneId=" + phoneId + " band=" + band + " enabled=" + enabled); - - // get band config - byte[] reqData = new byte[8]; - ByteBuffer reqBuf = ByteBuffer.wrap(reqData) - .order(ByteOrder.BIG_ENDIAN) - .putInt(OEM_RIL_REQUEST_GET_BAND_PREF) - .putInt(0); - byte[] resp = new byte[BAND_CONFIG_LENGTH]; - try { - int ret = mService.sendOemRilRequestRaw(reqData, resp, phoneId); - if (ret < 0) - throw new Exception(); - } catch (Exception e) { - Log.e(TAG, "sendOemRilRequestRaw failed to get band config!", e); - return false; - } - ByteBuffer buf = ByteBuffer.wrap(resp) - .order(ByteOrder.nativeOrder()); - long nasConfig = buf.getLong(); - long[] lteConfigs = new long[LTE_CONFIG_LENGTH]; - for (int i = 0; i < LTE_CONFIG_LENGTH; i++) { - lteConfigs[i] = buf.getLong(); - } - long[] nrSaConfigs = new long[NR_CONFIG_LENGTH]; - for (int i = 0; i < NR_CONFIG_LENGTH; i++) { - nrSaConfigs[i] = buf.getLong(); - } - long[] nrNsaConfigs = new long[NR_CONFIG_LENGTH]; - for (int i = 0; i < NR_CONFIG_LENGTH; i++) { - nrNsaConfigs[i] = buf.getLong(); - } - - // modify band config - int row = (band - 1) / 64; - int col = (band - 1) % 64; - if (enabled) { - nrSaConfigs[row] |= (1 << col); - nrNsaConfigs[row] |= (1 << col); - } else { - nrSaConfigs[row] &= ~(1 << col); - nrNsaConfigs[row] &= ~(1 << col); - } - - // set band config - byte[] newData = new byte[BAND_CONFIG_LENGTH + 8]; - ByteBuffer newBuf = ByteBuffer.wrap(newData) - .order(ByteOrder.BIG_ENDIAN) - .putInt(OEM_RIL_REQUEST_SET_BAND_PREF) - .putInt(BAND_CONFIG_LENGTH) - .order(ByteOrder.nativeOrder()) - .putLong(nasConfig); - for (int i = 0; i < LTE_CONFIG_LENGTH; i++) { - newBuf.putLong(lteConfigs[i]); - } - for (int i = 0; i < NR_CONFIG_LENGTH; i++) { - newBuf.putLong(nrSaConfigs[i]); - } - for (int i = 0; i < NR_CONFIG_LENGTH; i++) { - newBuf.putLong(nrNsaConfigs[i]); - } - try { - int ret = mService.sendOemRilRequestRaw(newData, new byte[1], phoneId); - if (ret < 0) - throw new Exception(); - } catch (Exception e) { - Log.e(TAG, "sendOemRilRequestRaw failed to set band config!", e); - return false; - } - - return true; - } - - private class QcrilMsgTunnelConnection implements ServiceConnection { - @Override - public void onServiceConnected(ComponentName name, IBinder service) { - mService = IQcrilMsgTunnel.Stub.asInterface(service); - if (mService == null) { - Log.e(TAG, "Unable to get IQcrilMsgTunnel!"); - return; - } - try { - service.linkToDeath(new IBinder.DeathRecipient() { - @Override - public void binderDied() { - Log.e(TAG, "QcrilMsgTunnel service died, trying to bind again"); - mService = null; - QcRilMsgUtils.this.bindService(); - } - }, 0); - } catch (RemoteException e) { - Log.e(TAG, "linkToDeath failed", e); - } - Log.i(TAG, "QcrilMsgTunnel service connected"); - } - - @Override - public void onServiceDisconnected(ComponentName name) { - Log.i(TAG, "QcrilMsgTunnel service disconnected"); - mService = null; - } - } - - private static void dlog(String msg) { - DubaiCameraService.dlog(msg); - } -} diff --git a/camera/src/com/qualcomm/qcrilmsgtunnel/IQcrilMsgTunnel.aidl b/camera/src/com/qualcomm/qcrilmsgtunnel/IQcrilMsgTunnel.aidl deleted file mode 100644 index 7cedc3e..0000000 --- a/camera/src/com/qualcomm/qcrilmsgtunnel/IQcrilMsgTunnel.aidl +++ /dev/null @@ -1,11 +0,0 @@ -package com.qualcomm.qcrilmsgtunnel; - -interface IQcrilMsgTunnel { - - /** - * Sends a OEM request to the RIL and returns the response back to the - * Caller. The returnValue is negative on failure. 0 or length of response on SUCCESS - */ - int sendOemRilRequestRaw(in byte[] request, out byte[] response, in int sub); - -} diff --git a/configs/keylayout/fts_ts.kl b/configs/keylayout/fts_ts.kl new file mode 100644 index 0000000..2d03a1c --- /dev/null +++ b/configs/keylayout/fts_ts.kl @@ -0,0 +1,9 @@ +# +# FTS Touch sensor fod key event +# +# +# 704 finger touch down +# 705 finger touch up +# fts_ts "finger present" +key 704 SYSTEM_NAVIGATION_DOWN +key 705 SYSTEM_NAVIGATION_UP diff --git a/configs/keylayout/goodix_ts.kl b/configs/keylayout/goodix_ts.kl old mode 100755 new mode 100644 diff --git a/configs/thermal-engine-dubai-game-perf.conf b/configs/thermal-engine-dubai-game-perf.conf deleted file mode 100644 index 20a0640..0000000 --- a/configs/thermal-engine-dubai-game-perf.conf +++ /dev/null @@ -1,123 +0,0 @@ -[DETECT-STANDBY] -algo_type virtual -trip_sensor msm_therm -thresholds -18000 -thresholds_clr -20000 -sensors lcd_brightness_value -weights 20 -sampling 1000 -less_than -math 7 - -[OVERRIDE-CHG] -algo_type monitor -sampling 1000 -sensor DETECT-STANDBY -thresholds 1 -thresholds_clr 0 -actions internal_override -action_info 1 - -[FREEZE-CHG] -algo_type monitor -sampling 1000 -descending -sensor DETECT-STANDBY -thresholds 0 -thresholds_clr 1 -actions freeze_rule -action_info 1 - -[FRONT_TEMP] -algo_type virtual -trip_sensor msm_therm -thresholds -18000 -thresholds_clr -20000 -sensors pa_therm1 battery -weights 35 65 -offsets 0 0 -sampling 5000 -math 0 -sys_temp - -[REPORT-FRONT-TEMP] -algo_type monitor -sampling 300000 -sensor FRONT_TEMP -thresholds 42000 -thresholds_clr 40000 -actions report -action_info 1 - -[BACK_TEMP] -algo_type virtual -trip_sensor msm_therm -thresholds -18000 -thresholds_clr -20000 -sensors msm_therm battery -weights 50 50 -offsets -800 -sampling 5000 -math 0 -sys_temp - -[REPORT-BACK-TEMP] -algo_type monitor -sampling 300000 -sensor BACK_TEMP -thresholds 42000 -thresholds_clr 40000 -actions report -action_info 1 - - -[MON-PDPOWER1] -algo_type monitor -sampling 1000 -sensor quiet_therm -thresholds 43000 43500 44000 44500 46000 47500 48500 70000 -thresholds_clr 41000 41500 42000 42500 44000 45500 46500 68000 -actions battery battery battery battery battery battery battery battery -action_info 8 7 6 5 4 3 2 2 -freezing - -[MON-PDPOWER2] -algo_type monitor -sampling 1000 -sensor msm_therm -thresholds 41000 42000 43000 44000 46000 48000 50000 70000 -thresholds_clr 39000 40000 41000 42000 44000 46000 48000 68000 -actions battery battery battery battery battery battery battery battery -action_info 8 6 5 4 3 2 1 1 -override_c 15000 - - - - -[MON-MSM-CPU47] -algo_type monitor -sampling 1000 -sensor BACK_TEMP -thresholds 42000 43000 44000 45000 46000 47000 49000 70000 -thresholds_clr 39000 40000 41000 42000 43000 44000 47000 68000 -actions cpu4+cpu7 cpu4+cpu7 cpu4+cpu7 cpu4+cpu7 cpu4+cpu7 cpu4+cpu7 cpu4+cpu7 cpu4+cpu7 -action_info 21312000+2380800 2054400+2208000 1900800+2035200 1651200+1862400 1516800+1766400 1344000+1516800 1228800+1324800 1228800+1324800 - - -[MON-MSM-CPU0] -algo_type monitor -sampling 1000 -sensor BACK_TEMP -thresholds 43000 44000 45000 46000 47000 70000 -thresholds_clr 41000 42000 43000 44000 45000 68000 -actions cpu0 cpu0 cpu0 cpu0 cpu0 cpu0 -action_info 1651200 1516800 1324800 1152000 940800 940800 - -[MON-PA-FR1] -algo_type monitor -sampling 5000 -sensor BACK_TEMP -thresholds 60000 -thresholds_clr 58000 -actions modem_pa_fr1 -action_info 1 diff --git a/device.mk b/device.mk index afa5475..d165a69 100644 --- a/device.mk +++ b/device.mk @@ -29,24 +29,25 @@ PRODUCT_AAPT_CONFIG := normal PRODUCT_AAPT_PREF_CONFIG := 400dpi PRODUCT_AAPT_PREBUILT_DPI := xxxhdpi xxhdpi xhdpi hdpi -PRODUCT_SHIPPING_API_LEVEL := 31 +# Shipping API level +PRODUCT_SHIPPING_API_LEVEL := 33 -# Inherit from motorola sm7325-common -$(call inherit-product, device/motorola/sm7325-common/common.mk) +# Inherit from motorola sm6375-common +$(call inherit-product, device/motorola/sm6375-common/common.mk) # Overlay PRODUCT_PACKAGES += \ - FrameworksResDubai \ - LineageSystemUIDubai \ - SettingsResDubai \ - SettingsProviderResDubai \ - SystemUIResDubai \ - WifiResDubai + FrameworksResBangkk \ + LineageSystemUIBangkk \ + SettingsResBangkk \ + SettingsProviderResBangkk \ + SystemUIResBangkk \ + WifiResBangkk # Audio PRODUCT_COPY_FILES += \ - $(LOCAL_PATH)/audio/sku_yupik/audio_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_yupik/audio_platform_info.xml \ - $(LOCAL_PATH)/audio/sku_yupik/mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_yupik/mixer_paths.xml \ + $(LOCAL_PATH)/audio/sku_holi/audio_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_holi/audio_platform_info.xml \ + $(LOCAL_PATH)/audio/sku_holi/mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_holi/mixer_paths.xml \ $(LOCAL_PATH)/audio/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \ $(LOCAL_PATH)/audio/audio_effects.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.xml \ $(LOCAL_PATH)/audio/audio_ext_spkr.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_ext_spkr.conf \ @@ -55,12 +56,11 @@ PRODUCT_COPY_FILES += \ # Camera PRODUCT_PACKAGES += \ - DubaiCameraService \ libgui_shim_vendor # Fingerprint PRODUCT_PACKAGES += \ - android.hardware.biometrics.fingerprint@2.3-service.dubai + android.hardware.biometrics.fingerprint@2.3-service.bangkk # Init $(foreach f,$(wildcard $(LOCAL_PATH)/rootdir/etc/init/hw/*.rc),\ @@ -72,26 +72,31 @@ $(foreach f,$(wildcard $(LOCAL_PATH)/rootdir/bin/*.sh),\ # Keylayout PRODUCT_COPY_FILES += \ + $(LOCAL_PATH)/configs/keylayout/fts_ts.kl:$(TARGET_COPY_OUT_VENDOR)/usr/keylayout/fts_ts.kl \ $(LOCAL_PATH)/configs/keylayout/goodix_ts.kl:$(TARGET_COPY_OUT_VENDOR)/usr/keylayout/goodix_ts.kl # NFC PRODUCT_PACKAGES += \ android.hardware.nfc@1.2.vendor \ - android.hardware.nfc@1.2-service.st \ + android.hardware.nfc@1.2-service.samsung \ + nfc_nci_samsung \ + SecureElement \ android.hardware.secure_element@1.2.vendor \ com.android.nfc_extras \ libchrome.vendor \ - Tag \ - nfc_nci.st21nfc.default + Tag # Permissions PRODUCT_COPY_FILES += \ + frameworks/native/data/etc/android.hardware.nfc.hce.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.hce.xml \ frameworks/native/data/etc/android.hardware.nfc.hcef.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.hcef.xml \ + frameworks/native/data/etc/android.hardware.nfc.uicc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.uicc.xml \ + frameworks/native/data/etc/android.hardware.nfc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.xml \ frameworks/native/data/etc/com.nxp.mifare.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/com.nxp.mifare.xml # Sensors PRODUCT_PACKAGES += \ - sensors.dubai + sensors.bangkk PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/sensors/hals.conf:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/hals.conf @@ -99,9 +104,5 @@ PRODUCT_COPY_FILES += \ # Soong namespaces PRODUCT_SOONG_NAMESPACES += $(LOCAL_PATH) -# Thermal -PRODUCT_COPY_FILES += \ - $(LOCAL_PATH)/configs/thermal-engine-dubai-game-perf.conf:$(TARGET_COPY_OUT_VENDOR)/etc/thermal-engine-dubai.conf - # Inherit from vendor blobs -$(call inherit-product, vendor/motorola/dubai/dubai-vendor.mk) +$(call inherit-product, vendor/motorola/bangkk/bangkk-vendor.mk) diff --git a/device_framework_matrix_dubai.xml b/device_framework_matrix_bangkk.xml similarity index 100% rename from device_framework_matrix_dubai.xml rename to device_framework_matrix_bangkk.xml diff --git a/extract-files.sh b/extract-files.sh index 2c68560..c1d9421 100755 --- a/extract-files.sh +++ b/extract-files.sh @@ -22,8 +22,8 @@ fi set -e -export DEVICE=dubai -export DEVICE_COMMON=sm7325-common +export DEVICE=bangkk +export DEVICE_COMMON=sm6375-common export VENDOR=motorola "./../../${VENDOR}/${DEVICE_COMMON}/extract-files.sh" "$@" diff --git a/fingerprint/Android.bp b/fingerprint/Android.bp index 8aff97d..19ec8c7 100644 --- a/fingerprint/Android.bp +++ b/fingerprint/Android.bp @@ -1,8 +1,8 @@ cc_binary { - name: "android.hardware.biometrics.fingerprint@2.3-service.dubai", + name: "android.hardware.biometrics.fingerprint@2.3-service.bangkk", defaults: ["hidl_defaults"], - init_rc: ["android.hardware.biometrics.fingerprint@2.3-service.dubai.rc"], - vintf_fragments: ["android.hardware.biometrics.fingerprint@2.3-service.dubai.xml"], + init_rc: ["android.hardware.biometrics.fingerprint@2.3-service.bangkk.rc"], + vintf_fragments: ["android.hardware.biometrics.fingerprint@2.3-service.bangkk.xml"], relative_install_path: "hw", srcs: [ "service.cpp", @@ -22,7 +22,7 @@ cc_binary { } cc_library_static { - name: "libudfps_extension.dubai", + name: "libudfps_extension.bangkk", srcs: ["UdfpsExtension.cpp"], include_dirs: [ "frameworks/native/services/surfaceflinger/CompositionEngine/include" diff --git a/fingerprint/BiometricsFingerprint.cpp b/fingerprint/BiometricsFingerprint.cpp index 01b5b01..d1f0351 100644 --- a/fingerprint/BiometricsFingerprint.cpp +++ b/fingerprint/BiometricsFingerprint.cpp @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -#define LOG_TAG "android.hardware.biometrics.fingerprint@2.3-service.dubai" +#define LOG_TAG "android.hardware.biometrics.fingerprint@2.3-service.bangkk" #include "BiometricsFingerprint.h" diff --git a/fingerprint/android.hardware.biometrics.fingerprint@2.3-service.dubai.rc b/fingerprint/android.hardware.biometrics.fingerprint@2.3-service.bangkk.rc similarity index 71% rename from fingerprint/android.hardware.biometrics.fingerprint@2.3-service.dubai.rc rename to fingerprint/android.hardware.biometrics.fingerprint@2.3-service.bangkk.rc index fcb4488..190d1df 100644 --- a/fingerprint/android.hardware.biometrics.fingerprint@2.3-service.dubai.rc +++ b/fingerprint/android.hardware.biometrics.fingerprint@2.3-service.bangkk.rc @@ -1,4 +1,4 @@ -service fps_hal.dubai /vendor/bin/hw/android.hardware.biometrics.fingerprint@2.3-service.dubai +service fps_hal.bangkk /vendor/bin/hw/android.hardware.biometrics.fingerprint@2.3-service.bangkk # "class hal" causes a race condition on some devices due to files created # in /data. As a workaround, postpone startup until later in boot once # /data is mounted. diff --git a/fingerprint/android.hardware.biometrics.fingerprint@2.3-service.dubai.xml b/fingerprint/android.hardware.biometrics.fingerprint@2.3-service.bangkk.xml similarity index 100% rename from fingerprint/android.hardware.biometrics.fingerprint@2.3-service.dubai.xml rename to fingerprint/android.hardware.biometrics.fingerprint@2.3-service.bangkk.xml diff --git a/fingerprint/service.cpp b/fingerprint/service.cpp index 7a3b091..abf5dd5 100644 --- a/fingerprint/service.cpp +++ b/fingerprint/service.cpp @@ -14,7 +14,7 @@ * limitations under the License. */ -#define LOG_TAG "android.hardware.biometrics.fingerprint@2.3-service.dubai" +#define LOG_TAG "android.hardware.biometrics.fingerprint@2.3-service.bangkk" #include #include #include "BiometricsFingerprint.h" diff --git a/lineage.dependencies b/lineage.dependencies index 76799e5..f8ef9af 100644 --- a/lineage.dependencies +++ b/lineage.dependencies @@ -1,6 +1,6 @@ [ { - "repository": "android_device_motorola_sm7325-common", + "repository": "android_device_motorola_sm6375-common", "target_path": "device/motorola/sm7325-common" } ] diff --git a/lineage_dubai.mk b/lineage_bangkk.mk similarity index 57% rename from lineage_dubai.mk rename to lineage_bangkk.mk index bd4d27d..556d083 100644 --- a/lineage_dubai.mk +++ b/lineage_bangkk.mk @@ -8,22 +8,22 @@ $(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk) $(call inherit-product, $(SRC_TARGET_DIR)/product/full_base_telephony.mk) -# Inherit from dubai device -$(call inherit-product, device/motorola/dubai/device.mk) +# Inherit from bangkk device +$(call inherit-product, device/motorola/bangkk/device.mk) # Inherit some common Lineage stuff. $(call inherit-product, vendor/lineage/config/common_full_phone.mk) -PRODUCT_NAME := lineage_dubai -PRODUCT_DEVICE := dubai +PRODUCT_NAME := lineage_bangkk +PRODUCT_DEVICE := bangkk PRODUCT_MANUFACTURER := motorola PRODUCT_BRAND := motorola -PRODUCT_MODEL := motorola edge 30 +PRODUCT_MODEL := moto g84 5G PRODUCT_GMS_CLIENTID_BASE := android-motorola PRODUCT_BUILD_PROP_OVERRIDES += \ - TARGET_PRODUCT=dubai_g \ - PRIVATE_BUILD_DESC="dubai_g-user 13 T1RDS33.116-33-15-6 e089e7-b95537 release-keys" + TARGET_PRODUCT=bangkk_g \ + PRIVATE_BUILD_DESC="bangkk_g-user 14 U1TC34M.22-64-18 48c0d4 release-keys" -BUILD_FINGERPRINT := motorola/dubai_g/dubai:13/T1RDS33.116-33-15-6/e089e7-b95537:user/release-keys +BUILD_FINGERPRINT := motorola/bangkk_g/bangkk:14/U1TC34M.22-64-18/48c0d4:user/release-keys diff --git a/manifest_dubai.xml b/manifest_bangkk.xml similarity index 100% rename from manifest_dubai.xml rename to manifest_bangkk.xml diff --git a/modules.blocklist b/modules.blocklist index b5e1237..dd62766 100644 --- a/modules.blocklist +++ b/modules.blocklist @@ -84,8 +84,6 @@ blocklist vmw_vsock_virtio_transport blocklist vmw_vsock_virtio_transport_common blocklist vsock_diag blocklist vsock -blocklist qca_cld3_wlan -blocklist qca_cld3_qca6390 blocklist torture blocklist locktorture blocklist rcutorture @@ -93,11 +91,20 @@ blocklist rcutorture # # Motorola platform module block list # - blocklist utags +blocklist watchdogtest +blocklist moto_f_usbnet # Copyright (c) 2019-2020, The Linux Foundation. All rights reserved. # # Motorola product module block list # - +blocklist fpsensor_spi_tee +blocklist fpc1020_mmi +blocklist qpnp_adaptive_charge +blocklist nova_0flash_mmi +blocklist leds_aw99703 +blocklist leds_lm3697 +blocklist focaltech_0flash_v2_mmi +blocklist mmi_smbcharger_iio +blocklist mmi_parallel_charger_iio diff --git a/modules.load b/modules.load index cfb5e4c..9613c20 100644 --- a/modules.load +++ b/modules.load @@ -1,110 +1,66 @@ -stub_dlkm.ko -machine_dlkm.ko -fc2580.ko -mt2063.ko -tda9887.ko -apr_dlkm.ko -mxl5005s.ko -xc4000.ko -tuner-xc2028.ko -radio-i2c-rtc6226-qca.ko -max2165.ko -qt1010.ko -slimbus-ngd.ko -llcc_perfmon.ko -platform_dlkm.ko -wsa883x_dlkm.ko -tea5767.ko -msi001.ko -qm1d1c0042.ko -fc0013.ko -btpower.ko -tua9001.ko -m88rs6000t.ko -qcom_edac.ko -fc0011.ko -wcd937x_dlkm.ko pinctrl_lpi_dlkm.ko -fc0012.ko -aw882xx_k504.ko -mt20xx.ko -xc5000.ko -wcd9xxx_dlkm.ko -bt_fm_slim.ko -tea5761.ko -rx_macro_dlkm.ko -pinctrl_wcd_dlkm.ko -wsa_macro_dlkm.ko -adsp_loader_dlkm.ko -wcd938x_dlkm.ko -q6_dlkm.ko -hdmi_dlkm.ko -swr_haptics_dlkm.ko -tda18218.ko -msm_drm.ko -tda18212.ko +aw87xxx_dlkm.ko wcd937x_slave_dlkm.ko -mt2060.ko -q6_notifier_dlkm.ko -tuner-simple.ko -snd_event_dlkm.ko -mc44s803.ko -wcd_core_dlkm.ko -qm1d1b0004.ko -tda18250.ko -mbhc_dlkm.ko -tuner-types.ko -si2157.ko -mt2131.ko -slimbus.ko -native_dlkm.ko -va_macro_dlkm.ko -hid-aksys.ko -mt2266.ko -bolero_cdc_dlkm.ko -mxl5007t.ko -wcd938x_slave_dlkm.ko +platform_dlkm.ko +wcd938x_dlkm.ko +lzo_decompress.ko q6_pdr_dlkm.ko -e4000.ko -it913x.ko -swr_ctrl_dlkm.ko -mxl301rf.ko -swr_dlkm.ko -rdbg.ko -swr_dmic_dlkm.ko -r820t.ko -camera.ko +wcd_core_dlkm.ko +q6_dlkm.ko +mbhc_dlkm.ko tx_macro_dlkm.ko +swr_ctrl_dlkm.ko +swr_dlkm.ko +sec_nfc.ko +snd_event_dlkm.ko +aw882xx_acf.ko +rdbg.ko +zram.ko +wcd937x_dlkm.ko +camera.ko +machine_dlkm.ko +wsa881x_analog_dlkm.ko +lzo-rle.ko +native_dlkm.ko +lzo.ko +stub_dlkm.ko +aw882xx_k419.ko +wcd9xxx_dlkm.ko +btpower.ko +va_macro_dlkm.ko +bolero_cdc_dlkm.ko +adsp_loader_dlkm.ko +apr_dlkm.ko +lzo_compress.ko +q6_notifier_dlkm.ko +bt_fm_slim.ko +rx_macro_dlkm.ko +wcd938x_slave_dlkm.ko wlan.ko rmnet_core.ko rmnet_ctl.ko rmnet_offload.ko rmnet_shs.ko utags.ko +mmi_relay.ko mmi_info.ko mmi_annotate.ko sensors_class.ko -watchdogtest.ko exfat.ko -bm_adsp_ulog.ko -mmi_charger.ko -qti_glink_charger.ko -qpnp_adaptive_charge.ko -cirrus_wm_adsp.ko -cirrus_cs35l41.ko -cirrus_cs35l45.ko -aw862x.ko -mmi_info.ko -mmi_relay.ko -wl2864c.ko -cci_intf.ko -st21nfc.ko -nfc_i2c.ko -sx937x_sar.ko moto_f_usbnet.ko -touchscreen_mmi.ko -goodix_brl_mmi.ko +watchdogtest.ko +qpnp_adaptive_charge.ko +rbs_fod_mmi.ko +sx937x_sar.ko +awinic_sar.ko mmi_sys_temp.ko -rbs_fps_mmi.ko -mmi_info.ko -mmi_annotate.ko +ldo_vibrator_mmi.ko +touchscreen_mmi.ko +focaltech_v3.ko +goodix_brl_mmi.ko +cci_intf.ko +bq25980_mmi_iio.ko +mmi-smbcharger-iio.ko +mmi_parallel_charger_iio.ko +moto_mm.ko +moto_swap.ko diff --git a/modules.load.recovery b/modules.load.recovery index 399dce7..15f3819 100644 --- a/modules.load.recovery +++ b/modules.load.recovery @@ -1,7 +1,10 @@ +focaltech_v3.ko +goodix_brl_mmi.ko msm_drm.ko mmi_relay.ko -sensors_class.ko -touchscreen_mmi.ko mmi_annotate.ko mmi_info.ko -goodix_brl_mmi.ko +mmi_parallel_charger_iio.ko +mmi-smbcharger-iio.ko +touchscreen_mmi.ko +sensors_class.ko diff --git a/proprietary-files.txt b/proprietary-files.txt index 2b7f554..6c0c529 100644 --- a/proprietary-files.txt +++ b/proprietary-files.txt @@ -1,6 +1,6 @@ -# All unpinned blobs below are extracted from dubai_g-user 13 T1RDS33.116-33-15-6 e089e7-b95537 release-keys - RETAIL variant. +# All unpinned blobs are extracted from bangkk_g-user 14 U1TC34M.22-64-18 48c0d4 release-keys -# ACDB Data +# ACDB-data vendor/etc/acdbdata/Bluetooth_cal.acdb vendor/etc/acdbdata/General_cal.acdb vendor/etc/acdbdata/Global_cal.acdb @@ -13,16 +13,12 @@ vendor/etc/acdbdata/nn_ns_models/candidate__2.7.1.31__3.0.0__eai_1.10_enpu1.pmd vendor/etc/acdbdata/nn_ns_models/fai__2.0.0_0.1__3.0.0_0.0__eai_1.00.pmd vendor/etc/acdbdata/nn_ns_models/fai__2.2.0_0.1__3.0.0_0.0__eai_1.00.pmd vendor/etc/acdbdata/nn_ns_models/fai__2.6.1_0.0__eai_v1.10.pmd +vendor/etc/acdbdata/nn_ns_models/fai__2.6.3_0.0__3.0.0_0.0__eai_1.10.pmd vendor/etc/acdbdata/nn_ns_models/fai__2.6.3_0.0__3.0.0_0.0__eai_1.10_enpu1.pmd +vendor/etc/acdbdata/nn_ns_models/fai__2.6.3_0.0__3.0.0_0.0__eai_1.36_enpu2.pmd vendor/etc/acdbdata/nn_ns_models/fai__2.7.4_0.0__3.0.0_0.0__eai_1.10_enpu1.pmd vendor/etc/acdbdata/nn_vad_models/fai_3.0.0_0.0_eai_1.00.pmd -# Audio firmware -vendor/firmware/aw882xx_pid_1852_acf.bin -vendor/firmware/aw882xx_pid_2113_acf.bin -vendor/firmware/aw882xx_spk_reg.bin -vendor/firmware/aw_skt.bin - # Audio libraries vendor/lib/libacdbloader.so vendor/lib64/libacdbloader.so @@ -33,12 +29,10 @@ vendor/lib64/camera/fdconfigpreview.bin vendor/lib64/camera/fdconfigpreviewlite.bin vendor/lib64/camera/fdconfigvideo.bin vendor/lib64/camera/fdconfigvideolite.bin +vendor/lib64/camera/com.qti.flash.aw36514.so +vendor/lib64/camera/com.qti.flash.ocp81373.so vendor/lib64/com.qti.chiusecaseselector.so -vendor/lib64/com.qti.settings.kamorta.so -vendor/lib64/com.qti.settings.kodiak.so vendor/lib64/com.qti.settings.mannar.so -vendor/lib64/com.qti.settings.sdm865.so -vendor/lib64/com.qti.settings.sm8350.so vendor/lib64/com.qti.stats.common.so vendor/lib64/com.qualcomm.mcx.distortionmapper.so vendor/lib64/com.qualcomm.mcx.linearmapper.so @@ -46,23 +40,10 @@ vendor/lib64/com.qualcomm.mcx.policy.mfl.so vendor/lib64/com.qualcomm.qti.mcx.usecase.extension.so vendor/lib64/hw/camera.qcom.so vendor/lib64/hw/com.qti.chi.override.so -vendor/lib64/libFace3DTA.so -vendor/lib64/libFace3D_hlos.so -vendor/lib64/libQ6MSFR_manager_stub.so -vendor/lib64/libQnnHtp.so -vendor/lib64/libQnnHtpV68Stub.so -vendor/lib64/libaidenoiser.so -vendor/lib64/libaidenoiserv2.so +vendor/lib64/libBSTSWAD.so vendor/lib64/libarcsoft_chi_utils.so -vendor/lib64/libarcsoft_distortion_correction.so -vendor/lib64/libarcsoft_dual_sat.so -vendor/lib64/libarcsoft_dual_zoomtranslator.so -vendor/lib64/libarcsoft_hdr_detection.so -vendor/lib64/libarcsoft_high_dynamic_range.so -vendor/lib64/libarcsoft_portrait_distortion_correction.so -vendor/lib64/libarcsoft_portrait_super_night_raw.so +vendor/lib64/libarcsoft_low_light_shot.so vendor/lib64/libarcsoft_portrait_super_night_se_raw.so -vendor/lib64/libarcsoft_qnnhtp.so vendor/lib64/libarcsoft_super_night_raw.so vendor/lib64/libarcsoft_super_night_se_raw.so vendor/lib64/libbitmlengine.so @@ -75,21 +56,20 @@ vendor/lib64/libcamxfacialfeatures.so vendor/lib64/libcamxfdalgo.so vendor/lib64/libcamxfdengine.so vendor/lib64/libcamxifestriping.so +vendor/lib64/libcamxifestriping.so vendor/lib64/libcamximageformatutils.so vendor/lib64/libcamxqsatalgo.so vendor/lib64/libcamxstatscore.so vendor/lib64/libcamxswispiqmodule.so vendor/lib64/libcamxswprocessalgo.so vendor/lib64/libcamxtintlessalgo.so +vendor/lib64/libcapiv2svacnn.so +vendor/lib64/libcapiv2svarnn.so +vendor/lib64/libcapiv2vop.so vendor/lib64/libchilog.so vendor/lib64/libcom.qti.chinodeutils.so -vendor/lib64/libdualcam_optical_zoom_control.so -vendor/lib64/libdualcam_video_optical_zoom.so -vendor/lib64/libface3d_dev.so -vendor/lib64/libipebpsstriping.so -vendor/lib64/libipebpsstriping170.so vendor/lib64/libjpege.so -vendor/lib64/libmfec.so +vendor/lib64/libmctfengine_stub.so vendor/lib64/libmmcamera_bestats.so vendor/lib64/libmmcamera_cac3.so vendor/lib64/libmmcamera_faceproc.so @@ -101,39 +81,36 @@ vendor/lib64/libmmcamera_pdpc.so vendor/lib64/libmot_afd.so vendor/lib64/libmot_chi_desktop_helper.so vendor/lib64/libmot_engine_settings.so -vendor/lib64/libmotoisdataqueue.so vendor/lib64/libmpbase.so vendor/lib64/libofflinedump.so vendor/lib64/libofflinelog.so vendor/lib64/libopencv.so vendor/lib64/libopestriping.so -vendor/lib64/libos.so -vendor/lib64/libpowercore.so -vendor/lib64/libqll10.so -vendor/lib64/libqllengine.so vendor/lib64/libremosaic_wrapper.so +vendor/lib64/libsns_device_mode_stub.so +vendor/lib64/libsns_fastRPC_util.so +vendor/lib64/libsns_low_lat_stream_stub.so +vendor/lib64/libsnsdiaglog.so vendor/lib64/libswregistrationalgo.so -vendor/lib64/libsynx.so vendor/lib64/libtfestriping.so -vendor/lib64/libthreadutils.so +vendor/lib64/libundistort_impl.so vendor/lib64/libvideooptfeature.so vendor/lib64/libvidhance.so -vendor/lib64/libvidhance_active_ois.so -vendor/lib64/libvidhance_dmbr.so -vendor/lib64/libvidhance_face_stabilizer.so -vendor/lib64/libvidhance_fbc.so -vendor/lib64/libvidhance_horizon_correction.so -vendor/lib64/libvidhance_stabilizer.so -vendor/lib64/libvidhance_zoom_stabilization.so vendor/lib64/vendor.qti.hardware.camera.postproc@1.0-service-impl.so +# Camera - Motorola +vendor/bin/hw/motorola.hardware.camera.desktop@2.0-service +vendor/etc/init/motorola.hardware.camera.desktop@2.0-service.rc +vendor/etc/init/motorola.hardware.camera.imgtuner@2.0-service.rc +vendor/lib64/motorola.hardware.camera.desktop@1.0.so +vendor/lib64/motorola.hardware.camera.desktop@2.0.so + # Camera - Components -vendor/lib64/camera/components/com.arcsoft.node.smooth_transition.so +vendor/lib64/camera/components/com.arcsoft.node.mfnr.so vendor/lib64/camera/components/com.arcsoft.node.supernightraw.so vendor/lib64/camera/components/com.mot.node.c2d.so vendor/lib64/camera/components/com.mot.node.dc_capture.so -vendor/lib64/camera/components/com.mot.node.hdr.so -vendor/lib64/camera/components/com.mot.node.scene_detect.so +vendor/lib64/camera/components/com.mot.node.dc_preview.so vendor/lib64/camera/components/com.qti.camx.chiiqutils.so vendor/lib64/camera/components/com.qti.eisv2.so vendor/lib64/camera/components/com.qti.eisv3.so @@ -156,8 +133,6 @@ vendor/lib64/camera/components/com.qti.node.stich.so vendor/lib64/camera/components/com.qti.node.swaidenoiser.so vendor/lib64/camera/components/com.qti.node.swbestats.so vendor/lib64/camera/components/com.qti.node.swcac.so -vendor/lib64/camera/components/com.qti.node.swec.so -vendor/lib64/camera/components/com.qti.node.swfusion.so vendor/lib64/camera/components/com.qti.node.swlsc.so vendor/lib64/camera/components/com.qti.node.swmctf.so vendor/lib64/camera/components/com.qti.node.swmfnr.so @@ -179,98 +154,74 @@ vendor/lib64/camera/components/com.qti.stats.hafoverride.so vendor/lib64/camera/components/com.qti.stats.pdlib.so vendor/lib64/camera/components/com.qti.stats.pdlibsony.so vendor/lib64/camera/components/com.qti.stats.pdlibwrapper.so -vendor/lib64/camera/components/com.qti.stats.tracker.so vendor/lib64/camera/components/com.qtistatic.stats.aec.so vendor/lib64/camera/components/com.qtistatic.stats.af.so vendor/lib64/camera/components/com.qtistatic.stats.awb.so vendor/lib64/camera/components/com.qtistatic.stats.pdlib.so vendor/lib64/camera/components/com.vidhance.node.ica.so vendor/lib64/camera/components/com.vidhance.node.processing.so -vendor/lib64/camera/components/com.vidhance.stats.aec_dmbr.so vendor/lib64/camera/components/libdepthmapwrapper_secure.so -# Camera - eeprom -vendor/lib64/camera/com.mot.eeprom.mot_dubai_gc02m1b_otp.so -vendor/lib64/camera/com.mot.eeprom.mot_gt24p128e_ov50a_eeprom.so -vendor/lib64/camera/com.mot.eeprom.mot_gt24p128e_s5kjn1_eeprom.so -vendor/lib64/camera/com.mot.eeprom.mot_gt24p64e_ov32b40_eeprom.so - -# Camera - etc -vendor/etc/camera/aec_golden_depth.bin -vendor/etc/camera/aec_golden_wide.bin -vendor/etc/camera/arcsoft_calibration_u_dc.bin -vendor/etc/camera/dual_golden_depth.bin -vendor/etc/camera/dual_golden_wide.bin -vendor/etc/camera/mot_engine_config.bin -vendor/etc/camera/vidhance_calibration - # Camera - feature2 vendor/lib64/com.qti.feature2.anchorsync.so vendor/lib64/com.qti.feature2.arcrawpro.so vendor/lib64/com.qti.feature2.demux.so -vendor/lib64/com.qti.feature2.derivedoffline.so vendor/lib64/com.qti.feature2.frameselect.so vendor/lib64/com.qti.feature2.fusion.so vendor/lib64/com.qti.feature2.generic.so -vendor/lib64/com.qti.feature2.gs.cedros.so -vendor/lib64/com.qti.feature2.gs.kamorta.so -vendor/lib64/com.qti.feature2.gs.kodiak.so vendor/lib64/com.qti.feature2.gs.mannar.so -vendor/lib64/com.qti.feature2.gs.sdm865.so -vendor/lib64/com.qti.feature2.gs.sm8350.so vendor/lib64/com.qti.feature2.hdr.so vendor/lib64/com.qti.feature2.mcreprocrt.so vendor/lib64/com.qti.feature2.memcpy.so vendor/lib64/com.qti.feature2.mfsr.so -vendor/lib64/com.qti.feature2.ml.so vendor/lib64/com.qti.feature2.mux.so -vendor/lib64/com.qti.feature2.qcfa.so vendor/lib64/com.qti.feature2.rawhdr.so vendor/lib64/com.qti.feature2.realtimeserializer.so vendor/lib64/com.qti.feature2.rt.so vendor/lib64/com.qti.feature2.rtmcx.so vendor/lib64/com.qti.feature2.serializer.so -vendor/lib64/com.qti.feature2.statsregeneration.so -vendor/lib64/com.qti.feature2.stub.so vendor/lib64/com.qti.feature2.swmf.so -# Camera - ICP -vendor/firmware/CAMERA_ICP_170.elf +# Camera - etc +vendor/etc/camera/SwadAIMod.bin +vendor/etc/camera/SwadCalib.bin +vendor/etc/camera/SwadParamList.txt +vendor/etc/camera/aec_golden_wide.bin +vendor/etc/camera/anc_detect_model +vendor/etc/camera/anc_track_model +vendor/etc/camera/dual_golden_wide.bin +vendor/etc/camera/vidhance.lic +vendor/etc/camera/vidhance_calibration -# Camera - Motorola -product/etc/permissions/com.motorola.camera3.dubai.xml:vendor/etc/permissions/com.motorola.camera3.dubai.xml -vendor/bin/hw/motorola.hardware.camera.desktop@2.0-service -vendor/etc/init/motorola.hardware.camera.desktop@2.0-service.rc -vendor/etc/init/motorola.hardware.camera.imgtuner@1.0-service.rc -vendor/lib64/motorola.hardware.camera.desktop@1.0.so -vendor/lib64/motorola.hardware.camera.desktop@2.0.so +# Camera - eeprom +vendor/lib64/camera/com.mot.eeprom.mot_bangkk_s5k4h7_otp.so +vendor/lib64/camera/com.mot.eeprom.mot_gt24p128f_s5kgn9_eeprom.so +vendor/lib64/camera/com.mot.eeprom.mot_gt24p64b_ov16a1q_eeprom.so -# Camera - OIS -vendor/firmware/mot_dw9781c.prog - -# Camera - sensor -vendor/lib64/camera/com.qti.sensor.mot_gc02m1b.so -vendor/lib64/camera/com.qti.sensor.mot_ov32b40.so -vendor/lib64/camera/com.qti.sensor.mot_ov50a.so -vendor/lib64/camera/com.qti.sensor.mot_s5kjn1.so -vendor/lib64/camera/com.qti.sensormodule.mot_dubai_gc02m1b_tsp.bin -vendor/lib64/camera/com.qti.sensormodule.mot_dubai_ov32b40_ofilm.bin -vendor/lib64/camera/com.qti.sensormodule.mot_dubai_ov50a_sunny.bin -vendor/lib64/camera/com.qti.sensormodule.mot_dubai_s5kjn1_qtech.bin +# Camera - sensors +vendor/lib64/camera/com.qti.sensor.mot_ov16a1q.so +vendor/lib64/camera/com.qti.sensor.mot_s5k4h7.so +vendor/lib64/camera/com.qti.sensor.mot_s5kgn9.so +vendor/lib64/camera/com.qti.sensormodule.mot_bangkk_ov16a1q_ofilm.bin +vendor/lib64/camera/com.qti.sensormodule.mot_bangkk_s5k4h7_qtech.bin +vendor/lib64/camera/com.qti.sensormodule.mot_bangkk_s5kgn9_ak7377.bin +vendor/lib64/camera/com.qti.sensormodule.mot_bangkk_s5kgn9_ofilm.bin # Camera - tuned vendor/lib64/camera/com.qti.tuned.default.bin -vendor/lib64/camera/com.qti.tuned.mot_dubai_gc02m1b.bin -vendor/lib64/camera/com.qti.tuned.mot_dubai_ov32b40.bin -vendor/lib64/camera/com.qti.tuned.mot_dubai_ov50a.bin -vendor/lib64/camera/com.qti.tuned.mot_dubai_s5kjn1.bin +vendor/lib64/camera/com.qti.tuned.mot_bangkk_ov16a1q.bin +vendor/lib64/camera/com.qti.tuned.mot_bangkk_ov16a1q_india.bin +vendor/lib64/camera/com.qti.tuned.mot_bangkk_s5k4h7af.bin +vendor/lib64/camera/com.qti.tuned.mot_bangkk_s5k4h7af_india.bin +vendor/lib64/camera/com.qti.tuned.mot_bangkk_s5kgn9.bin +vendor/lib64/camera/com.qti.tuned.mot_bangkk_s5kgn9_ak7377.bin +vendor/lib64/camera/com.qti.tuned.mot_bangkk_s5kgn9_ak7377_india.bin +vendor/lib64/camera/com.qti.tuned.mot_bangkk_s5kgn9_india.bin # Display calibration data -vendor/etc/qdcm_calib_data_mipi_mot_cmd_csot_1080p_dsc_655.xml -vendor/etc/qdcm_calib_data_mipi_mot_cmd_tm_1080p_dsc_655.xml -vendor/etc/qdcm_calib_data_nt36672e_60_Hz_fhd_plus_video_mode_panel_without_DSC.xml -vendor/etc/qdcm_calib_data_nt36672e_fhd_plus_120Hz_Video_panel.xml -vendor/etc/qdcm_calib_data_nt36672e_fhd_plus_144Hz_video_panel.xml +vendor/etc/qdcm_calib_data_mipi_moto_vid_csot_1080p_dsc_655.xml +vendor/etc/qdcm_calib_data_mipi_moto_vid_tm_1080p_dsc_655.xml +vendor/etc/qdcm_calib_data_mipi_moto_vid_tm_u8_1080p_dsc_655.xml # Fingerprint vendor/bin/hw/android.hardware.biometrics.fingerprint@2.1-service-ets @@ -280,85 +231,36 @@ vendor/lib64/libets_teeclient_v3.so vendor/lib64/vendor.egistec.hardware.fingerprint@4.0.so vendor/lib64/vendor.qti.hardware.fingerprint@1.0.so +# Firmware - From Bangkk +vendor/firmware/aw87xxx_acf.bin +vendor/firmware/aw963xx_reg_0.bin +vendor/firmware/csot_focal_test_limits.ini +vendor/firmware/focaltech-csot-ft3681-26-0000-bangkk.bin +vendor/firmware/goodix-tm-gt9916S-23062705-649a9b6c-bangkk.bin +vendor/firmware/mot_aw86006.prog +vendor/firmware/mot_dw9784.prog +vendor/firmware/sec_s3nrn4v_firmware.bin +vendor/firmware/tm_goodix_cfg_group.bin + # HotwordEnrollment -product/priv-app/HotwordEnrollmentOKGoogleHEXAGON_WIDEBAND/HotwordEnrollmentOKGoogleHEXAGON_WIDEBAND.apk -product/priv-app/HotwordEnrollmentXGoogleHEXAGON_WIDEBAND/HotwordEnrollmentXGoogleHEXAGON_WIDEBAND.apk system_ext/etc/permissions/com.android.hotwordenrollment.common.util.xml system_ext/framework/com.android.hotwordenrollment.common.util.jar -# MotCamera4 - from dubai - dubai_g-user 13 T1RDS33.116-33-15-1 06f6d-c0e7b release-keys - RETAIL variant -product/app/MotCamera3AI/MotCamera3AI.apk;PRESIGNED|44b210e8a14092edf50396182eb37818c24a10e4 -product/etc/init/init.motcamera3.lens.rc|293260214b3b60496fb61709276295f17036f506 -product/priv-app/MotCamera4/MotCamera4.apk|8f945fa4439d7166536e7e2a8acff563d1aee334 -product/lib64/libAncHumanSegFigureFusion-jni.so|29b3f53abf695f59093fa789cffaf79771b49568 -product/lib64/libFNVfbEngineHAL_legacy.so|228508501f39e855c89df1463f4a44e2cb085540 -product/lib64/libNvBeautyEffect.so|cd80f5049b2f668379f1d3ecbf6e6206de20a46d -product/lib64/libSNPE.so|a90efc5216de3cc3f20fb70f3e1ee567729f02f0 -product/lib64/libSuperSensorCPU_v05052021.so|22378fd888fc13dac8f46a250f101dbcdb6d44bc -product/lib64/libSuperSensorProcessorCWrapper_v2.so|7e66994ee9b8c7d637afb58e0e341e5c94cf23a2 -product/lib64/libSuperSensorProcessor_v05052021.so|2c9204b230bddd089070e5b9238c85b9fe6d94f8 -product/lib64/libSuperSensor_v05052021.so|dfbfc247087c8f9dfc86401918c8026b06eaf4a5 -product/lib64/libarcsoft_dualcam_refocus.so|4e8778a48d5d9bb33ef85063ee4b9dbedfb858e2 -product/lib64/libarcsoft_frc.so|dab92e6bd066b44bb557f24c9cb2c587df2aab46 -product/lib64/libarcsoft_hdr_detection.so|b9c9d06189c7394c1a1780e7b434a58993035b49 -product/lib64/libarcsoft_hdr_scbokeh_image.so|2c2d9e9c173ed5516a7e425e6b1b1ee0b9f1d1a8 -product/lib64/libarcsoft_high_dynamic_range.so|5b377a50612bafb30af4cb271327053abfe88a32 -product/lib64/libarcsoft_multiframe_bokeh_image.so|a2ac6da70a9bc9d42ac5287127bb8faa7951a05c -product/lib64/libarcsoft_scbokeh_Generic.so|5f51996cb89299b9c222bc211a514db3b1d398b8 -product/lib64/libas-super-slow-motion.so|a323551fbfce86d4951e964a2e94f289c0190d79 -product/lib64/libbarhopper_v3.so|156387210e424f30d2642edeff2a549d77808abd -product/lib64/libbg-postproc-jni.so|8c9d3dc74ef641c5456640451c70cfb6507f56f2 -product/lib64/libc++.so|e8707820517ab7713b8ca6ac4462361e00629c26 -product/lib64/libc++_shared.so|dbbd9e4d06e2566c31bdc744dd7391536a780cc6 -product/lib64/libcamerax_extension_jni.so|58f91e63adf1a7642b9f2c5fc5be915a6896c111 -product/lib64/libdoc-util.so|4a81cced80dcce4869446f9970509ded771ca89b -product/lib64/libdynamic_depth.so|515f03132a086f15c565dd89b192ede5eeca7e29 -product/lib64/libfn-beauty-vfb-legacy-base.so|f0a72449ee71ed63aecbd5783576c2f3ad5fa5cb -product/lib64/libfoundation.so|fedb660a03cff0cd51a11be5472c550ad8f0482a -product/lib64/libgg-dynamic_depth.so|5019a87cd8795e5d5a498971cfa5cbcaa3b0fb1e -product/lib64/libgg-tensorflow-lite.so|339239bd3e9efbfa6379f07f0d2d7496b10a3d74 -product/lib64/libgif.so|310d708f0c9b60c065514c1e3f1534c8ba347c7d -product/lib64/libjpeg.so|a51f6dde2a6d7eb11378a2575a5e6bf625a15bbb -product/lib64/liblenovo_panorama.so|13c8b6cc2366eea46c5fcb7eb3665a5ba5d38ed4 -product/lib64/libmcf-base.so|879813b31805da7ea3f8cf6409b142a7b13cf66b -product/lib64/libmcf-jni.so|f65dd95befd29203caf6ad219c9cf580e15a05d0 -product/lib64/libmcf-qc-fd-offline_local.so|99d2dbab152e22d6ae3d552cee3a172fc886ba24 -product/lib64/libmcf-stand-alone-sm.so|dd8c3309f8835b20086c3f888a90031c7869fb77 -product/lib64/libmeishe-nv-effects-thumbnails.so|a98f88462d5e129c19d3007c73151cdf98f83cfa -product/lib64/libmmcamera_faceproc2.so|1c732d58bf24c939f568cda340318e5b873dce3b -product/lib64/libmorpho_cinema_graph.so|c689a3734f6963b6ad4be3a9ddfae00c1c82acb0 -product/lib64/libmorpho_panorama_gp3.so|239287acb6bbb790b793538030d219742a1ff5d0 -product/lib64/libmorpho_panorama_gp3_core.so|af05f89eb7d96b5980337361b4cd082eeb52d400 -product/lib64/libmorpho_sensor_fusion.so|bbbdfc2b980c3c5810a7d26f14c735c1b64a2af9 -product/lib64/libmot-cinemagraph-engine.so|436fec2e80ab8775e6337c42ddf0a4961dcde600 -product/lib64/libmot-util.so|db7ea99db0b906e6ef0ced21d10e5530b3bd106b -product/lib64/libmpbase.so|07021c39abbc5c8538f6df1876a3eb3015ff9c2a -product/lib64/libqc-snpe.so|d56cb26ade27bbd4f3ce3d193982fa33523394cb -product/lib64/libsmart_ppt.so|1ba24a17a049e175e5509a9ea1cba38940159efc -product/lib64/libtensorflowlite.so|17f94dc427220788db8f10d658d3a330488ac7d6 -product/lib64/libtensorflowlite_gpu_delegate.so|821bcbece27d47c49daac00a65fdf48213befad1 - -# MotCamera4 - Permissions -product/etc/permissions/com.motorola.camera3.content.ai.xml -product/etc/permissions/com.motorola.camera3.dubai.xml -product/etc/permissions/com.motorola.camera3.lens.xml -product/etc/permissions/com.motorola.camera3.xml -product/etc/permissions/deviceowner-configuration-com.motorola.camera3.xml -product/etc/permissions/privapp-permissions-com.motorola.camera3.xml -product/etc/sysconfig/hiddenapi-whitelist-com.motorola.camera3.xml - # NFC -vendor/bin/STFlashTool - -# NFC - configs -vendor/etc/libnfc-hal-st.conf -vendor/etc/libnfc-nci-st.conf -vendor/etc/st21nfc_conf_ds.txt -vendor/etc/st21nfc_conf_ss.txt - -# NFC firmware -vendor/firmware/st21nfc_fw.bin -vendor/firmware/st21nfc_fw7.bin +vendor/etc/libnfc-PN557.conf +vendor/etc/libnfc-SN220-UICC.conf +vendor/etc/libnfc-SN220.conf +vendor/etc/libnfc-mtp-SN100-UICC.conf +vendor/etc/libnfc-mtp-SN100.conf +vendor/etc/libnfc-mtp-SN100_38_4MHZ.conf +vendor/etc/libnfc-nxp-pnscr.conf +vendor/etc/libnfc-qrd-SN100.conf +vendor/etc/libnfc-qrd-SN100_38_4MHZ.conf +vendor/etc/libnfc-sec-nci.conf +vendor/etc/libnfc-sec-vendor.conf +vendor/etc/nfc_calibration.txt # OEM vendor/etc/vhw.xml @@ -367,17 +269,8 @@ vendor/etc/vhw.xml vendor/lib64/sensors.moto.so vendor/lib64/sensors.ssc.so -# Sensor - configs -vendor/etc/sensors/config/icm4x6xx.json -vendor/etc/sensors/config/kodiak_default_sensors.json -vendor/etc/sensors/config/kodiak_dynamic_sensors.json -vendor/etc/sensors/config/kodiak_irq.json -vendor/etc/sensors/config/kodiak_power_0.json -vendor/etc/sensors/config/lsm6dso_0.json -vendor/etc/sensors/config/mmc5603x_0.json +# Sensors Configs vendor/etc/sensors/config/mot_camgest.json -vendor/etc/sensors/config/mot_devorient.json -vendor/etc/sensors/config/mxg4300_0.json vendor/etc/sensors/config/sns_amd.json vendor/etc/sensors/config/sns_amd_sw_disabled.json vendor/etc/sensors/config/sns_amd_sw_enabled.json @@ -413,8 +306,13 @@ vendor/etc/sensors/config/sns_tilt_sw_disabled.json vendor/etc/sensors/config/sns_tilt_sw_enabled.json vendor/etc/sensors/config/sns_tilt_to_wake.json vendor/etc/sensors/config/sns_wrist_pedo.json -vendor/etc/sensors/config/stk3a5x_0.json -vendor/etc/sensors/proto/als_mastercal.proto +vendor/etc/sensors/config/strait_default_sensors.json +vendor/etc/sensors/config/strait_dynamic_sensors.json +vendor/etc/sensors/config/strait_lsm6dso_0.json +vendor/etc/sensors/config/strait_mmc56x3x_0.json +vendor/etc/sensors/config/strait_mn78xxx_0.json +vendor/etc/sensors/config/strait_power_0.json +vendor/etc/sensors/config/strait_qmc6308_0.json vendor/etc/sensors/proto/descriptor.proto vendor/etc/sensors/proto/mot_barocal.proto vendor/etc/sensors/proto/mot_camgest.proto @@ -432,7 +330,6 @@ vendor/etc/sensors/proto/mot_offbody.proto vendor/etc/sensors/proto/mot_probe.proto vendor/etc/sensors/proto/mot_proxcal.proto vendor/etc/sensors/proto/mot_stowed.proto -vendor/etc/sensors/proto/mot_tap.proto vendor/etc/sensors/proto/mot_vsync.proto vendor/etc/sensors/proto/nanopb.proto vendor/etc/sensors/proto/sns_accel.proto @@ -458,6 +355,7 @@ vendor/etc/sensors/proto/sns_ext_svc.proto vendor/etc/sensors/proto/sns_facing.proto vendor/etc/sensors/proto/sns_fmv.proto vendor/etc/sensors/proto/sns_formatter.proto +vendor/etc/sensors/proto/sns_formatter_notify.proto vendor/etc/sensors/proto/sns_fw.proto vendor/etc/sensors/proto/sns_game_rv.proto vendor/etc/sensors/proto/sns_geomag_rv.proto @@ -475,7 +373,6 @@ vendor/etc/sensors/proto/sns_mag_cal.proto vendor/etc/sensors/proto/sns_mot_factory_cal.proto vendor/etc/sensors/proto/sns_oem1.proto vendor/etc/sensors/proto/sns_offbody_detect.proto -vendor/etc/sensors/proto/sns_panel_status.proto vendor/etc/sensors/proto/sns_pedometer.proto vendor/etc/sensors/proto/sns_pedometer_wrist.proto vendor/etc/sensors/proto/sns_physical_sensor_test.proto @@ -502,35 +399,14 @@ vendor/etc/sensors/proto/sns_thermopile.proto vendor/etc/sensors/proto/sns_threshold.proto vendor/etc/sensors/proto/sns_tilt.proto vendor/etc/sensors/proto/sns_tilt_to_wake.proto -vendor/etc/sensors/proto/sns_trimag.proto vendor/etc/sensors/proto/sns_ultra_violet.proto vendor/etc/sensors/proto/sns_wrist_tilt_gesture.proto +vendor/etc/sensors/proto/tcs3708.proto vendor/etc/sensors/sns_reg_config -# Thermal engine - configs +# Thermal configs +vendor/etc/thermal-engine-bangkk-camera.conf +vendor/etc/thermal-engine-bangkk-game-normal.conf +vendor/etc/thermal-engine-bangkk-game-perf.conf +vendor/etc/thermal-engine-bangkk.conf vendor/etc/thermal-engine.conf - -# Touchscreen firmware -vendor/firmware/csot_goodix_cfg_group.bin -vendor/firmware/csot_goodix_test_limits_255.csv -vendor/firmware/goodix-csot-gt9916S-2202250f-62187be9-dubai.bin -vendor/firmware/goodix-tianma-gt9916S-2202250f-62187c3e-dubai.bin -vendor/firmware/tianma_goodix_cfg_group.bin -vendor/firmware/tianma_goodix_test_limits_255.csv - -# Vibration firmware -vendor/firmware/aw8622x_haptic.bin -vendor/firmware/aw8622x_osc_rtp_12K_10s.bin -vendor/firmware/aw8622x_rtp.bin - -# WPSS firmware - from S1RDS32.55-106-3 -vendor/firmware/wpss.b00|9214ea9be39a858849f2f854a13499d68208a659 -vendor/firmware/wpss.b01|e15f757c7a97f62a4d529e50769b75de7016588c -vendor/firmware/wpss.b02|ae11da8b635ded3ed976b7d32b5e088b86a3aeaa -vendor/firmware/wpss.b03|0590fe4f97d77dd110a8474f1219e40e9a26d6c2 -vendor/firmware/wpss.b04|a80736069f2e1a077c31ddedc04204479cf1650e -vendor/firmware/wpss.b05|e6492d98c65316c43bd20b2e79a69de28a15c00d -vendor/firmware/wpss.b06|3337d698242ca04332a65023b915b076f3ef6dfb -vendor/firmware/wpss.b07|0a8b713c17d486485c3b35eea4eed471e5330004 -vendor/firmware/wpss.mdt|50925b033c00324162fd708e9cda99c75d42efec -vendor/firmware/wpss.qdb|0684693df38ddc4647c62c386e4683c6a7aa9696 diff --git a/resource-overlay/dubai/Frameworks/Android.bp b/resource-overlay/bangkk/Frameworks/Android.bp similarity index 69% rename from resource-overlay/dubai/Frameworks/Android.bp rename to resource-overlay/bangkk/Frameworks/Android.bp index 2c2019a..6f9667c 100644 --- a/resource-overlay/dubai/Frameworks/Android.bp +++ b/resource-overlay/bangkk/Frameworks/Android.bp @@ -1,5 +1,5 @@ runtime_resource_overlay { - name: "FrameworksResDubai", + name: "FrameworksResBangkk", sdk_version: "current", vendor: true } diff --git a/resource-overlay/dubai/Frameworks/AndroidManifest.xml b/resource-overlay/bangkk/Frameworks/AndroidManifest.xml similarity index 89% rename from resource-overlay/dubai/Frameworks/AndroidManifest.xml rename to resource-overlay/bangkk/Frameworks/AndroidManifest.xml index 344a3bc..2f538b4 100644 --- a/resource-overlay/dubai/Frameworks/AndroidManifest.xml +++ b/resource-overlay/bangkk/Frameworks/AndroidManifest.xml @@ -4,6 +4,6 @@ SPDX-License-Identifier: Apache-2.0 --> + package="android.overlay.bangkk"> diff --git a/resource-overlay/dubai/Frameworks/res/values-land/dimens.xml b/resource-overlay/bangkk/Frameworks/res/values-land/dimens.xml similarity index 85% rename from resource-overlay/dubai/Frameworks/res/values-land/dimens.xml rename to resource-overlay/bangkk/Frameworks/res/values-land/dimens.xml index 8b2feaa..0b5a7c4 100644 --- a/resource-overlay/dubai/Frameworks/res/values-land/dimens.xml +++ b/resource-overlay/bangkk/Frameworks/res/values-land/dimens.xml @@ -7,5 +7,5 @@ - 24.0dip + 106.0dip diff --git a/resource-overlay/dubai/Frameworks/res/values/config.xml b/resource-overlay/bangkk/Frameworks/res/values/config.xml similarity index 93% rename from resource-overlay/dubai/Frameworks/res/values/config.xml rename to resource-overlay/bangkk/Frameworks/res/values/config.xml index 8e6ff12..8d25d54 100644 --- a/resource-overlay/dubai/Frameworks/res/values/config.xml +++ b/resource-overlay/bangkk/Frameworks/res/values/config.xml @@ -35,6 +35,9 @@ 1250 3500 5500 + 10000 + 50000 + 120000 - 2 + 3 7 10 12 @@ -60,8 +63,11 @@ 111 149 192 - 252 + 325 500 + 700 + 800 + 1000 - 0 - 1 - 4 - 5 - 6 - 12 - 48 - 57 - 76 - 98 + 9 + 27 + 35 + 38 + 55 + 106 + 113 129 + 147 + 183 + 228 + 239 + 244 255 @@ -91,8 +99,7 @@ This array should be equal in size to config_screenBrightnessBacklight --> - 0 - 2 + 3 7 10 12 @@ -101,8 +108,11 @@ 111 149 192 - 252 + 325 500 + 700 + 800 + 1000 - M -35,0 - L 35,0 - L 35,105 - L -35,105 - Z + M -38,0 + L 38,0 + L 38,106 + L -38,106 + Z 540 - 2164 + 2168 91 @@ -215,28 +225,19 @@ 0 - 67 + 60 0 - 67 + 50 - + 0 - 0 - 94 - - - - - 0 - 15 - 30 - 15 + 40 - motorolaedge30 + motog845g http://uaprof.motorola.com/phoneconfig/motov1/Profile/motov1.rdf diff --git a/resource-overlay/dubai/Frameworks/res/values/dimens.xml b/resource-overlay/bangkk/Frameworks/res/values/dimens.xml similarity index 67% rename from resource-overlay/dubai/Frameworks/res/values/dimens.xml rename to resource-overlay/bangkk/Frameworks/res/values/dimens.xml index 06a5743..81680af 100644 --- a/resource-overlay/dubai/Frameworks/res/values/dimens.xml +++ b/resource-overlay/bangkk/Frameworks/res/values/dimens.xml @@ -5,11 +5,11 @@ --> - 95.0px + 105.0px - 105.0px + 106.0px - 20.0px + 19.0px diff --git a/resource-overlay/bangkk/Frameworks/res/xml/power_profile.xml b/resource-overlay/bangkk/Frameworks/res/xml/power_profile.xml new file mode 100644 index 0000000..9488ec6 --- /dev/null +++ b/resource-overlay/bangkk/Frameworks/res/xml/power_profile.xml @@ -0,0 +1,82 @@ + + + 0 + 120.12 + 370.48 + 1.78 + 88.58 + 44.18 + 607.96 + 149.85 + 50.69 + 124.89 + 35 + + 35 + 30 + 25 + 20 + 15 + 10 + 5 + 1.090 + + + 6 + 2 + + + 300000 + 576000 + 691200 + 940800 + 1113600 + 1324800 + 1516800 + 1651200 + 1708800 + 1804800 + + + 691200 + 940800 + 1228800 + 1401600 + 1516800 + 1651200 + 1804800 + 1900800 + 2054400 + 2208000 + + + 22.1 + 24.3 + 25.3 + 30.3 + 33.2 + 36.6 + 43.2 + 50.2 + 52.2 + 55.8 + + + 49.6 + 67.2 + 90.7 + 112.0 + 127.9 + 149.2 + 168.4 + 187.2 + 200.6 + 228.3 + + 0.7 + 8.7 + 5.993 + 8.606 + 9.4 + 5000 + \ No newline at end of file diff --git a/resource-overlay/dubai/LineageSystemUI/Android.bp b/resource-overlay/bangkk/LineageSystemUI/Android.bp similarity index 79% rename from resource-overlay/dubai/LineageSystemUI/Android.bp rename to resource-overlay/bangkk/LineageSystemUI/Android.bp index ccb8db4..b10da46 100644 --- a/resource-overlay/dubai/LineageSystemUI/Android.bp +++ b/resource-overlay/bangkk/LineageSystemUI/Android.bp @@ -4,6 +4,6 @@ // runtime_resource_overlay { - name: "LineageSystemUIDubai", + name: "LineageSystemUIBangkk", vendor: true, } diff --git a/resource-overlay/dubai/LineageSystemUI/AndroidManifest.xml b/resource-overlay/bangkk/LineageSystemUI/AndroidManifest.xml similarity index 87% rename from resource-overlay/dubai/LineageSystemUI/AndroidManifest.xml rename to resource-overlay/bangkk/LineageSystemUI/AndroidManifest.xml index 307de26..083f7c0 100644 --- a/resource-overlay/dubai/LineageSystemUI/AndroidManifest.xml +++ b/resource-overlay/bangkk/LineageSystemUI/AndroidManifest.xml @@ -4,7 +4,7 @@ SPDX-License-Identifier: Apache-2.0 --> + package="com.android.systemui.bangkk.lineage"> + package="com.android.settings.overlay.bangkk"> diff --git a/resource-overlay/dubai/Settings/res/values/config.xml b/resource-overlay/bangkk/Settings/res/values/config.xml similarity index 79% rename from resource-overlay/dubai/Settings/res/values/config.xml rename to resource-overlay/bangkk/Settings/res/values/config.xml index f0e1a2e..37ba2fd 100644 --- a/resource-overlay/dubai/Settings/res/values/config.xml +++ b/resource-overlay/bangkk/Settings/res/values/config.xml @@ -16,10 +16,7 @@ - - true - - 65 + 70 diff --git a/resource-overlay/dubai/SettingsProvider/Android.bp b/resource-overlay/bangkk/SettingsProvider/Android.bp similarity index 65% rename from resource-overlay/dubai/SettingsProvider/Android.bp rename to resource-overlay/bangkk/SettingsProvider/Android.bp index b8c730b..956980a 100644 --- a/resource-overlay/dubai/SettingsProvider/Android.bp +++ b/resource-overlay/bangkk/SettingsProvider/Android.bp @@ -1,5 +1,5 @@ runtime_resource_overlay { - name: "SettingsProviderResDubai", + name: "SettingsProviderResBangkk", sdk_version: "current", vendor: true } diff --git a/resource-overlay/dubai/SettingsProvider/AndroidManifest.xml b/resource-overlay/bangkk/SettingsProvider/AndroidManifest.xml similarity index 84% rename from resource-overlay/dubai/SettingsProvider/AndroidManifest.xml rename to resource-overlay/bangkk/SettingsProvider/AndroidManifest.xml index 69a3ae7..ea813bd 100644 --- a/resource-overlay/dubai/SettingsProvider/AndroidManifest.xml +++ b/resource-overlay/bangkk/SettingsProvider/AndroidManifest.xml @@ -5,6 +5,6 @@ --> + package="com.android.providers.settings.overlay.bangkk"> diff --git a/resource-overlay/dubai/SettingsProvider/res/values/config.xml b/resource-overlay/bangkk/SettingsProvider/res/values/config.xml similarity index 76% rename from resource-overlay/dubai/SettingsProvider/res/values/config.xml rename to resource-overlay/bangkk/SettingsProvider/res/values/config.xml index 6ffa1ca..2ff7dff 100644 --- a/resource-overlay/dubai/SettingsProvider/res/values/config.xml +++ b/resource-overlay/bangkk/SettingsProvider/res/values/config.xml @@ -5,5 +5,5 @@ --> - motorola edge 30 + moto g84 5G diff --git a/resource-overlay/dubai/Settings/Android.bp b/resource-overlay/bangkk/SystemUI/Android.bp similarity index 70% rename from resource-overlay/dubai/Settings/Android.bp rename to resource-overlay/bangkk/SystemUI/Android.bp index 5894cf6..fb745cb 100644 --- a/resource-overlay/dubai/Settings/Android.bp +++ b/resource-overlay/bangkk/SystemUI/Android.bp @@ -1,5 +1,5 @@ runtime_resource_overlay { - name: "SettingsResDubai", + name: "SystemUIResBangkk", sdk_version: "current", vendor: true } diff --git a/resource-overlay/dubai/SystemUI/AndroidManifest.xml b/resource-overlay/bangkk/SystemUI/AndroidManifest.xml similarity index 86% rename from resource-overlay/dubai/SystemUI/AndroidManifest.xml rename to resource-overlay/bangkk/SystemUI/AndroidManifest.xml index f3d4211..c44527d 100644 --- a/resource-overlay/dubai/SystemUI/AndroidManifest.xml +++ b/resource-overlay/bangkk/SystemUI/AndroidManifest.xml @@ -5,6 +5,6 @@ --> + package="com.android.systemui.overlay.bangkk"> diff --git a/resource-overlay/dubai/SystemUI/res/values-land/dimens.xml b/resource-overlay/bangkk/SystemUI/res/values-land/dimens.xml similarity index 100% rename from resource-overlay/dubai/SystemUI/res/values-land/dimens.xml rename to resource-overlay/bangkk/SystemUI/res/values-land/dimens.xml diff --git a/resource-overlay/dubai/SystemUI/res/values/dimens.xml b/resource-overlay/bangkk/SystemUI/res/values/dimens.xml similarity index 100% rename from resource-overlay/dubai/SystemUI/res/values/dimens.xml rename to resource-overlay/bangkk/SystemUI/res/values/dimens.xml diff --git a/resource-overlay/dubai/SystemUI/res/values/integers.xml b/resource-overlay/bangkk/SystemUI/res/values/integers.xml similarity index 100% rename from resource-overlay/dubai/SystemUI/res/values/integers.xml rename to resource-overlay/bangkk/SystemUI/res/values/integers.xml diff --git a/resource-overlay/dubai/Wifi/Android.bp b/resource-overlay/bangkk/Wifi/Android.bp similarity index 85% rename from resource-overlay/dubai/Wifi/Android.bp rename to resource-overlay/bangkk/Wifi/Android.bp index 73029b6..3dcee24 100644 --- a/resource-overlay/dubai/Wifi/Android.bp +++ b/resource-overlay/bangkk/Wifi/Android.bp @@ -4,7 +4,7 @@ // runtime_resource_overlay { - name: "WifiResDubai", + name: "WifiResBangkk", sdk_version: "current", vendor: true, } diff --git a/resource-overlay/dubai/Wifi/AndroidManifest.xml b/resource-overlay/bangkk/Wifi/AndroidManifest.xml similarity index 87% rename from resource-overlay/dubai/Wifi/AndroidManifest.xml rename to resource-overlay/bangkk/Wifi/AndroidManifest.xml index 9fd14ca..2bdaa79 100644 --- a/resource-overlay/dubai/Wifi/AndroidManifest.xml +++ b/resource-overlay/bangkk/Wifi/AndroidManifest.xml @@ -4,7 +4,7 @@ SPDX-License-Identifier: Apache-2.0 --> + package="com.android.wifi.resources.overlay.bangkk"> - motorola edge 30 + moto g84 5G diff --git a/resource-overlay/dubai/Frameworks/res/xml/power_profile.xml b/resource-overlay/dubai/Frameworks/res/xml/power_profile.xml deleted file mode 100644 index f6e25f0..0000000 --- a/resource-overlay/dubai/Frameworks/res/xml/power_profile.xml +++ /dev/null @@ -1,113 +0,0 @@ - - - 0 - 139.28 - 450 - 0.9 - 34.36 - 4.73 - 523.93 - 200.75 - 171 - 136.278 - 10.57 - - 33.079 - 30 - 25 - 20 - 15 - 10 - 5 - 1.463 - - - 4 - 3 - 1 - - - 300000 - 691200 - 806400 - 940800 - 1152000 - 1324800 - 1516800 - 1651200 - 1804800 - - - 691200 - 940800 - 1228800 - 1344000 - 1516800 - 1651200 - 1900800 - 2054400 - 2131200 - 2400000 - - - 806400 - 1056000 - 1324800 - 1516800 - 1766400 - 1862400 - 2035200 - 2208000 - 2380800 - 2515200 - - - 4.13 - 6.9 - 7.26 - 8.88 - 12.17 - 15.7 - 20.06 - 25.76 - 30.9 - - - 26.93 - 20.23 - 57.22 - 71.71 - 91.77 - 108.31 - 158.29 - 182.69 - 186.79 - 230.89 - - - 34.69 - 49.4 - 70.56 - 89.92 - 117.81 - 129.49 - 185.7 - 184.51 - 218.2 - 243.16 - - 1.13 - 1.13 - 1.13 - 6.5 - 12.86 - 6.79 - 4020 - 6 - 180 - 186 - 3700 - - 17 - - \ No newline at end of file diff --git a/resource-overlay/dubai/Settings/res/drawable/regulatory_info.png b/resource-overlay/dubai/Settings/res/drawable/regulatory_info.png deleted file mode 100644 index d38c551e883fc1277728d32878d6a3efd725f39c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 82979 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 diff --git a/rootdir/etc/init/hw/init.mmi.overlay.rc b/rootdir/etc/init/hw/init.mmi.overlay.rc index 623ffa8..e0d3f80 100644 --- a/rootdir/etc/init/hw/init.mmi.overlay.rc +++ b/rootdir/etc/init/hw/init.mmi.overlay.rc @@ -1,59 +1,51 @@ -import /vendor/etc/init/hw/init.vendor.st21nfc.rc - -on early-init && property:ro.bootmode=mot-factory - insmod /vendor/lib/modules/moto_f_usbnet.ko - -on early-init - exec_background u:r:vendor_modprobe:s0 -- /vendor/bin/modprobe -a -d /vendor/lib/modules/${ro.vendor.mot.gki.path} mmi_annotate mmi_info mmi_relay - -on early-init - insmod /vendor/lib/modules/bm_adsp_ulog.ko - insmod /vendor/lib/modules/mmi_charger.ko - insmod /vendor/lib/modules/qti_glink_charger.ko - insmod /vendor/lib/modules/aw882xx_k504.ko - insmod /vendor/lib/modules/cirrus_wm_adsp.ko - insmod /vendor/lib/modules/cirrus_cs35l41.ko - insmod /vendor/lib/modules/cirrus_cs35l45.ko - insmod /vendor/lib/modules/mmi_sys_temp.ko - insmod /vendor/lib/modules/wl2864c.ko - insmod /vendor/lib/modules/goodix_brl_mmi.ko - insmod /vendor/lib/modules/camera.ko - insmod /vendor/lib/modules/aw862x.ko - insmod /vendor/lib/modules/cci_intf.ko - insmod /vendor/lib/modules/qpnp_adaptive_charge.ko - start vendor.mmi_modules - -on fs - # egis fod ko - insmod /vendor/lib/modules/rbs_fps_mmi.ko +# sec_nfc +import /vendor/etc/init/hw/init.nfc.sec.rc on post-fs - # Sensors - chown system system /sys/devices/platform/soc/a94000.spi/spi_master/spi0/spi0.0/touchscreen/primary/double_tap_enabled - chown system system /sys/devices/platform/soc/a94000.spi/spi_master/spi0/spi0.0/touchscreen/primary/double_tap_pressed - chown system system /sys/devices/platform/soc/a94000.spi/spi_master/spi0/spi0.0/touchscreen/primary/udfps_enabled - chown system system /sys/devices/platform/soc/a94000.spi/spi_master/spi0/spi0.0/touchscreen/primary/udfps_pressed + # "Tap to wake" gesture + chown root input /sys/class/sensors/dt-gesture/enable + chmod 0660 /sys/class/sensors/dt-gesture/enable + chown root input /sys/class/sensors/dt-gesture/poll_delay + chmod 0660 /sys/class/sensors/dt-gesture/poll_delay + +on post-fs + chown system system /sys/devices/platform/soc/4804000.ufshc/clkgate_enable + chown system system /sys/devices/platform/soc/4804000.ufshc/devfreq/4804000.ufshc/min_freq on post-fs-data - mkdir /mnt/vendor/persist/tof 0755 vendor_tcmd camera - chown vendor_tcmd camera /mnt/vendor/persist/tof/refspad_cal - chown vendor_tcmd camera /mnt/vendor/persist/tof/xtalk_g1_cal - chown vendor_tcmd camera /mnt/vendor/persist/tof/xtalk_shape_cal - chown vendor_tcmd camera /mnt/vendor/persist/tof/xtalk_production_cal - chown vendor_tcmd camera /mnt/vendor/persist/tof/offset_cal - chmod 0640 /mnt/vendor/persist/tof/refspad_cal - chmod 0640 /mnt/vendor/persist/tof/xtalk_g1_cal - chmod 0640 /mnt/vendor/persist/tof/xtalk_shape_cal - chmod 0640 /mnt/vendor/persist/tof/xtalk_production_cal - chmod 0640 /mnt/vendor/persist/tof/offset_cal - # Param updater data for various modules - mkdir /data/vendor/param 0775 system system + + chown system system /sys/devices/platform/soc/soc:fm_wcn39x0/elna_en + # touch api + chown system system /sys/class/touchscreen/primary/interpolation + chmod 0660 /sys/class/touchscreen/primary/interpolation + chown system system /sys/class/touchscreen/primary/first_filter + chmod 0660 /sys/class/touchscreen/primary/first_filter + chown system system /sys/class/touchscreen/primary/edge + chmod 0660 /sys/class/touchscreen/primary/edge + # change permission for stylus + chown system system /sys/class/touchscreen/primary/palm_settings + + # Change ownership and permission for bq25960-standalone factory testing + chown system system /sys/class/power_supply/bq25960-standalone/voltage_now + chown system system /sys/bus/iio/devices/iio:device6/in_index_bq25980_cp_enabled_input + chmod 0644 /sys/class/power_supply/bq25960-standalone/voltage_now + chmod 0664 /sys/bus/iio/devices/iio:device6/in_index_bq25980_cp_enabled_input + # Add for Egis Fod fingerprint mkdir /data/vendor/egis 0770 system system mkdir /mnt/vendor/persist/egis 0770 system system mkdir /data/vendor/tzstorage/egis 0770 system system mkdir /data/vendor/egis/cqa 0770 system system + # Add for after-sale ois gyro cal + mkdir /mnt/vendor/persist/camera/gyro_compat 0770 vendor_tcmd camera + + # Add for OIS hall test result + mkdir /mnt/vendor/persist/camera/ois_hall 0770 vendor_tcmd camera + + # Add for OIS hall data + mkdir /mnt/vendor/persist/camera/ois_hall_data 0770 vendor_tcmd camera + # Add for fod fps calibration chown system system /sys/class/backlight/panel0-backlight/brightness chown system system /sys/class/drm/card0-DSI-1/panelName @@ -64,37 +56,77 @@ on post-fs-data chmod 0666 /sys/class/drm/card0-DSI-1/panelName chmod 0666 /sys/class/drm/card0-DSI-1/panelId + # Add for modem rfs logs + rm /data/vendor/radio/read_modem_efs + write /data/vendor/radio/read_modem_efs 0 + chmod 0666 /data/vendor/radio/read_modem_efs + +on early-init + insmod /vendor/lib/modules/leds_aw99703.ko + insmod /vendor/lib/modules/leds_lm3697.ko + exec u:r:vendor_modprobe:s0 -- /vendor/bin/modprobe -r -d /vendor/lib/modules/${ro.vendor.mot.gki.path} zram + +on boot + # vibrator hal need to access this sysfs node for AF noise issue + chown system system /sys/devices/platform/soc/soc:mot,cam-actuator/onekey_actuator + chmod 0660 /sys/devices/platform/soc/soc:mot,cam-actuator/onekey_actuator + # change permission for capsensor + chown system system /sys/class/capsense/reset + chown system system /sys/class/capsense/int_state + chown radio system /sys/class/capsense/reg + chown radio system /sys/class/capsense/fw_download_status + chown system system /sys/class/capsense/mode + chmod 0660 /sys/class/capsense/reset + chmod 0660 /sys/class/capsense/int_state + chmod 0660 /sys/class/capsense/reg + chmod 0660 /sys/class/capsense/fw_download_status + # touch + chown system system /sys/class/touchscreen/primary/interpolation + chmod 0660 /sys/class/touchscreen/primary/interpolation + chown system system /sys/class/touchscreen/primary/sample + chmod 0660 /sys/class/touchscreen/primary/sample + chown system system /sys/class/touchscreen/primary/edge + chmod 0660 /sys/class/touchscreen/primary/edge + chown system system /sys/class/touchscreen/primary/gesture + chmod 0660 /sys/class/touchscreen/primary/gesture + chmod 0660 /sys/class/capsense/mode + chmod 0666 /dev/gtp_tools + #bluetooth sar + write /data/vendor/radio/bluetooth_sar disable + chmod 0644 /data/vendor/radio/bluetooth_sar + chown radio /data/vendor/radio/bluetooth_sar + +on fs + insmod /vendor/lib/modules/${ro.vendor.mot.gki.path}/rbs_fod_mmi.ko + +on boot && property:ro.vendor.mot.gki.path=5.4-gki + insmod /vendor/lib/modules/${ro.vendor.mot.gki.path}/nfc_i2c.ko + +on late-init + insmod /vendor/lib/modules/${ro.vendor.mot.gki.path}/qpnp_adaptive_charge.ko + insmod /vendor/lib/modules/${ro.vendor.mot.gki.path}/mmi-smbcharger-iio.ko + insmod /vendor/lib/modules/${ro.vendor.mot.gki.path}/mmi_parallel_charger_iio.ko + exec u:r:vendor_modprobe:s0 -- /vendor/bin/modprobe -a -d /vendor/lib/modules/${ro.vendor.mot.gki.path} moto_mm moto_swap + on early-boot # Add for egis fingerprint chown system system /dev/esfp0 chmod 0664 /dev/esfp0 -on boot - # allow TCMD to access cci for OIS test - chmod 0660 /dev/cci_intf chown system camera /dev/cci_intf + chmod 0660 /dev/cci_intf +on property:ro.boot.mode=mot-factory + chmod 0666 /dev/cci_intf - #change adsp pmic test command file access permission - chown vendor_tcmd system /sys/devices/platform/soc/soc:qcom,pmic_glink/soc:qcom,pmic_glink:mmi,qti-glink-charger/tcmd - chown vendor_tcmd system /sys/devices/platform/soc/soc:qcom,pmic_glink/soc:qcom,pmic_glink:mmi,qti-glink-charger/force_pmic_icl - chown vendor_tcmd system /sys/devices/platform/soc/soc:qcom,pmic_glink/soc:qcom,pmic_glink:qcom,battery_charger/force_charging_enable - chmod 0660 /sys/devices/platform/soc/soc:qcom,pmic_glink/soc:qcom,pmic_glink:mmi,qti-glink-charger/tcmd - chmod 0660 /sys/devices/platform/soc/soc:qcom,pmic_glink/soc:qcom,pmic_glink:mmi,qti-glink-charger/force_pmic_icl - chmod 0660 /sys/devices/platform/soc/soc:qcom,pmic_glink/soc:qcom,pmic_glink:qcom,battery_charger/force_charging_enable - # Touch game mode control - chown system system /sys/class/touchscreen/primary/rotate - chmod 0660 /sys/class/touchscreen/primary/rotate - chown system system /sys/class/touchscreen/primary/interpolation - chmod 0660 /sys/class/touchscreen/primary/interpolation - chown system system /sys/class/touchscreen/primary/edge - chmod 0660 /sys/class/touchscreen/primary/edge - chown system system /sys/class/touchscreen/primary/first_filter - chmod 0660 /sys/class/touchscreen/primary/first_filter - # Set adaptive charging perms for HAL - chown system system /sys/module/qpnp_adaptive_charge/parameters/upper_limit - chown system system /sys/module/qpnp_adaptive_charge/parameters/lower_limit +on charger + insmod /vendor/lib/modules/${ro.vendor.mot.gki.path}/qpnp_adaptive_charge.ko + insmod /vendor/lib/modules/${ro.vendor.mot.gki.path}/mmi-smbcharger-iio.ko + insmod /vendor/lib/modules/${ro.vendor.mot.gki.path}/mmi_parallel_charger_iio.ko -service capsense_reset /system/vendor/bin/capsense_reset +on post-fs-data && property:ro.boot.mode=charger + setprop persist.vendor.hvdcp_opti.start 1 + +service capsense_reset /vendor/bin/capsense_reset class core user system group system input @@ -103,5 +135,22 @@ service capsense_reset /system/vendor/bin/capsense_reset on property:sys.boot_completed=1 start capsense_reset -on property:persist.vendor.paramfile.parse_panel=1 - write /sys/devices/platform/soc/soc:qcom,dsi-display-primary/dsi_display_parse_para "5" +service vendor.modem-rfs-sh /vendor/bin/init.mmi.modem-rfs.sh loop_forever + class late_start + user root + group log system radio + oneshot + +on post-fs-data && property:ro.boot.mode=mot-factory + #open usb debug log + write /sys/kernel/debug/dynamic_debug/control "file gadget.c +p" + write /sys/kernel/debug/dynamic_debug/control "file composite.c +p" + write /sys/kernel/debug/dynamic_debug/control "file configfs.c +p" + write /sys/kernel/debug/dynamic_debug/control "file phy-msm-snps-hs.c +p" + write /sys/kernel/debug/dynamic_debug/control "file phy-msm-ssusb-qmp.c +p" + +on property:vendor.bluetooth.sar_state=connect + write /data/vendor/radio/bluetooth_sar connect + +on property:vendor.bluetooth.sar_state=disconnect + write /data/vendor/radio/bluetooth_sar disconnect diff --git a/rootdir/etc/init/hw/init.nfc.sec.rc b/rootdir/etc/init/hw/init.nfc.sec.rc new file mode 100644 index 0000000..5baddfc --- /dev/null +++ b/rootdir/etc/init/hw/init.nfc.sec.rc @@ -0,0 +1,12 @@ +on boot + +on post-fs-data +# NFC storage +# mkdir /data/nfc + +# NFC permission + chown nfc nfc /dev/sec-nfc + chmod 0770 /dev/sec-nfc + +# chown nfc nfc /data/nfc +# chmod 0770 /data/nfc diff --git a/rootdir/etc/init/hw/init.vendor.st21nfc.rc b/rootdir/etc/init/hw/init.vendor.st21nfc.rc deleted file mode 100644 index 354b95e..0000000 --- a/rootdir/etc/init/hw/init.vendor.st21nfc.rc +++ /dev/null @@ -1,23 +0,0 @@ - -# This file needs to be executed by vendor_init at boot of the device, -# both in normal and factory mode. - -on post-fs - # Change ownership and permision of st nfc device - chown nfc nfc /dev/st21nfc - chmod 0660 /dev/st21nfc - -on property:ro.vendor.hw.nfc=true && property:persist.vendor.radio.multisim.config=* - start vendor.stflashtool - -on property:ro.vendor.hw.nfc=st && property:persist.vendor.radio.multisim.config=* - start vendor.stflashtool - -on property:ro.vendor.hw.nfc=ese_st && property:persist.vendor.radio.multisim.config=* - start vendor.stflashtool - -service vendor.stflashtool /vendor/bin/STFlashTool -c /vendor/etc/st21nfc_conf.txt -P vendor.nfc.fw_status - group nfc - user nfc - oneshot - disabled diff --git a/sensors/Android.bp b/sensors/Android.bp index 4efaaae..208e875 100644 --- a/sensors/Android.bp +++ b/sensors/Android.bp @@ -5,7 +5,7 @@ // cc_library_shared { - name: "sensors.dubai", + name: "sensors.bangkk", defaults: ["hidl_defaults"], srcs: [ "Sensor.cpp", @@ -29,7 +29,7 @@ cc_library_shared { "android.hardware.sensors@2.X-multihal", ], cflags: [ - "-DLOG_TAG=\"sensors.dubai\"", + "-DLOG_TAG=\"sensors.bangkk\"", ], vendor: true, } diff --git a/sensors/hals.conf b/sensors/hals.conf index d22335b..d7a3266 100644 --- a/sensors/hals.conf +++ b/sensors/hals.conf @@ -1,3 +1,2 @@ -sensors.ssc.so sensors.moto.so -sensors.dubai.so +sensors.ssc.so diff --git a/setup-makefiles.sh b/setup-makefiles.sh index 6390be8..00194f2 100755 --- a/setup-makefiles.sh +++ b/setup-makefiles.sh @@ -8,8 +8,8 @@ set -e -export DEVICE=dubai -export DEVICE_COMMON=sm7325-common +export DEVICE=bangkk +export DEVICE_COMMON=sm6375-common export VENDOR=motorola "./../../${VENDOR}/${DEVICE_COMMON}/setup-makefiles.sh" "$@" diff --git a/system.prop b/system.prop index 0397c97..8182c84 100644 --- a/system.prop +++ b/system.prop @@ -1,3 +1,3 @@ # Google -ro.opa.device_model_id=motorola-dubai +ro.opa.device_model_id=motorola-bangkk ro.opa.eligible_device=true diff --git a/update-sha1sums.py b/update-sha1sums.py index 2720234..d708293 100755 --- a/update-sha1sums.py +++ b/update-sha1sums.py @@ -20,7 +20,7 @@ import os import sys from hashlib import sha1 -device='dubai' +device='bangkk' vendor='motorola' with open('proprietary-files.txt', 'r') as f: diff --git a/vendor.prop b/vendor.prop index d8af8ff..145a541 100644 --- a/vendor.prop +++ b/vendor.prop @@ -1,11 +1,11 @@ # Bluetooth -bluetooth.device.default_name=motorola edge 30 +bluetooth.device.default_name=moto g84 5G # Camera -persist.vendor.camera.physical.num=4 +persist.vendor.camera.physical.num=3 # Motorola ro.mot.build.customerid=global # NFC -ro.vendor.hw.nfc=st +persist.vendor.nfc.config_secfile_name=libnfc-sec-nci.conf