ADB調試TP常用命令
https://blog.csdn.net/Clayton12321/article/details/87894749
adb打開 開發者選項->輸入 調試選項
adb模擬輸入事件
adb獲取/更改屏幕休眠時間
adb獲取/更改當前亮度值
adb打開 開發者選項->輸入 調試選項
在拿到板子點亮屏后,調TP時想看效果,但移植的驅動的TP效果參數一般不是優化過的,可以通過以下兩種方式打開Show taps和Pointer location([顯示點按操作反饋]和[指針位置]):
調TP前先調通USB OTG功能,然后用USB鼠標打開;
通過以下adb命令快速打開:
adb shell settings put system show_touches 1
adb shell settings put system pointer_location 1
這里用到了settings的屬性鍵值對,支持get和put操作。例如后面介紹的屏幕休眠時間和當前亮度查詢更改命令。
adb模擬輸入事件
下面列舉幾個常用的調試命令,如adb模擬電源按鍵、adb模擬Home鍵、adb模擬滑動事件等:
usage:
input text <string>
input keyevent <key code number or name>
input tap <x> <y>
input swipe <x1> <y1> <x2> <y2>
adb shell input keyevent 26 //電源鍵
adb shell input keyevent 3 //home鍵
adb shell input swipe 100 100 200 200 300 //從 100 100 經歷300毫秒滑動到 200 200
KEYCODE_POWER=26;
KEYCODE_VOLUME_UP=24;
KEYCODE_VOLUME_DOWN=25;
KEYCODE_BACK=4;
KEYCODE_HOME=3;
KEYCODE_MENU=82;
//其它keycode可參考 frameworks/base/core/res/res/values/attrs.xml
adb獲取/更改屏幕休眠時間
下面命令過去當前滅屏時間,並設置滅屏時間為1小時(600000s)
adb shell settings get system screen_off_timeout
adb shell settings put system screen_off_timeout 600000
adb獲取/更改當前亮度值
adb shell settings get system screen_brightness
adb shell settings put system screen_brightness 150
最后補充兩篇調試TP不錯的博文鏈接
https://blog.csdn.net/encourage2011/article/details/52214134
https://blog.csdn.net/jkzrc/article/details/18549957
===============
tasker支持的shell 命令大全
https://www.jianshu.com/p/d19573d093f9
新版本微信6.6.7,打開指定聯系人,
com.tencent.mm/com.tencent.mm.ui.chatting.ChattingUI --es Chat_User %par1
微信一鍵進入發文字朋友圈界面(自動養號發朋友圈用)
com.tencent.mm/com.tencent.mm.plugin.sns.ui.SnsUploadUI --ei Ksnsupload_type 9 --ei sns_comment_type 1 --ez KSnsPostManu true
支付寶開網頁(自動領取支付寶每日紅包用):
tasker-》啟動應用-》支付寶
數據欄填寫下面內容:
alipays://platformapi/startApp?appId=10000007&sourceId=xiaomiScan&actionType=route&qrcode=
https://qr.alipay.com/c1x05664q9tgbyjfpgkmg1e
淘寶開網頁
com.taobao.taobao/com.taobao.browser.BrowserActivity -d "%par1 "
京東金融開網頁
am start -n com.jd.jrapp/.ver2.common.web.WebActivity -e WEBURL "%par1 "
京東購物客戶端開網頁
am start -n com.jingdong.app.mall/.WebActivity -e url %par1
常見微信id:(配合微信打開指定聯系人
am start -n com.tencent.mm/com.tencent.mm.ui.chatting.En_5b8fbb1e -e Chat_User )
微信運動:gh_43f2581f6fd6 Tasker轉發短信到微信(http post方式,無需任何第三方插件)
已經做好的配置文件下載地址:https://pan.baidu.com/s/1hr7MVAk
主要內容,http post配置:
服務器(端口號):
https://pushbear.ftqq.com/sub
數據/文件(參數par1和par2可以通過任務調用傳入,可以是短信內容等任何需要的內容):sendkey=1784-36339d61de9eee04dee1130f3c82fbf1&desp=%par2&text=%par1
內容類型(注意這里很關鍵):application/x-www-form-urlencoded;charset=UTF-8
目前sendkey是我創建的tasker群免費公開通道,需要更多自定義可以聯系thq3322110@gmail.com
要收到微信內容,需要掃碼關注下面的內容(消息通過公眾號,發送到關注者的微信上,需要微信自動同時通知多人,可以讓多人都掃碼關注):
以上內容更新時間:2017年12月19日
tasker轉發短信到郵件(http post方式,無需任何第三方插件)關鍵內容如下:(注意自己將短信內容關鍵字屏蔽,如銀行卡、手機尾號等,可以用變量搜索替換方式替換位特殊字符---)
一、添加配置事件
按以下路徑操作:
Tasker -> 添加配置文件 -> 事件 -> 電話 -> 收到短信
返回會彈出進入任務的選項框,選擇新建任務,如果已有任務也可以直接選擇已創建好的任務綁定即可。
二、新建任務
1.新任務名稱:smsToMail
2.點擊 + 添加操作 -> 網絡 -> HTTP POST
HTTP POST配置
1.服務器端口:www.achoc.com
說明:可以是IP也可以是解析的域名,不能帶http、斜線什么的,否則無法適配
2.路徑:api/smstomail.asp
說明:這里是接口路徑
3.內容類型(Content Type):application/x-www-form-urlencoded;charset=utf-8
說明:選擇不同的內容類型直接影響數據傳遞參數的不同方式,添加utf-8是為了保持和服務器一致以免出現亂碼
4.數據/文件:mode=sms&smsrn=%SMSRN&smsrf=%SMSRF&smsrb=%SMSRB&smsrd=%SMSRD&smsrt=%SMSRT&tomail=10000@qq.com
說明:這是form POST數據封裝結構,根據內容類型配置而決定;
數據結構說明:
mode=sms (sms模式 保持不變)
smsrn=%SMSRN (發件人姓名 保持不變)
smsrf=%SMSRF (發件人號碼 保持不變)
smsrb=%SMSRB (短信內容 保持不變)
smsrd=%SMSRD (發件日期 保持不變)
smsrt=%SMSRT (發件時間 保持不變)
tomail=10000@qq.com (要發送到的郵箱 這里修改為你自己的郵箱)
5.其余配置選項不用填寫默認為空即可,返回上級自動保存,如自己有網站開發能力可以將接口修改為自己的接口。
詳細內容請參考
http://www.gxchina.com/edu/11217.html
以上更新時間:2017年12月19日
tasker開啟屏幕錄像(關鍵字 tasker shell 屏幕錄像 錄屏 截屏 截圖 screenrecord )
su
screenrecord --time-limit 180 --bit-rate 1000000 --size 720x480 %par1
參數解釋:--time-limit 180;最長時長180秒,范圍1-180,不寫默認位180
--bit-rate 1000000;比特率,1M;默認4000000,4M;
--size 720x480;視頻分辨率大小,如果不指定默認使用手機的分辨率,為獲得最佳效果
%par1 為輸出路徑,比如/sdcard/錄制.mp4
更多請參考http://blog.csdn.net/rjdeng/article/details/50760235
更新日期:2017年12月15日
tasker檢測來電是否為來電轉移來電?
1.安裝xposed插件Diverted call detector,下載地址http://dl-xda.xposed.info/modules/ch.masshardt.divertedcall_v2_fffa9b.apk 請自行確保已啟用
2.tasker添加事件-》系統-》收到的意圖-》操作,填入ch.masshardt.divertedcall.STATE_CHANGED
3.執行任務中,可以使用下面3個局部變量
狀態 %state
號碼 %number
姓名 %contact_name
(說明:米6,miui9無法接收到該意圖,目前原因未知。能否用,請自測)
以上更新時間:2017.12.06
tasker內置隱藏的局部變量:
具體參考https://www.rorycodes.com/tasker-tip-tuesdays-local-built-in-variables/
%errmsg
任務執行失敗的文字描述
%qtime
當前任務已經執行耗時(秒)
%wifi_state
wifi熱點狀態值,具體參考http://www.cnblogs.com/thq3322110/p/6397156.html
%evtprm
參考下面的內容
tasker獲取微信通知欄詳情:
%evtprm是部分事件觸發的任務,都可以使用的tasker內置局部變量
所有任務都可以訪問這個局部變量,有沒有值就看tasker本身有沒有給這個變量賦值。
新建微信通知欄事件,執行任務中,%evtprm這個變量(實際是個數組)存儲了該次通知事件的所有詳細內容,具體自己研究。
以上內容10月26日更新
自動輸入鎖屏密碼,可以通過shell input text 密碼方式實現,注意手機配置自動顯示鎖屏密碼和密碼正確自動解鎖,MIUI9可用
隱藏導航欄
settings put global policy_control immersive.navigation=*
恢復導航欄
settings put global policy_control null
以上內容10月24日更新
安卓7下,清除鎖屏密碼、pin、指紋、滑動解鎖等,可以使用secureTask
安卓7下secure setting、es文件管理器無法獲取root權限的解決:
用re文件管理器,將/su/bin/su文件創建鏈接,放到system/xbin目錄下即可
miui中shell命令,勾選了root,但是執行失敗?
在一個shell動作的第一行,寫 su
換行在寫具體命令即可
微信打開指定聯系人(%par1 可以是微x獲取的“微信id”,也可以是微信好友的“微信號”,微信版本6.5.10有效,其他未測試)
am start -n com.tencent.mm/com.tencent.mm.ui.chatting.En_5b8fbb1e -e Chat_User %par1
支付寶掃一掃
am start -n com.eg.android.AlipayGphone/com.alipay.mobile.scan.as.main.MainCaptureActivity
微信掃一掃
am start -n com.tencent.mm/com.tencent.mm.plugin.scanner.ui.BaseScanUI
微信搜索
am start -n com.tencent.mm/com.tencent.mm.plugin.search.ui.FTSMainUI
注意am start -n xxxxx/webview -e weburl http://www.baidu.com 這類用法時,有時候需要將http://www.baidu.com用雙引號擴起來,才能正常打開
以上內容更新時間:2017年9月7日
參考
http://www.notenoughtech.com/tasker/tasker-run-shell-commands/
羅列所有系統配置項
settings list systemsettings list globalsettings list secure
以下是雙卡管理(每個系統命令可能不一樣,具體通過
settings list global|grep multi
settings list global|grep _data
類似這樣的命令查詢
)
settings put global mobile_data1 0(或者1)//開關卡1數據
settings put global mobile_data2 0(或者1)//開關卡2數據
settings put global user_preferred_data_sub 1(或者2)//使用卡1還是卡2數據
settings put global mobile_data 0(或者1)
settings put global multi_sim_data_call 1(或者2)//使用卡1還是卡2撥號
settings put global multi_sim_sms 1(或者2)//使用卡1或者卡2發短信
stop ril-daemon
start ril-daemon
stop ril-daemon1
start ril-daemon1
stop ril-daemon2
start ril-daemon2
settings put system switch_dual_card_slots 0/1
settings put global multi_sim_voice_call_slot
settings put global multi_sim_data_call_slot
settings put Global Config_current_primary_sub 0/1
am broadcast -a android.intent.action.SUB_DEFAULT_CHANGED
content://telephony/siminfo
以上內容更新2017年8月11日 (未整理)
1.獲取觸摸球狀態
settings get system show_touches
顯示觸摸球(1顯示,0關閉)
settings put system show_touches 1
2.獲取觸摸點坐標
settings get system pointer_location
是否顯示觸摸點坐標(1顯示,0隱藏)
settings put system pointer_location 1
3.京東金融簽到頁面
am start -n com.jd.jrapp/com.jd.jrapp.ver2.common.web.WebActivity -es WEBURL
https://m.jr.jd.com/spe/shake/checkin/index.html
以上內容更新時間2017年8月10日
在塔斯克運行shell命令大全(需要root權限):
1.如果手機已經root,但是tasker檢查不到root,請安裝supersu,僅需安裝不需要激活
2.停用開發者模式里面的“hw疊加層”,據說可以加快手機反應速度,注意重啟后會自動關閉,所以建議建立開機任務
service call SurfaceFlinger 1008 i32 1
3.切換selinux,關閉selinux的話,很多破解軟件就能安裝了
setenforce 0 (關閉)
setenforce 1 (開啟)
4.修改設備id(一般用於刷機后,恢復之前的設備id,防止微信數據還原后,需要新手機登錄驗證)
settings put secure android_id 16e123123123123123123 (設置為16e123123123123123123)
settings get secure android_id (獲取設備id)
5.tasker獲取網頁xml時防止卡住其他任務,建議使用curl,(tasker自帶HTTPget,httppost網絡連接不成功時,會卡住整個tasker執行,curl不會)
curl www.baidu.com
輸出存儲到變量%ret,%ret即網頁內容
如果要帶cookies,加參數就行,舉例
curl -b 哈哈哈我是cookies內容 www.baidu.com
6.微信中打開網頁(可以用作公眾號自動簽到類)(關鍵字 tasker open url with wechat 微信 網頁 url)
am start -n com.tencent.mm/com.tencent.mm.plugin.webview.ui.tools.WebViewUI -d http://www.baidu.com
7.手機qq中打開網頁(可以用作公眾號自動簽到類)(關鍵字 tasker open url with qq 網頁 url)
am start -n com.tencent.mobileqq/.activity.QQBrowserDelegationActivity --es url http://www.baidu.com
以上內容更新時間2017年7月25日 12:48:39
啟動程序
am start -n 包名/包名+類名(-n 類名,-a action,-d date,-m MIME-TYPE,-c category,-e 擴展數據,等)。
pm list packages 列出所有應用
飛行模式開/關
settings put global airplane_mode_on 1; am broadcast -a android.intent.action.AIRPLANE_MODE --ez state true
settings put global airplane_mode_on 0; am broadcast -a android.intent.action.AIRPLANE_MODE --ez state false
開/關移動數據
svc data enable
svc data disable
檢查文件夾是否存在(1 =無0 = YES)
[ -d /sdcard/DCIM/Camera/ ] &amp;&amp; echo 1 || echo 0
存儲輸出%變量
提取ZIP文件(文件%)
unzip %file /sdcard/
移動文件,復制文件
mv /original/path /new/path
cp /original/path /new/path
刪除文件,刪除文件夾
rm /path/to/file
rm -r /path/to/folder
讀文件,寫變量(%VAR)到文件
cat /path/to/file
echo %var > /path/to/file
存儲輸出%變量
制造商/系統可重寫,使系統只讀
mount -o remount,rw /system
mount -o remount,ro /system
更改文件權限(/系統/ etc / hosts文件為例)文件權限類型(7 = RWX; 6 = RW; 4 = R)(CHMOD(根:組;用戶))
chmod 644 /system/etc/hosts
檢查文件的md5sum
md5sum /path/to/file
檢查進程正在運行(返回過程或空)
pgrep -x com.package.name(修改為pgrep -f program_name 列出進程名為 program_name 的ID 2017年2月14日 15:36:56)
存儲輸出%變量
停止當前下載
am force-stop com.android.providers.downloads
pm clear com.android.providers.downloads
殺死一個應用程序(例子:chrome瀏覽器)
am force-stop com.android.chrome
重新啟動系統UI
pkill -l TERM -f com.android.systemui
重啟,重啟恢復
svc power reboot
svc power reboot recovery
截圖到SD卡
screencap -p /sdcard/screengrab.png
檢查鍵盤輸出(1 =無0 = YES)
cat /proc/$(pgrep com.touchtype.swiftkey)/oom_adj
存儲輸出%變量
IP檢測(-c計數,-i間隔-s PACKETSIZE,-t TTL = XXX IP)
ping -c 3 xxx.xxx.xxx.xxx
存儲輸出%變量
儲存最后輸入坐標
getevent -lc 3 /dev/input/event1 | grep ABS_MT_POSITION_.
存儲輸出%變量
模擬用戶的擊鍵輸入
input tap X Y
模擬用戶長按輸入(持續時間250)
input swipe X1 Y1 X1 Y1 250
模擬文本輸入
input text sampletext
模擬用戶划屏(Z =時長)
input swipe X1 Y1 X2 Y2 Z
模擬特定鍵(例子:返回)
input keyevent 4
KeyEvent名單:
0 --> "KEYCODE_UNKNOWN"
1 --> "KEYCODE_MENU"
2 --> "KEYCODE_SOFT_RIGHT"
3 --> "KEYCODE_HOME"
4 --> "KEYCODE_BACK"
5 --> "KEYCODE_CALL"
6 --> "KEYCODE_ENDCALL"
7 --> "KEYCODE_0"
8 --> "KEYCODE_1"
9 --> "KEYCODE_2"
10 --> "KEYCODE_3"
11 --> "KEYCODE_4"
12 --> "KEYCODE_5"
13 --> "KEYCODE_6"
14 --> "KEYCODE_7"
15 --> "KEYCODE_8"
16 --> "KEYCODE_9"
17 --> "KEYCODE_STAR"
18 --> "KEYCODE_POUND"
19 --> "KEYCODE_DPAD_UP"
20 --> "KEYCODE_DPAD_DOWN"
21 --> "KEYCODE_DPAD_LEFT"
22 --> "KEYCODE_DPAD_RIGHT"
23 --> "KEYCODE_DPAD_CENTER"
24 --> "KEYCODE_VOLUME_UP"
25 --> "KEYCODE_VOLUME_DOWN"
26 --> "KEYCODE_POWER"
27 --> "KEYCODE_CAMERA"
28 --> "KEYCODE_CLEAR"
29 --> "KEYCODE_A"
30 --> "KEYCODE_B"
31 --> "KEYCODE_C"
32 --> "KEYCODE_D"
33 --> "KEYCODE_E"
34 --> "KEYCODE_F"
35 --> "KEYCODE_G"
36 --> "KEYCODE_H"
37 --> "KEYCODE_I"
38 --> "KEYCODE_J"
39 --> "KEYCODE_K"
40 --> "KEYCODE_L"
41 --> "KEYCODE_M"
42 --> "KEYCODE_N"
43 --> "KEYCODE_O"
44 --> "KEYCODE_P"
45 --> "KEYCODE_Q"
46 --> "KEYCODE_R"
47 --> "KEYCODE_S"
48 --> "KEYCODE_T"
49 --> "KEYCODE_U"
50 --> "KEYCODE_V"
51 --> "KEYCODE_W"
52 --> "KEYCODE_X"
53 --> "KEYCODE_Y"
54 --> "KEYCODE_Z"
55 --> "KEYCODE_COMMA"
56 --> "KEYCODE_PERIOD"
57 --> "KEYCODE_ALT_LEFT"
58 --> "KEYCODE_ALT_RIGHT"
59 --> "KEYCODE_SHIFT_LEFT"
60 --> "KEYCODE_SHIFT_RIGHT"
61 --> "KEYCODE_TAB"
62 --> "KEYCODE_SPACE"
63 --> "KEYCODE_SYM"
64 --> "KEYCODE_EXPLORER"
65 --> "KEYCODE_ENVELOPE"
66 --> "KEYCODE_ENTER"
67 --> "KEYCODE_DEL"
68 --> "KEYCODE_GRAVE"
69 --> "KEYCODE_MINUS"
70 --> "KEYCODE_EQUALS"
71 --> "KEYCODE_LEFT_BRACKET"
72 --> "KEYCODE_RIGHT_BRACKET"
73 --> "KEYCODE_BACKSLASH"
74 --> "KEYCODE_SEMICOLON"
75 --> "KEYCODE_APOSTROPHE"
76 --> "KEYCODE_SLASH"
77 --> "KEYCODE_AT"
78 --> "KEYCODE_NUM"
79 --> "KEYCODE_HEADSETHOOK"
80 --> "KEYCODE_FOCUS"
81 --> "KEYCODE_PLUS"
82 --> "KEYCODE_MENU"
83 --> "KEYCODE_NOTIFICATION"
84 --> "KEYCODE_SEARCH"
85 --> "TAG_LAST_KEYCODE"
獲取電池省電配置文件狀態/啟用/禁用
settings get global low_power
settings put global low_power 1
settings put global low_power 0
Greenify打盹啟用/禁用
am stopservice com.oasisfeng.greenify/.DozeService
pm disable com.oasisfeng.greenify/.DozeService
pm enable com.oasisfeng.greenify/.DozeService
am startservice com.oasisfeng.greenify/.DozeService
顯示您的電池電量,健康和溫度(輸出需求格式化)
dumpsys battery | grep health
dumpsys battery | grep temperature
存儲輸出%變量
Wi-Fi(掃描總是可用)ON / OFF
settings put global wifi_scan_always_enabled 1
settings put global wifi_scan_always_enabled 0
調整屏幕和復位
wm overscan 150,750,0,0
wm overscan reset
查詢的Wi-Fi(掃描總是可用)狀態
settings get global wifi_scan_always_enabled
存儲輸出%變量
查詢當前已啟用位置提供商
settings get secure location_providers_allowed
存儲輸出%變量
查詢啟用無障礙服務
settings get secure enabled_accessibility_services
存儲輸出%變量
查詢啟用通知監聽器
settings get secure enabled_notification_listeners
存儲輸出%變量
啟用一項輔助服務(例子:自動輸入)
settings get secure enabled_accessibility_services
存儲輸出%變量:
settings put secure enabled_accessibility_services %Variable:com.joaomgcd.autoinput/com.joaomgcd.autoinput.service.ServiceAccessibility
啟用通知監聽器(AutoNotification例子)
settings get secure enabled_notification_listeners
存儲輸出%變量:
settings put secure enabled_notification_listeners %Variable:com.joaomgcd.autonotification/com.joaomgcd.autonotification.service.ServiceNotificationIntercept
切換3g4g
adb shell su -c 'am broadcast -a gravitybox.intent.action.CHANGE_NETWORK_TYPE --ez networkType 1'
Open tasker
Create a new task - misc - send intent
Paste the following into the action box: "gravitybox.intent.action.CHANGE_NETWORK_TYPE"
Paste the following into the extra box:
"networkType:2"
The above will switch to3g. Change the 2 as per below as required.
0 - 2G/3G auto (3G preferred)
1 - 2G
2 - 3G
9 (or 10) - LTE
// NETWORK_MODE_* See ril.h RIL_REQUEST_SET_PREFERRED_NETWORK_TYPEintNETWORK_MODE_WCDMA_PREF=0;// GSM/WCDMA (WCDMA preferred)intNETWORK_MODE_GSM_ONLY=1;// GSM onlyintNETWORK_MODE_WCDMA_ONLY=2;// WCDMA onlyintNETWORK_MODE_GSM_UMTS=3;// GSM/WCDMA (auto mode, according to PRL)**intNETWORK_MODE_CDMA=4;// CDMA and EvDo (auto mode, according to PRL)**intNETWORK_MODE_CDMA_NO_EVDO=5;// CDMA onlyintNETWORK_MODE_EVDO_NO_CDMA=6;// EvDo onlyintNETWORK_MODE_GLOBAL=7;// GSM/WCDMA, CDMA, and EvDo (auto mode, according to PRL)**intNETWORK_MODE_LTE_CDMA_EVDO=8;// LTE, CDMA and EvDointNETWORK_MODE_LTE_GSM_WCDMA=9;// LTE, GSM/WCDMAintNETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA=10;// LTE, CDMA, EvDo, GSM/WCDMAintNETWORK_MODE_LTE_ONLY=11;// LTE Only mode.intNETWORK_MODE_LTE_WCDMA=12;// LTE/WCDMAintNETWORK_MODE_TDSCDMA_ONLY=13;// TD-SCDMA onlyintNETWORK_MODE_TDSCDMA_WCDMA=14;// TD-SCDMA and WCDMAintNETWORK_MODE_LTE_TDSCDMA=15;// TD-SCDMA and LTEintNETWORK_MODE_TDSCDMA_GSM=16;// TD-SCDMA and GSMintNETWORK_MODE_LTE_TDSCDMA_GSM=17;// TD-SCDMA,GSM and LTEintNETWORK_MODE_TDSCDMA_GSM_WCDMA=18;// TD-SCDMA, GSM/WCDMAintNETWORK_MODE_LTE_TDSCDMA_WCDMA=19;// TD-SCDMA, WCDMA and LTEintNETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA=20;// TD-SCDMA, GSM/WCDMA and LTEintNETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA=21;// TD-SCDMA,EvDo,CDMA,GSM/WCDMAintNETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA=22;// TD-SCDMA/LTE/GSM/WCDMA, CDMA, and EvDo
Send Intent [
Action: gravitybox.intent.action.CHANGE_NETWORK_TYPE
Cat: None
Mime Type:
Data:
Extra: networkType:1
Extra:
Package:
Class:
Target: Broadcast Receiver]
networkType enum values are:
0: WCDMA Preferred
1: GSM only <-- This would be "2G" on GSM networks
2: WCDMA only <--WCDMA is "3G" on GSM networks. You may know it as HSPA
3: GSM auto (PRL)
4: CDMA auto (PRL)
5: CDMA only <-- This would be "2G" on CDMA networks
6: EvDo only <-- EvDo is "3G" on CDMA networks
7: GSM/CDMA auto (PRL)
8: LTE/CDMA auto (PRL)
9: LTE/GSM auto (PRL)
10: LTE/GSM/CDMA auto (PRL)
11: LTE only
12: "unknown"
settings put global preferred_network_mode 1
settings put global preferred_network_mode 9
settings put global preferred_network_mode1 9
settings put global preferred_network_mode2 9
setenforce permissive;svc data disable;setenforce enforcing
============ End