安卓 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 14:ShellTransition 屏幕旋转过程深度剖析
android·智能手机·性能优化·framework·性能·屏幕旋转·rotation
美狐美颜SDK开放平台2 天前
开发直播APP时如何接入视频美颜SDK?开发流程与注意事项
android·人工智能·计算机视觉·音视频·直播美颜sdk
AFinalStone2 天前
Android7 SystemUI源码解析(七)Keyguard锁屏模块深度解析
android·systemui
致远ccc2 天前
Google Play 上架前如何测试 App?多国家 Android 环境测试
android·app测试·googleplay·多国家应用测试
ttyyttemo2 天前
Kotlin 协程中的 Job 结构化并发与取消
android
sun0077002 天前
tbox 4g/5g切换,导致wan ip 改变,导致车机旧网络不可用。需要重启车机才行
android
其实防守也摸鱼2 天前
内网穿透与反向代理:原理、工具与实战指南
android·大数据·运维·安全·网络安全·自动化·渗透
AFinalStone2 天前
Android7 SystemUI 源码解析(四)NavigationBar 导航栏与 SystemBars
android·systemui
JMchen2 天前
属性动画原理与高级动画实现
android·kotlin·canvas
AFinalStone2 天前
Android7 SystemUI 源码解析(二)启动流程深度解析
android·systemui