diff --git a/frameworks/opt/telephony/src/java/com/android/internal/telephony/RIL.java b/frameworks/opt/telephony/src/java/com/android/internal/telephony/RIL.java index 5ecdfcbbd48..9fef7a323a7 100644 --- a/frameworks/opt/telephony/src/java/com/android/internal/telephony/RIL.java +++ b/frameworks/opt/telephony/src/java/com/android/internal/telephony/RIL.java @@ -377,6 +377,16 @@ public class RIL extends BaseCommands implements CommandsInterface { + ", service = " + serviceToString(service) + ", service cookie = " + mServiceCookies.get(service)); if ((long) msg.obj == mServiceCookies.get(service).get()) { + if (mIsCellularSupported) { + int wait_ms = SystemProperties.getInt("ro.radio.ril_wait", 0); + if (wait_ms > 0 && wait_ms < 10000) { + try { + Thread.sleep(wait_ms); + } catch (InterruptedException e) { + // do nothing + } + } + } mIsRadioProxyInitialized = false; resetProxyAndRequestList(service); } @@ -1136,6 +1146,23 @@ public class RIL extends BaseCommands implements CommandsInterface { Context.TELEPHONY_SERVICE); mIsCellularSupported = tm.isVoiceCapable() || tm.isSmsCapable() || tm.isDataCapable(); + if (SystemProperties.getBoolean("ro.radio.noril", false)) { + riljLog("RIL: cellular disabled on ro.radio.noril"); + mIsCellularSupported = false; + } + + if (mIsCellularSupported) { + // Workaround: wait rild (i.e. libquectel-ril) + int wait_ms = SystemProperties.getInt("ro.radio.ril_wait", 0); + if (wait_ms > 0 && wait_ms < 10000) { + try { + Thread.sleep(wait_ms); + } catch (InterruptedException e) { + // do nothing + } + } + } + mRadioResponse = new RadioResponse(this); mRadioIndication = new RadioIndication(this); mDataResponse = new DataResponse(this);