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