雕刻青春时光 发表于 2025-4-23 20:19

感谢分享
我试试

lizhongbo 发表于 2025-4-24 07:45

本帖最后由 lizhongbo 于 2025-4-24 07:46 编辑

再添加,2个脚本脚本1
#!/system/bin/sh

#挂在/system目录为可读写
mount -o remount,rw /system

#确保只有一个脚本实例运行
#判断脚本是否运行,如果已经运行,则退出
Pnum=`busybox pgrep -f remote_launcher.sh|busybox wc -l`
if [ $Pnum -ge 3 ]; then
      echo "remote_launcher.sh running"
      exit 3
fi


# 配置文件路径
CONFIG_FILE="/system/etc/remote_config.conf"

# 日志文件
LOG_FILE="/system/etc/remote_launcher.log"

# 输入设备(自动检测或手动指定)
INPUT_DEVICE="/dev/input/event1"

# 加载配置文件
load_config() {
    # 读取APP映射
    APP1=$(sed -n '/^app1=/s/app1=//p' "$CONFIG_FILE")
    APP2=$(sed -n '/^app2=/s/app2=//p' "$CONFIG_FILE")
    APP3=$(sed -n '/^app3=/s/app3=//p' "$CONFIG_FILE")
    APP4=$(sed -n '/^app4=/s/app4=//p' "$CONFIG_FILE")

    # 读取遥控器键值(统一格式为0001 XXXX 00000001)
    RM1=$(sed -n '/^rm1=/s/rm1=//p' "$CONFIG_FILE")
    RM2=$(sed -n '/^rm2=/s/rm2=//p' "$CONFIG_FILE")
    RM3=$(sed -n '/^rm3=/s/rm3=//p' "$CONFIG_FILE")
    RM4=$(sed -n '/^rm4=/s/rm4=//p' "$CONFIG_FILE")
       
        # 读取遥控器键值(统一格式为0001-XXXX-00000001)
    #RM1=$(sed -n '/^rm1=/s/rm1=//p' "$CONFIG_FILE" | tr ' ' '-')
    #RM2=$(sed -n '/^rm2=/s/rm2=//p' "$CONFIG_FILE" | tr ' ' '-')
    #RM3=$(sed -n '/^rm3=/s/rm3=//p' "$CONFIG_FILE" | tr ' ' '-')
    #RM4=$(sed -n '/^rm4=/s/rm4=//p' "$CONFIG_FILE" | tr ' ' '-')
}

# 记录日志
log() {
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" >> "$LOG_FILE"
}

# 检查依赖
check_deps() {
    if ! command -v am >/dev/null; then
      log "错误: 'am' 命令不可用!"
      exit 1
    fi
    if [ ! -e "$INPUT_DEVICE" ]; then
      log "错误: 输入设备 $INPUT_DEVICE 不存在!"
      exit 1
    fi
}

# 主循环
main() {
    log "=== 脚本启动 ==="
    log "输入设备: $INPUT_DEVICE"
    log "按键映射:"
    log "$RM1 -> $APP1"
    log "$RM2 -> $APP2"
    log "$RM3 -> $APP3"
    log "$RM4 -> $APP4"

    while true; do
      # 获取按键事件(标准化为0001-XXXX-00000001格式)
      RAW_CODE=$(getevent -c 1 "$INPUT_DEVICE" 2>&1 | awk '{print $2"-"$3"-"$4}')

      # 调试输出(可选)
      # log "检测到原始键值: $RAW_CODE"

      # 匹配按键并启动对应APP
      case "$RAW_CODE" in
            "$RM1")
                log "检测到按键1,启动 $APP1"
                am start -n "$APP1" >> "$LOG_FILE" 2>&1
                sleep 1# 防抖延迟
                ;;
            "$RM2")
                log "检测到按键2,启动 $APP2"
                am start -n "$APP2" >> "$LOG_FILE" 2>&1
                sleep 1
                ;;
            "$RM3")
                log "检测到按键3,启动 $APP3"
                am start -n "$APP3" >> "$LOG_FILE" 2>&1
                sleep 1
                ;;
            "$RM4")
                log "检测到按键4,启动 $APP4"
                am start -n "$APP4" >> "$LOG_FILE" 2>&1
                sleep 1
                ;;
      esac

      sleep 0.1# 降低CPU占用
    done
}

# 初始化
load_config
check_deps
main


脚本2
# 初始延迟
sleep 10

# 日志记录
LOG="/data/local/tmp/key_monitor.log"
echo "$(date) 脚本启动" > $LOG

# 使用绝对路径
GETEVENT="/system/bin/getevent"
AM="/system/bin/am"

# 检查命令是否存在
[ ! -x "$GETEVENT" ] && echo "getevent不可用" >> $LOG && exit 1
[ ! -x "$AM" ] && echo "am命令不可用" >> $LOG && exit 1

# 主循环
while true; do
    # 获取按键事件(标准化格式)
    CODE=$($GETEVENT -c 1 /dev/input/event1 2>&1 | tr -d '\n' | sed 's/ //g')

    # 调试输出
    echo "原始数据: $CODE" >> $LOG

    # 匹配目标键值(去除所有空格后比较)
    if [ "$CODE" = "000100ac00000001" ]; then
      echo "检测到目标按键: $CODE" >> $LOG
      $AM start -n com.mylejia.launcher/com.mylejia.launcher.activity.DesktopActivity >> $LOG 2>&1
      # 防抖延迟
      sleep 1
    fi

    # 降低CPU占用
    sleep 0.1
done

junyi233 发表于 2025-4-25 17:05

谢谢楼主分享
页: 1 [2]
查看完整版本: 盒子脚本助手