![]() |
谢谢楼主分享 |
本帖最后由 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 |
感谢分享 我试试 |
在哪里下载? |
感谢分享 |
不知何故,软件信息显示不全?![]() |
感谢分享,论坛有你更精彩。 |
666看看有没有特点 |
666 |
Archiver|新帖|标签|软件|Sitemap|ZNDS智能电视网 ( 苏ICP备2023012627号 )
网络信息服务信用承诺书 | 增值电信业务经营许可证:苏B2-20221768 丨 苏公网安备 32011402011373号
GMT+8, 2025-7-28 06:51 , Processed in 0.057603 second(s), 16 queries , Redis On.