shell脚本

牙叔教程 简单易懂

目标

用autojs执行shell脚本, 脚本所在目录为 /data/local/tmp

缘起

做息屏运行脚本, 要用到类似的方法,

比如息屏使用adb去调用dex文件, 来达到息屏效果,

两者相同的地方是

  • 都要复制文件到 /data/local/tmp文件夹下
  • 都要修改权限, 命令为 chmod 777 filename 或者 chmod +x filename

环境

手机: Mi 8

Android版本: 10

Autojs版本: 9.0.10

代码讲解

1. 复制文件到 data/local/tmp
cmd = "cp /sdcard/yashu.sh /data/local/tmp/yashu.sh";
r = shell(cmd);
log(r);
// ShellResult{code=1, error='cp: /data/local/tmp/yashu.sh: Permission denied
', result=''}

非常不幸, 没有权限, 复制文件失败,

所以我们需要要提高权限, Shizuku可以提升我们的权限到adb级别,

Shizuku的使用请查阅上一篇教程, 激活Shizuku

将权限提升为adb级别之后, 我们重新复制文件

首先, 检查有没有adb权限

let adbCheck = $shell.checkAccess("adb");
if (!adbCheck) {
  console.log("没有adb权限, 请先使用shizuku激活autojs的adb权限");
  exit();
} else {
  console.log("已有adb权限");
}

复制文件

$shell.setDefaultOptions({ adb: true });
cmd = "cp /sdcard/yashu.sh /data/local/tmp/yashu.sh";
r = $shell(cmd);
log(r);
// ShellResult{code=0, error='', result=''}

查看文件yashu.sh权限

$shell.setDefaultOptions({ adb: true });
cmd = "ls -al /data/local/tmp/yashu.sh";
r = $shell(cmd);
log(r);
// ShellResult{code=0, error='', result='-rw-rw---- 1 shell shell 84 2021-10-15 17:43 /data/local/tmp/yashu.sh
'}

可以看到权限是-rw-rw----, 没有执行权限, 接下来, 我们就添加执行权限

2. 添加执行权限
$shell.setDefaultOptions({ adb: true });
cmd = "chmod +x /data/local/tmp/yashu.sh";
r = $shell(cmd);
log(r);
// ShellResult{code=0, error='', result=''}

code=0, 0表示没有发生错误, 没有错误就意味着, 命令正常执行,

再次查看文件yashu.sh权限

$shell.setDefaultOptions({ adb: true });
cmd = "ls -al /data/local/tmp/yashu.sh";
r = $shell(cmd);
log(r);
// ShellResult{code=0, error='', result='-rwxrwx--x 1 shell shell 84 2021-10-15 17:46 /data/local/tmp/yashu.sh
'}

可以看到权限是-rwxrwx–x, 有了执行权限, 接下来, 我们就执行这个shell脚本

3. 执行shell脚本

shell脚本内容

#!/bin/bash
echo "牙叔教程 简单易懂"
author="牙叔"
echo "作者: $author"

执行shell脚本的命令

$shell.setDefaultOptions({ adb: true });
cmd = "sh /data/local/tmp/yashu.sh";
r = $shell(cmd);
log(r);
// ShellResult{code=0, error='', result='牙叔教程 简单易懂
// 作者: 牙叔
// '}

备注

息屏运行脚本使用到的命令与执行shell脚本类似, 这也是我写这篇教程的原因,

方便以后复制黏贴

名人名言

思路是最重要的, 其他的百度, bing, stackoverflow, github, 安卓文档, autojs文档, 最后才是群里问问
— 牙叔教程

声明

部分内容来自网络
本教程仅用于学习, 禁止用于其他用途

bilibili

牙叔教程

微信公众号 牙叔教程

在这里插入图片描述

QQ群

747748653
在这里插入图片描述

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

牙叔教程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值