From 67a982b379c5b6802e4e01d16f0f9143d7b86ec0 Mon Sep 17 00:00:00 2001 From: Tim Zimmermann Date: Wed, 28 Sep 2022 20:15:57 +0200 Subject: [PATCH] sm7125-common: Pin Android R RIL and QMI blobs * Signal strength does not get updated with S ones unless airplane mode is toggled on and off on T Simon1511: Pin R QMI blobs too since S ones make rild segfault. Also patch libsec-ril* and update our audio impl accordingly Change-Id: I3be7972b161b074b570bf227c3bdc32a2d91b70e --- audio/PrimaryDevice.cpp | 30 +++--- configs/framework_compatibility_matrix.xml | 2 +- configs/manifest.xml | 6 +- extract-files.sh | 5 +- proprietary-files.txt | 117 +++++++++++---------- vendor.prop | 3 +- 6 files changed, 84 insertions(+), 79 deletions(-) diff --git a/audio/PrimaryDevice.cpp b/audio/PrimaryDevice.cpp index 80a494b..fdd6cdd 100644 --- a/audio/PrimaryDevice.cpp +++ b/audio/PrimaryDevice.cpp @@ -219,29 +219,25 @@ Return PrimaryDevice::setMode(AudioMode mode) { * For the g_call_sim_slot parameter 0x01 describes SIM1 and 0x02 SIM2. */ - char simSlot1[92], simSlot2[92]; - - // These props return either 0 (not calling), - // or 1 (SIM is calling) - property_get("vendor.calls.ongoing0", simSlot1, ""); - property_get("vendor.calls.ongoing1", simSlot2, ""); - - // Wait until one sim slot reports a call - if (mode == AudioMode::IN_CALL) { - while (strcmp(simSlot1, "0") == 0 && strcmp(simSlot2, "0") == 0) { - std::this_thread::sleep_for(std::chrono::milliseconds(50)); - property_get("vendor.calls.ongoing0", simSlot1, ""); - property_get("vendor.calls.ongoing1", simSlot2, ""); - } + char simSlot[92]; + + // This prop returns either -1 (no SIM is calling), + // 0 (SIM1 is calling) or 1 (SIM2 is calling) + property_get("vendor.calls.slotid", simSlot, ""); + + // Wait until RIL reports which SIM is being used + while (strcmp(simSlot, "-1") == 0 && mode == AudioMode::IN_CALL) { + std::this_thread::sleep_for(std::chrono::milliseconds(50)); + property_get("vendor.calls.slotid", simSlot, ""); } - if (strcmp(simSlot1, "1") == 0) { + if (strcmp(simSlot, "0") == 0) { // SIM1 mDevice->halSetParameters("call_state=2;g_call_state=2;g_call_sim_slot=0x01"); - } else if (strcmp(simSlot2, "1") == 0) { + } else if (strcmp(simSlot, "1") == 0) { // SIM2 mDevice->halSetParameters("call_state=2;g_call_state=2;g_call_sim_slot=0x02"); - } else if (strcmp(simSlot1, "0") == 0 && strcmp(simSlot2, "0") == 0) { + } else if (strcmp(simSlot, "-1") == 0) { // No call mDevice->halSetParameters("call_state=1;g_call_state=1"); } diff --git a/configs/framework_compatibility_matrix.xml b/configs/framework_compatibility_matrix.xml index 35b9d57..f6c968a 100644 --- a/configs/framework_compatibility_matrix.xml +++ b/configs/framework_compatibility_matrix.xml @@ -918,7 +918,7 @@ vendor.samsung.hardware.radio - 2.2 + 2.1 ISehRadio slot1 diff --git a/configs/manifest.xml b/configs/manifest.xml index edf06ac..5926998 100644 --- a/configs/manifest.xml +++ b/configs/manifest.xml @@ -444,14 +444,14 @@ vendor.samsung.hardware.radio hwbinder - 2.2 + 2.1 ISehRadio slot1 slot2 - @2.2::ISehRadio/slot1 - @2.2::ISehRadio/slot2 + @2.1::ISehRadio/slot1 + @2.1::ISehRadio/slot2 vendor.samsung.hardware.radio.bridge diff --git a/extract-files.sh b/extract-files.sh index 855c20f..862341d 100755 --- a/extract-files.sh +++ b/extract-files.sh @@ -63,7 +63,10 @@ BLOB_ROOT="$ANDROID_ROOT"/vendor/"$VENDOR"/"$DEVICE_COMMON"/proprietary function blob_fixup() { case "${1}" in vendor/lib64/libsec-ril.so) - sed -i 's/ril.dds.call.ongoing/vendor.calls.ongoing/g' "${2}" + sed -i 's/ril.dds.call.slotid/vendor.calls.slotid/g' "${2}" + ;; + vendor/lib64/libsec-ril-dsds.so) + sed -i 's/ril.dds.call.slotid/vendor.calls.slotid/g' "${2}" ;; vendor/lib64/hw/android.hardware.health@2.0-impl-2.1-samsung.so) # Replace libutils with vndk30 libutils diff --git a/proprietary-files.txt b/proprietary-files.txt index eceaec0..68e9795 100644 --- a/proprietary-files.txt +++ b/proprietary-files.txt @@ -881,114 +881,119 @@ vendor/lib64/libprotobuf-cpp-lite-3.9.1.so vendor/etc/public.libraries.txt # QMI -vendor/bin/irsc_util -vendor/bin/pd-mapper -vendor/bin/qrtr-ns -vendor/bin/ssr_setup vendor/lib/libdiag.so vendor/lib/libdiagjni.so vendor/lib/libpdmapper.so vendor/lib/libqmi_common_so.so -vendor/lib/libqmi_client_qmux.so -vendor/lib/libqmiservices.so -vendor/lib/libqmi.so -vendor/lib/libqmi_cci.so vendor/lib/libqmi_encdec.so -vendor/lib/libqmi_client_helper.so vendor/lib/libqmi_legacy.so -vendor/lib/libqmi_csi.so vendor/lib/libqmi_csvt_srvc.so -vendor/lib/libdsutils.so vendor/lib/libmdmdetect.so vendor/lib/libpdnotifier.so vendor/lib/libqcci_legacy.so -vendor/lib/libqdi.so -vendor/lib/libqdp.so vendor/lib/libqsocket.so vendor/lib64/libpdmapper.so vendor/lib64/libqmi_common_so.so -vendor/lib64/libqmi_client_qmux.so -vendor/lib64/libqmiservices.so -vendor/lib64/libqmi.so -vendor/lib64/libqmi_cci.so vendor/lib64/libqmi_encdec.so -vendor/lib64/libqmi_client_helper.so vendor/lib64/libqmi_legacy.so -vendor/lib64/libqmi_csi.so vendor/lib64/libqmi_csvt_srvc.so vendor/lib64/libdiag.so vendor/lib64/libdiagjni.so -vendor/lib64/libdsutils.so vendor/lib64/libmdmdetect.so vendor/lib64/libpdnotifier.so vendor/lib64/libqcci_legacy.so -vendor/lib64/libqdi.so -vendor/lib64/libqdp.so vendor/lib64/libqsocket.so -vendor/lib64/libqmiservices-sem-ext.so -vendor/lib64/libqmiextservices.so vendor/etc/sec_config # QTI vendor/etc/init/init.qti.qcv.rc # RIL -vendor/bin/hw/rild -vendor/bin/adpl -vendor/bin/netmgrd -vendor/bin/ipacm-diag -vendor/bin/tftp_server -vendor/bin/rmt_storage vendor/etc/init/dataadpl.rc vendor/etc/init/ipacm-diag.rc vendor/etc/init/vendor.qti.tftp.rc -vendor/etc/init/netmgrd.rc vendor/etc/init/vendor.qti.rmt_storage.rc -vendor/etc/data/dsi_config.xml -vendor/etc/data/netmgr_config.xml vendor/etc/plmn_delta_usagsm.bin vendor/etc/plmn_delta.bin -vendor/etc/plmn_se13.bin vendor/etc/locale/plmn_delta_zh-rCN.bin -vendor/etc/locale/plmn_delta_eng.bin vendor/etc/locale/plmn_delta_zh-rTW.bin vendor/etc/locale/plmn_delta_zh-rHK.bin vendor/etc/plmn_delta_attaio.bin -vendor/etc/plmn_delta_hktw.bin -vendor/etc/mtu-conf.xml vendor/etc/sec_config_oem vendor/etc/pdpcnt-conf.xml -vendor/lib64/libril_sem.so -vendor/lib/libconfigdb.so -vendor/lib64/libconfigdb.so -vendor/lib64/libengmode_client.so -vendor/lib/libnetmgr.so -vendor/lib/libnetmgr_common.so vendor/lib64/libnlnetmgr.so -vendor/lib64/libnetmgr.so -vendor/lib64/libnetmgr_common.so vendor/lib/libqrtr.so vendor/lib64/libqrtr.so -vendor/lib64/libsec-ril.so|27f3bb99e129e7521795c579092527d9da7ee3d2 -vendor/lib64/libsecril-client.so vendor/lib/libsystem_health_mon.so vendor/lib64/libsystem_health_mon.so vendor/lib64/libvkmanager_vendor.so vendor/lib/libxml.so vendor/lib64/libxml.so vendor/lib64/vendor.samsung.hardware.radio.bridge@2.0.so -vendor/lib64/vendor.samsung.hardware.radio.bridge@2.1.so vendor/lib64/vendor.samsung.hardware.radio@2.0.so vendor/lib64/vendor.samsung.hardware.radio.channel@2.0.so vendor/lib64/vendor.samsung.hardware.radio@2.1.so -vendor/lib64/vendor.samsung.hardware.radio@2.2.so -vendor/lib/libdsi_netctrl.so -vendor/lib64/libdsi_netctrl.so -vendor/lib/libqcmaputils.so -vendor/lib64/libqcmaputils.so -vendor/lib64/liboffloadhal.so -vendor/lib64/libnfnetlink.so -vendor/lib64/libnetfilter_conntrack.so + +# QMI - from A525FXXU4AUJ2 +vendor/bin/irsc_util|c2cb91666e88000df258730cd4a0a81a207a2704 +vendor/bin/pd-mapper|a4e55ee88823aa430b1631c98dc813754d3dc013 +vendor/bin/qrtr-ns|09cff0de46c5d4eb1cd7dfa5b5bdda015e9d7a75 +vendor/bin/ssr_setup|d29b53a3121e9e305eb5a31273d3fb9101d4ffc7 +vendor/lib/libdsutils.so|36cdb350c59799aa0a80f519f96ead7d3ee89973 +vendor/lib64/libdsutils.so|d46085964069785ea6b3bac24a69348ebd47d74c +vendor/lib/libqmi.so|721c5dc3a64d603d1aa80ee5a0692cccc7ecbdcd +vendor/lib64/libqmi.so|350b7221e85ac9930af92203aadfa8f785051917 +vendor/lib/libqmi_cci.so|9e6e1f9410034b352a90d3636dbab77e04ac798e +vendor/lib64/libqmi_cci.so|fe28dceb33e9a3070b19ea394a26245f4cc9bda3 +vendor/lib/libqmi_client_helper.so|71c4f5375645420915c2c4acdfdc82eb7ef92f76 +vendor/lib64/libqmi_client_helper.so|906e317d26ab331745166bc5a42b767c3fa517f8 +vendor/lib/libqmi_client_qmux.so|ed3d7ebdce68a988825e992143333dfa9aede478 +vendor/lib64/libqmi_client_qmux.so|c79a6964a0e4684b45c5340a5fce7a96f3442cc1 +vendor/lib/libqmi_csi.so|f65cbe21c2a8d8e1d375aeacadb1f31d2818497f +vendor/lib64/libqmi_csi.so|28b7dd8906c028af98500bbab2e912d16fab455f +vendor/lib/libqmiservices.so|97e8634aafcddc9520b788694dff0e6499ec2d00 +vendor/lib64/libqmiservices.so|33b70e96e031e646758e5d887f1c9d6792e990ab +vendor/lib/librilqmiservices-ext.so|aeefecff17a9e4f247da67f878667760535cfd8b +vendor/lib64/librilqmiservices-ext.so|a020dafb8d1932ab90bbcfe362afb93dc74d010d +vendor/lib/libqdi.so|ba4b20f2c09fff4ffc3a14d4ae9746fa21c52179 +vendor/lib64/libqdi.so|b57089bb6cdb17442b06952bf21f97ee2d4b1f30 +vendor/lib/libqdp.so|738344f32ef0c1372fb1b207232bab22800c20a0 +vendor/lib64/libqdp.so|14b4020c1cb9a04a52742b226913324ef060775b + +# RIL - from A525FXXU4AUJ2 +vendor/bin/hw/rild|72c84e72636177fd669be36a6eb8eda63fe270b0 +vendor/bin/adpl|e4b48a55f8b9a8376daf115aace6f19c6289a325 +vendor/bin/ATFWD-daemon|936e1d2b6127c551eabe6bfeeab31c2271bebf02 +vendor/bin/ipacm-diag|aa89edba217878c5ea07b2d9f89a5410078b5f98 +vendor/bin/netmgrd|6871b8c8ceb075ee710654fc2e11eff8e0eef2e1 +vendor/bin/tftp_server|2a13e915980354f803b0dd04c53bf5318bcec173 +vendor/bin/rmt_storage|17f8aa097adc319ef6b9c5caaf5ef267089f2b8d +vendor/etc/data/dsi_config.xml|ea5973ae0bffbdfbffb84fc2348b260d53b03b02 +vendor/etc/data/netmgr_config.xml|ebd99ffce6bc051ee811478c4f866907cfb80046 +vendor/etc/init/netmgrd.rc|3968aa11ebdebab2b5b53bbea1525e8cd5dfe837 +vendor/etc/locale/plmn_delta_eng.bin|642c0104ac67f587f07fa79ceab34ba43c4522fa +vendor/etc/plmn_delta_hktw.bin|97a5a4747e8c32d463d8f26254257309b8a03a63 +vendor/etc/plmn_se13.bin|e1961fbbab7d8ef092b76a707b8364ba8c4ef012 +vendor/etc/seccomp_policy/atfwd@2.0.policy|74fdb7d47bdb6d0cb06b13701a96a76c9171ab5d +vendor/etc/mtu-conf.xml|febe82a2b92265b74e9ceb528f0c9da10a3b51e7 +vendor/lib/libconfigdb.so|d6b7ee43c7cad7e9b1f296a2e9531540c5499f84 +vendor/lib64/libconfigdb.so|1193bbec010e24102caa7974a22cc0dcf0ec6c47 +vendor/lib/libdsi_netctrl.so|3ebe293a1bc3d217ad2c8acf39f4eaf9245c59f5 +vendor/lib64/libdsi_netctrl.so|24cb384cc9b8ca1bc1c0c6f36cfce5d237064bd6 +vendor/lib/libnetmgr.so|72f9fb23851dd6ffe6ac0aabfce5081d69f1839a +vendor/lib/libnetmgr_common.so|b7987fd703db7688086b10c612e910e445db65a6 +vendor/lib64/libnetmgr.so|527afad81de5394679e6ef4c46e7faf4d03e5419 +vendor/lib64/libnetmgr_common.so|9ffa3e00702aa3db43908cf44af70fb438aa5bd5 +vendor/lib/libqcmaputils.so|287f2558403918db436c39b39fa731ddda2235ee +vendor/lib64/libqcmaputils.so|7ecfbdbec099854c60a6393ee7f568bedc28989b +vendor/lib64/libengmode_client.so|a0d931e18a4e81a8de4169a419b187568d042708 +vendor/lib64/libsec-ril.so|83ec3554c733543d75148a045f51385868f308ad +vendor/lib64/libsec-ril-dsds.so|bf3d12e806e343082aa2842517b45415d5b70498 +vendor/lib64/libsecril-client.so|c49dbd56d93e00ccb3f008b955e81495573ff313 +vendor/lib/libril.so|b7759521aeb60a07b929e4ff53ba25338c4cd087 +vendor/lib64/libril.so|49d4eebf79faefd03b8378c3ed07cf44730a15ff +vendor/lib64/liblqe.so|732f3a617a90c2c96b54fe80d0ab2a409b2cb82a +vendor/lib64/vendor.qti.hardware.radio.atcmdfwd@1.0.so|c6dd375aba54c664e61cf1915477feb01154333f # Sensors vendor/bin/factory.ssc diff --git a/vendor.prop b/vendor.prop index 5b87338..3f3b294 100644 --- a/vendor.prop +++ b/vendor.prop @@ -157,11 +157,12 @@ ro.vendor.extension_library=libqti-perfd-client.so # RIL vendor.sec.rild.libpath=/vendor/lib64/libsec-ril.so +vendor.sec.rild.libpath2=/vendor/lib64/libsec-ril-dsds.so +persist.vendor.radio.atfwd.start=true ro.vendor.sec.radio.def_network=9 persist.vendor.radio.enableadvancedscan=true ro.telephony.default_cdma_sub=0 ro.telephony.default_network=9,9 -ro.vendor.use_data_netmgrd=false ro.radio.noril=no ro.vendor.epdg.support=true