我试试 本帖最后由 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
谢谢楼主分享
页:
1
[2]