ZNDS智能电视网 推荐当贝市场

TV应用下载 / 资源分享区

软件下载 | 游戏 | 讨论 | 电视计算器

综合交流 / 评测 / 活动区

交流区 | 测硬件 | 网站活动 | Z币中心

新手入门 / 进阶 / 社区互助

新手 | 你问我答 | 免费刷机救砖 | ROM固件

楼主: lizhongbo
上一主题 下一主题
[原创]

盒子脚本助手

[复制链接]
11#
发表于 2025-4-23 20:19 | 只看该作者 | 来自河南
感谢分享
我试试
回复 支持 反对

使用道具 举报

12#
 楼主| 发表于 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

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|新帖|标签|软件|Sitemap|ZNDS智能电视网 ( 苏ICP备2023012627号 )

网络信息服务信用承诺书 | 增值电信业务经营许可证:苏B2-20221768 丨 苏公网安备 32011402011373号

GMT+8, 2025-4-25 16:13 , Processed in 0.053301 second(s), 10 queries , Redis On.

Powered by Discuz!

监督举报:report#znds.com (请将#替换为@)

© 2007-2025 ZNDS.Com

快速回复 返回顶部 返回列表