Android 执行shell命令 非root
一个开源的项目已经完成了这个功能
app_process-shell-use,这个项目网上讲解的,很多,我这边就把操作时一些简要步骤说明一下
但是该方式有缺点:必须要先USB连接,debug的时候,运行第13步,
断开USB 无法再通过Socket运行adb shell命令
国内github又访问不了了,我就在gitee上随便找了个一样的项目,
步骤如下:
1. Android Studio 新增一个没有Activity的项目
2. 新建package shellService
3. 将路径中四个文件都copy到新建的package下
文件地址:https://gitee.com/zhang_yu_xing/app_process-shell-use/tree/master/app/src/main/java/shellService
4. java ->项目包名 ->copyMainActivity,
文件地址:https://gitee.com/zhang_yu_xing/app_process-shell-use/blob/master/app/src/main/java/top/gtf35/shellapplicatontest/MainActivity.java
同路径下,copy工具类
文件地址:https://gitee.com/zhang_yu_xing/app_process-shell-use/blob/master/app/src/main/java/top/gtf35/shellapplicatontest/SocketClient.java
5. res -> layout copy布局
文件地址:https://gitee.com/zhang_yu_xing/app_process-shell-use/blob/master/app/src/main/res/layout/activity_main.xml
6. 文件清单修改,copy应用入口,及默认权限
文件地址:https://gitee.com/zhang_yu_xing/app_process-shell-use/blob/master/app/src/main/AndroidManifest.xml
7.连上设备 debug运行
8. 在项目名称\\app\build\outputs\apk\debug\下存在debug APK,将其解压,将解压后文件夹内的classes.dex copy到与debug APK同级的路径下
cd app\build\outputs\apk\debug\
9. Android Studio 底部terminal窗口,默认在当前项目下,cd app\build\outputs\apk\debug
10. adb push classes.dex /data/local/tmp
11.adb shell
12.cd /data/local/tmp
13. app_process -Djava.class.path=/data/local/tmp/classes.dex /system/bin shellService.Main
至此,执行shell命令的socket服务开启,
打印内容如下:
>>>>>>Shell服务端程序被调用<<<<<<
服务端运行在4521端口
在设备运行的初始页面中,输入要执行的命令(如命令前带有abd shell,可将其去掉),点击执行即可
至此完成
Android 执行shell命令 非root的更多相关文章
- Android执行shell命令
一.方法 /** * 执行一个shell命令,并返回字符串值 * * @param cmd * 命令名称&参数组成的数组(例如:{"/system/bin/cat", &q ...
- Android执行shell命令 top ps
Android执行shell命令 一.方法 /** * 执行一个shell命令,并返回字符串值 * * @param cmd * 命令名称&参数组成的数组(例如:{"/system/ ...
- Android Java执行Shell命令
最新内容建议直接访问原文:http://www.trinea.cn/android/android-java-execute-shell-commands/ 主要介绍Android或Java应用中如何 ...
- Android 用java语言执行Shell命令
最近项目中需要用到java语言来执行shell命令,在网上查了资料, 把自己在项目里用到的命令整理成了工具类开放给大家,希望对大家有用.功能不全,后期我会慢慢添加整合. public class Sh ...
- c++ cgi执行shell命令l发送qq邮件mailx
#include <cstdlib> //随机数 #include <iostream> #include <cstdio> //popen函数调用的需要 #inc ...
- Linux远程执行Shell命令或脚本
## 远程执行shell命令 ssh [user]@[server] '[command]' # eg. ssh root@192.168.1.1 'uptime' ## 远程执行本地shell脚本 ...
- subprocess模块还提供了很多方便的方法来使得执行 shell 命令
现在你可以看到它正常地处理了转义. 注意 实际上你也可以在shell=False那里直接使用一个单独的字符串作为参数, 但是它必须是命令程序本身,这种做法和在一个列表中定义一个args没什么区别.而如 ...
- python(6)-执行shell命令
可以执行shell命令的相关模块和函数有: os.system os.spawn* os.popen* --废弃 popen2.* --废弃 commands.* ...
- loadrunner调用plink,远程linux执行shell命令
loadrunner调用plink,远程linux执行shell命令 脚本: Action() { char* cmd; cmd = lr_eval_string("C:\\\&qu ...
- python中执行shell命令的几个方法小结
原文 http://www.jb51.net/article/55327.htm 最近有个需求就是页面上执行shell命令,第一想到的就是os.system, os.system('cat /proc ...
随机推荐
- Python入门学习介绍
什么是Python? Python它是一种直译式,面向对象,解释式的脚本语言.它和Java,C/C++,Go语言一样都是高级语言,但由于它是解释式语言,所以运行速度会比Java,C/C++等语言慢(虽 ...
- Mac Docker设置国内镜像加速器
安装docker 点我直达 设置国内加速镜像 { "experimental": false, "features": { "buildkit&quo ...
- CaiT:Facebook提出高性能深度ViT结构 | ICCV 2021
CaiT通过LayerScale层来保证深度ViT训练的稳定性,加上将特征学习和分类信息提取隔离的class-attention层达到了很不错的性能,值得看看 来源:晓飞的算法工程笔记 公众号 论文: ...
- oeasy教您玩转python - 002 - # 你好世界 - 各位同学除夕快乐,除旧布新之时预祝能玩
你好世界 回忆上次内容 了解了 Python 安装了 Python 进入了 Python 退出了 Python 可是我们什么也没有做就离开了 IDLE 游乐场! 你好世界 #首先进入Python3 ...
- [rCore学习笔记 03]配置rCore开发环境
写在前面 本随笔是非常菜的菜鸡写的.如有问题请及时提出. 可以联系:1160712160@qq.com GitHhub:https://github.com/WindDevil (目前啥也没有 rCo ...
- Python 实现Excel和TXT文本格式之间的相互转换
Excel是一种具有强大的数据处理和图表制作功能的电子表格文件,而TXT则是一种简单通用.易于编辑的纯文本文件.将Excel转换为TXT可以帮助我们将复杂的数据表格以文本的形式保存,方便其他程序读取和 ...
- browsermob-proxy-2.1.4启动失败,报错ProxyServerError: The Browsermob-Proxy server process failed to start
报错信息:ProxyServerError: The Browsermob-Proxy server process failed to start. Check <_io.TextIOWrap ...
- ssh 转发 和 切换图形化
适用环境 宿主机连接到一台服务器是,服务器系统里面的浏览器点击http网页卡顿,那么这时可以通过ssh将端口转发到宿主机 使用宿主机的浏览器点击,则不会很卡顿. [root@foundation1 ~ ...
- 【Mybatis】08 ResultMap、Association、分步查询、懒加载
ResultMap自定义结果集 可以把查询返回的结果集封装成复杂的JavaBean对象 原来的ResultType属性,只能把查询到的结果集转换为简单的JavaBean 什么是简单的JavaBean对 ...
- 【RabbitMQ】05 通配符模式
需要设定交换机模式为通配符模式 Topic 在绑定规则上采用通配描述实现动态绑定 创建通配符模式的生产者 package cn.dzz.topicQueue; import com.rabbitmq. ...