填坑:Shell实用命令指北
小贝塔
2019-10-25 小米6
一、前言
我没系统学过shell命令和安卓开发,有些地方说的不对,还望各位指出,互相学习!
shell即Unix Shell,在类Unix系统提供与操作系统交互的一系列命令。此文章参考的命令有linux 的shell,还有adb shell(Android Debug Bridge Shell)。
怎么说呢,手机上的执行shell命令是离不开busybox的,如果shell命令执行不了,就检查下系统有没有busybox。
------------------------------
------------------------------
二、使用
-支持软件: #Xposed edge# 、 【Tasker:Android系统增强神器】 、 【FV悬浮球-fooView】 、 【高级终端Termux】 等一系列终端模拟器、等;
-使用方法:各大评论区及百度。
注:无法使用有关命令请装完整版busybox。
有些命令运行需要root权限,自己试试。
------------------------------
------------------------------
三、实用Shell命令列举
注:以下文件用1.txt等代替,表示完整目录下的文件/sdcard/1.txt
-1、文件操作
>下载文件:wget -p 文件夹 网址
>复制文件:cp 1.txt 文件夹
>移动文件:mv 1.txt 文件夹
>删除文件:rm 1.txt 或rm 文件夹(删除文件夹及文件夹下文件)
或rm 文件夹/*(删除文件夹下文件)
>合并文件:cat 1.txt 2.txt 3.txt > 4.txt
--应用举例:去广告hosts合并应用(下载yhosts、大圣规则、自用hosts来合并替换系统hosts)
去广告hosts合并来替换系统hosts
------------------------------
-2、模拟用户操作
>点击屏幕坐标:input tap X Y
>长按250ms:input swipe X1 Y1 X1 Y1 250
>划动屏幕屏250ms:input swipe X1 Y1 X2 Y2 250
>输入文本:input text 文本
>打电话给10086:am start -a android.intent.action.CALL -d tel:10086
>模拟按键:关机键、主页键、返回键、F1、Ctrl、Shift都能模拟,详情见文末参考文章1,举几个例子:
>>模拟返回键:input keyevent 4
>>播放下一首:input keyevent 87
>>降低屏幕亮度:input keyevent 220
注:调出屏幕坐标有两种一种是在开发者选项里开启指针位置,其实一个命令就能调出来
>开启指针位置:settings get system pointer_location 1
>关闭指针位置:settings get system pointer_location 0
合并一下(点击后开关交替):
enabled=$(settings get system pointer_location)
if [[ $enabled == 1 ]]
then settings put system pointer_location 0
else settings put system pointer_location 1
fi
------------------------------
-3、安卓应用相关
>安装apk pm install 文件.apk
>卸载apk pm uninstall <包名>
>隐藏应用 pm hide <包名>
>显示应用 pm unhide <包名>
>停止应用 am force-stop 包名
------------------------------
-4、启动软件命令
--4.1 am start -n 类
介绍: 打开的是软件的activy界面,酷安有好多这样的软件了,其实都可以用一个命令来代替,比如QQ、微信、支付宝等扫描二维码一类
模板:am start -n 包名/包名.活动名
或者:am start -n 包名/.活动名
包名活动名用 【Activity】 、 【应用管理Xposed】 、 【开发者助手】 、 【开发助手】 来抓
------------------------------
常用举例:
---4.1.1 shell打开微信好友、QQ号、QQ群 聊天界面
>1、打开微信好友聊天界面(时灵时不灵):
am start -n com.tencent.mm/com.tencent.mm.ui.chatting.ChattingUI --es Chat_User 微信号
>2、打开指定QQ聊天界面:
am start -n com.tencent.mobileqq/com.tencent.mobileqq.activity.SplashActivity --ez open_chatfragment true --ei uintype 0 --es uin QQ号
>3、打开指定QQ 聊天界面:
am start -n com.tencent.mobileqq/com.tencent.mobileqq.activity.SplashActivity --ez open_chatfragment true --ei uintype 1 --es uin QQ群号
>4、QQ内打开网址(失效):
am start -n com.tencent.mobileqq/com.tencent.mobileqq.activity.QQBrowserActivity --es url 网址
>5、微信内打开网址:
am start -n com.tencent.mm/com.tencent.mm.plugin.webview.ui.tools.WebViewUI -d 网址
>6、支付宝内打开网址:
am start -n com.eg.android.AlipayGphone/com.alipay.mobile.nebulacore.ui.H5Activity --es url baidu.com网址
------------------------------
---4.1.2 启动应用或启动应用二级界面
>启动QQ:am start -n com.tencent.mobileqq/com.tencent.mobileqq.activity.SplashActivity
其他的就自己抓activy
------------------------------
--4.2 am start “intent:intent值” 类
抓取inent值方法有两种,
-简单的:先用Xposed Edge 带参数提取应用活动,然后提取 /data/user_de/0/com.jozein.xedgepro/prefs/collection 的相关intent值
-麻烦的:查看链接 (补充一句,可以用虚拟大师来找/data/data/ch.deletescape.lawnchair.plah/databases/launcher.db 这个文件进行相关操作)
---应用举例:打开微信小程序、桌面
------------------------------
---4.3 am start -a android.intent.action.VIEW -d ‘URL Shemes’
这个URL Shemes 苹果手机用的多,有关软件界面跳转参数请百度,我这里只分享支付宝有关的
>支付宝扫一扫:
am start -a android.intent.action.VIEW -d alipays://platformapi/startapp?appId=10000007
>支付宝转账:
am start -a android.intent.action.VIEW -d alipays://platformapi/startapp?appId=09999988
其他还有很多,请见这个帖子查看链接 评论区老哥分享的appId
------------------------------
-5、延伸发散思维
--5.1:使用打开软件和模拟用户点击能做一些自动化的任务
--5.2:替换开屏activy为主activy能跳广告,不过有副作用,治标不治本
--5.3:多个shell命令组合并且加入延时就能做成简单的shell脚本(.sh)
------------------------------
------------------------------
-四、总结
>实不相瞒,这个帖子是填坑的
>不会的可以去百度、去搜索,转换另一种思维去想,自己碰见的问题别人肯定碰见过,你搜不到很可能是搜索的词语不准确,仔细想,多看多想多总结,举一反三
>shell命令可以跳过一些界面,有时候参数会不全也是不行的
>很多东西具有相似点,试试看
>搜索举例:adb shell 打开啥啥啥、shell命令合并文件、shell命令啥啥啥……
------------------------------
Shell 命令参考文章:
文章1:查看链接
文章2:查看链接
文章3:查看链接
常用的URL Scheme 参考文章:
文章4:查看链接
#Tasker# #fv悬浮球自定义任务#
转载请注明出处 ,技术贴,给头条吧@酷安小编
最后求关注,涨点粉吧