adb 命令 - Marshmallow - 更改首选网络模式 LTE/GSM

adb command - Marshmallow - change preferred network mode LTE/GSM

我使用的是 6.0.1 Marshmallow OS,我之前更改首选网络模式的命令不再有效。

Kit Kat 中使用的命令没有问题:

adb shell sqlite3 /data/data/com.android.providers.settings/databases/settings.db "SELECT * FROM global WHERE name='preferred_network_mode'"
adb shell sqlite3 /data/data/com.android.providers.settings/databases/settings.db "update global SET value=1 WHERE name='preferred_network_mode'"
adb shell sqlite3 /data/data/com.android.providers.settings/databases/settings.db "select value FROM secure WHERE name='preferred_network_mode'

在此 OS 中输入上面的命令导致输出:

Error: no such table: global

我拉取了完全空的数据库文件:

adb pull /data/data/com.android.providers.settings/databases/

是否有任何 ADB 命令可用于将 preferred_network_mode 更改为 LTE/GSM?

经过大量研究,这是我为 Marshmallow 找到的有效解决方案。

已找到首选网络模式编号: https://android.googlesource.com/platform/hardware/ril/+/master/include/telephony/ril.h#228

1 仅适用于 GSM

11 仅适用于 LTE

adb wait-for-devices
adb root
adb wait-for-devices
adb shell settings list global | grep pref

这 "preferred_network_mode" 和 "preferred_network_mode1"

都返回给我了
adb shell settings put global preferred_network_mode 1
adb shell settings put global preferred_network_mode1 1
adb shell stop ril-daemon
adb shell start ril-daemon

亚行shell:

content update --uri content://settings/global --bind value:i:12 --where "name='preferred_network_mode'"

12 == LTE + WCDMA,更多信息请参阅 ril.h

别忘了设置preferred_network_mode1和preferred_network_mode2和preferred_network_mode3

要在 SUB1 上设置 RAT,运行 下面的命令:

adb wait-for-devices

adb root

adb wait-for-devices

adb remount

adb shell settings put global preferred_network_mode 1

adb shell settings put global preferred_network_mode1 1

adb shell stop ril-daemon

adb shell start ril-daemon

adb shell settings put global airplane_mode_on 1

adb shell am broadcast -a android.intent.action.AIRPLANE_MODE --ez state true

adb shell sleep 5;

adb shell settings put global airplane_mode_on 0

adb shell am broadcast -a android.intent.action.AIRPLANE_MODE --ez state false

现在,通过 运行ning 下面的命令检查 RAT 是否设置:

adb shell dumpsys telephony.registry | grep mServiceState