在Android中使用vi等linux命令

解决adb 无法adb root 方法:

下载超级用户adbd.apk 地址:百度网盘

1:adb install 下载目录/adbd.apk

2:在手机上给adbd的root权限,并在adb里勾上USB

解决安卓里无法使用VI编辑器等等 liunk系统功能的命令

1:下载对应的手机CPU的busybox

在Android中使用vi等linux命令

日常在开发Android应用的时候, 有时候需要到设备中去修改一些配置文件, 比如权限白名单,sp的的xml什么的,由于Android本身又没有vim/vi等直接编辑软件,所以通常的做法是 先用adb pull命令将文件拉到电脑中,修改过后再使用adb pull命令推到手机里, 很不方便

Busybox

busybox是一个工具箱, 可以在不同平台上安装, 安装过后就可以使用一些linux下的常用命令了

安装

首先需要查看Android设备的CPU架构, 才能下载对应版本的 busybox程序:

adb shell getprop ro.product.cpu.abi

421a5fae5b67d9e4b74e8e08aa976440.png

比如我手上的这台设备就是arm64-v8a的cpu

下载Busybox

然后到busy的官网

点击Download Binaries: 7e584cd3e3fb9341556feb6fcab73b66.png

或者直接输入网址//busybox.net/downloads/binaries/

进入二进制文件下载页面, 然后在里面找到最新的defconfig-multiarch-musl版本,比如我目前就是1.31.0-defconfig-multiarch-musl 29ce815092ba4e4609517926288e8bc4.png

然后找到跟你设备的cpu型号相匹配的版本, 比如我的cpu是armv8,那么我就下载busybox-armv8l这个版本 13a44d6486ec048b2ecbe9374fcaacba.png

安装

下载好之后就可以安装busybox了,执行以下命令:

adb root 
adb remount  
adb push busybox-armv8l /system/xbin/busybox # 将程序复制到设备中
adb shell 'chmod 755 /system/xbin/busybox'  # 修改读写权限
adb shell '/system/xbin/busybox --install /system/xbin/'  # 安装

完成

接下来就可以在adb shell 中使用 vi命令了, 另外 find,grep.tee,sed,wget等命令也可以使用了

 

安卓shell

电脑使用adb

  • 下载地址:

Windows版本:https://dl.google.com/android/repository/platform-tools-latest-windows.zip Mac版本:https://dl.google.com/android/repository/platform-tools-latest-darwin.zip Linux版本:https://dl.google.com/android/repository/platform-tools-latest-linux.zip

  • 使用方式

需开启“Android调试”,在「设置」-「开发者选项」-「Android 调试」,如果找不到“开发者选项”,需要在「设置」-「关于手机」连续点击「版本号」7 次

查看设备:adb devices

无线连接:adb connect 192.168.0.111

无线连接需要开启网络ADB调试

进入shell:adb shell

上传文件到手机:adb push 电脑路径 手机路径

下载文件到电脑:adb pull 手机路径 电脑路径

安装APK:adb install APK路径

手机使用Termux

  • 下载地址:

https://github.com/termux/termux-app/releases

  • 使用方式:(略)

配置旁路网关

建议先将手机设置为固定IP,方式很多请自行Google

一键脚本

#!/system/bin/sh

tun='tun0' #虚拟接口名称
dev='wlan0' #物理接口名称,eth0、wlan0
interval=3 #检测网络状态间隔(秒)
pref=18000 #路由策略优先级

# 开启IP转发功能
sysctl -w net.ipv4.ip_forward=1

# 清除filter表转发链规则
iptables -F FORWARD

# 添加NAT转换,部分第三方VPN需要此设置否则无法上网,若要关闭请注释掉
iptables -t nat -A POSTROUTING -o $tun -j MASQUERADE

# 添加路由策略
ip rule add from all table main pref $pref
ip rule add from all iif $dev table $tun pref $(expr $pref - 1)

contain="from all iif $dev lookup $tun"

while true ;do
    if [[ $(ip rule) != *$contain* ]]; then
            if [[ $(ip ad|grep 'state UP') != *$dev* ]]; then
                echo -e "[$(date "+%H:%M:%S")]dev has been lost."
            else
                ip rule add from all iif $dev table $tun pref $(expr $pref - 1)
                echo -e "[$(date "+%H:%M:%S")]network changed, reset the routing policy."
            fi
    fi
    sleep $interval
done

赋予可执行权限:chmod +x proxy.sh

执行:nohup ./proxy.sh &

更改网关

全局设备更改:修改主路由的DHCP设置

单一设备更改:更改设备的网关

排错

安卓系统每次切换网络设置都会将部分设置重置,一些“永久生效”的配置方式在手机重启后也会被重置

检查IP转发功能是否启用:cat /proc/sys/net/ipv4/ip_forward

检查iptables是否允许数据包通过:iptables -nvL -t (filter|nat|mangle)

检查路由策略:ip rule

检查网卡接口:ip a

安卓rom下载地址:https://onfix.cn/

BUSYBOX下载地址:https://busybox.net/

 

发表回复

众人寻妹千百次 蓦然回首 妹子却在网站论坛中

上路论坛 上路资源