安卓 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. 合理设置延迟时间(确保系统加载完成)

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

相关推荐
2501_937189231 天前
2025 优化版神马影视 8.8 源码系统|零基础部署
android·源码·开源软件·源代码管理·机顶盒
モンキー・D・小菜鸡儿1 天前
Android Jetpack Compose 基础控件介绍
android·kotlin·android jetpack·compose
The star"'1 天前
mysql(4-7)
数据库·mysql·adb
无风之翼1 天前
android15 休眠唤醒过程中有时候屏幕显示时间一闪而过
android·锁屏
方白羽1 天前
Android全局悬浮拖拽视图
android·app·客户端
Jerry1 天前
Compose 高级状态和附带效应
android
2501_916007471 天前
苹果手机iOS应用管理全指南与隐藏功能详解
android·ios·智能手机·小程序·uni-app·iphone·webview
LFly_ice1 天前
Nest-管道
android·java·数据库
ab_dg_dp1 天前
android bugreport 模块源码分析
android
2501_915106321 天前
全面理解 iOS 帧率,构建从渲染到系统行为的多工具协同流畅度分析体系
android·ios·小程序·https·uni-app·iphone·webview