adb command - Marshmallow - change preferred netwo

2019-04-12 14:14发布

问题:

I am on the 6.0.1 Marshmallow OS and my previous commands to change the preferred network mode are no longer working.

Commands used in Kit Kat worked without issue:

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'

Commands from above entered in this OS result in output:

Error: no such table: global

I pulled the database file, which was completely empty:

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

Is there any ADB command that I can use to change the preferred_network_mode to LTE/GSM?

回答1:

After a lot of research, this was the working solution I found for Marshmallow.

The Preferred Network Mode numbers are found: https://android.googlesource.com/platform/hardware/ril/+/master/include/telephony/ril.h#228

1 is GSM Only

11 is LTE Only

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

This returned to me both "preferred_network_mode" and "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


回答2:

adb shell:

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

12 == LTE + WCDMA, for more see ril.h

dont forget to set preferred_network_mode1 and preferred_network_mode2 and preferred_network_mode3