安卓 4.4.2 电视盒子 ADB 设置应用开机自启动

目录

一、前言

本文适用于安卓 4.4.2(API 19)系统的电视盒子,通过 ADB 工具 + 脚本方式实现指定应用开机自启动,解决了应用未声明开机广播权限、系统分区只读等常见问题,全程无需复杂操作,新手也能快速上手。

二、前期准备

1. 设备要求

  • 安卓 4.4.2 系统电视盒子(已 root,关键前提)

  • 电脑(Windows/Mac/Linux 均可)

  • 盒子与电脑连接同一局域网

2. 工具准备

  • ADB 工具包:下载 Android SDK Platform Tools,解压后获取adb.exe(Windows)或adb(Mac/Linux)

  • 目标应用包名:本文以mygica.media.center为例(需替换为你的应用包名)

三、核心步骤

第一步:开启 ADB 调试并连接设备

  1. 开启盒子 ADB 调试
  • 盒子设置 → 关于 → 连续点击版本号 7 次,开启开发者模式

  • 返回设置 → 开发者选项 → 勾选「USB 调试」(部分设备显示「网络 ADB 调试」)

  1. 获取盒子 IP 地址
  • 盒子设置 → 网络 → 查看当前连接的 Wi-Fi / 有线网络详情,记录 IP(如192.168.1.100
  1. ADB 连接设备
  • 电脑打开命令提示符(Windows)/ 终端(Mac/Linux),进入 ADB 工具目录

  • 执行连接命令:

bash 复制代码
adb connect 192.168.1.100  # 替换为你的盒子IP
  • 首次连接需在盒子上确认「允许调试」,勾选「始终允许此计算机」
  1. 验证连接
bash 复制代码
adb devices

显示192.168.1.100:5555 device即为连接成功

第二步:获取应用启动入口(主 Activity)

由于部分应用未声明主 Activity,需手动获取:

  1. 手动启动应用 :在盒子上打开目标应用(mygica.media.center),保持前台运行

  2. 执行 ADB 命令获取当前 Activity

bash 复制代码
adb shell dumpsys activity activities | grep "mFocusedActivity"
  1. 提取有效信息

    输出示例:mFocusedActivity: ActivityRecord{4244xxxx u0 mygica.media.center/.Main t4}

    核心启动入口:mygica.media.center/.Main(记录此内容,后续用)

第三步:创建开机启动脚本

  1. 新建脚本文件 :在电脑上新建文本文件,命名为autostart.sh,内容如下:
shell 复制代码
#!/system/bin/sh
# 延迟25秒(适配安卓4.4.2启动速度,可调整为20-35秒)
sleep 25
# 启动目标应用(替换为第二步获取的启动入口)
am start -n mygica.media.center/.Main
  1. 保存脚本:确保文件编码为 UTF-8,放在 ADB 工具同一目录下

第四步:推送脚本到盒子并配置权限

关键解决:系统分区只读问题

  1. 进入 ADB Shell 并获取 root 权限
bash 复制代码
adb shell

su  # 盒子弹出root授权提示,点击允许(命令行显示#表示成功)
  1. 查看 /system 分区挂载状态
bash 复制代码
mount | grep /system

输出示例:/dev/block/system /system ext4 ro,noatime,...ro表示只读)

  1. 挂载 /system 为可读写模式
bash 复制代码
mount -o remount,rw /dev/block/system /system

验证挂载成功:再次执行mount | grep /system,显示rw即为成功

  1. 推送并配置脚本
bash 复制代码
# 复制脚本到系统启动目录
cp /sdcard/autostart.sh /system/etc/init.d/

# 赋予脚本执行权限(必须步骤)
chmod 755 /system/etc/init.d/autostart.sh
  1. 恢复 /system 为只读模式
bash 复制代码
mount -o remount,ro /dev/block/system /system
  1. 退出 Shell
bash 复制代码
exit

第五步:重启验证

执行重启命令,等待 30 秒左右查看应用是否自动启动:

bash 复制代码
adb reboot

四、常见问题解决

1. 脚本复制提示「No such file or directory」

  • 原因:/system/etc/init.d目录不存在(厂商定制系统)

  • 解决方案:改用/data分区路径

bash 复制代码
su

cp /sdcard/autostart.sh /data/local/

chmod 755 /data/local/autostart.sh

echo "/data/local/autostart.sh" >> /data/local/userinit.sh

2. 应用未自动启动

  • 调整脚本延迟时间:将sleep 25改为sleep 35,重新推送配置

  • 检查 root 权限:确保su命令执行成功(命令行显示 #)

  • 验证启动命令:手动执行adb shell am start -n mygica.media.center/.Main,确认应用能启动

3. mount 挂载失败

  • 原因:设备未真正 root(仅表面授权)

  • 解决方案:重新刷入完整 root 权限包(如 Magisk、SuperSU)

五、总结

安卓 4.4.2 电视盒子通过「ADB+root+init.d 脚本」实现应用开机自启动,核心在于:

  1. 正确获取应用启动入口(主 Activity)

  2. 解决 /system 分区只读问题(挂载为可读写)

  3. 合理设置延迟时间(确保系统加载完成)

    该方法兼容性强,无需修改应用本身,适合大多数旧版安卓电视盒子。

相关推荐
小驰行动派2 小时前
安卓上的极简番茄钟 | 开源
android·开源
jzlhll1232 小时前
android抽屉DrawerLayout在2025的沉浸式兼容
android
基哥的奋斗历程3 小时前
Kotlin_Flow_完整使用指南
android·开发语言·kotlin
j***82703 小时前
【玩转全栈】----Django连接MySQL
android·mysql·django
雨白4 小时前
深入理解 Android DocumentFile:性能陷阱与最佳实践
android
inputA4 小时前
【LwIP源码学习8】netbuf源码分析
android·c语言·笔记·嵌入式硬件·学习
CHINAHEAO4 小时前
FlyEnv+Bagisto安装遇到的一些问题
android
毕设源码-郭学长4 小时前
【开题答辩全过程】以 基于Android的自习室座位预订系统为例,包含答辩的问题和答案
android
一 乐5 小时前
健康打卡|健康管理|基于java+vue+的学生健康打卡系统设计与实现(源码+数据库+文档)
android·java·数据库·vue.js·spring boot·微信小程序