电视盒子固件定制教程-120

晶晨系列刷机技巧回忆

  1. 插入晶晨神器,直接插入USB双公头线即可。

  2. 如果跑到百分之4不动了,然后报错,优先测试插入电源线,可能是供电不足。

  3. 一般情况下开关机按键是不需要开机的,但是有的机子可能需要打开开关。

  4. 大部分机子都是插入距离网线口距离近的USB口,但是有的机子是要远离网线口,比如海信IP103H。

遥控代码编辑定制 - 安卓9

  1. 解压固件,修改固件遥控代码debug为1(\vendor\etc\remote.cfg)

  2. 打包固件,然后刷入

  3. adb connect 192.168.xxx.xxx 连接盒子

  4. adb shell 开启命令

  5. su 回车 获取root权限

  6. dmesg -w | grep remote 获取遥控代码

  7. 用手中得遥控对着机顶盒按,得到代码

  8. framecode=0xfd02ff00 这里的意思是遥控器代码是ff00

  9. receive scancode=0x2 比如这里按的左键,代码就是0x2

  10. 记录上面得遥控代码和按键代码

  11. 替换到\vendor\etc\remote.tab4或者之类得文件中,遥控代码和按键代码都要修改,然后保存刷入即可!(这里需要注意,如果原本的代码没有按键定义说明,可以到\vendor\usr\keylayout这个目录下查看Vendor_0001_Product_0001.kl这个里面得代码,对照输入)

遥控代码定制 - 低版本

  1. 和上面得方法大同小异

  2. system\etc存放代码得目录在这个里面

  3. 结尾可能是conf,原理是一样得

华为处理器低版本

  1. 目前我碰到的是402H,442系统

  2. 遥控代码在system的etc里面,是key.xml文件

  3. adb连接上以后可以用代码 android_ir_user –D 查看新遥控的代码,然后用开心盒子助手下载修改,然后推送替换。

替换桌面后首页键无法使用

  1. /system/etc/keyfunction.xml

  2. 这个文件就是绑定主页按键的位置,修改包名为当贝即可实现主页修复。

修改遥控红蓝灯闪烁

  1. 同样是在/system/system/etc/combinationKeys.xml文件内修改

<CombinationKey name="umusblog" type="activity">
<KeyCodes desc="9090(red blue red blue)">
<key>16</key>
<key>7</key>
<key>16</key>
<key>7</key>
</KeyCodes>

替换系统桌面

  1. \system\app这个目录下存放得是系统级别得应用,一般桌面就在这个里面

  2. \system\system\etc安卓9在这个目录下有个绑定桌面的文件叫,combinationKeys.xml,需要修改

  3. 安卓4也在相同的地方有个类似的xml文件,绑定桌面,有的固件有这个问题。

  4. 有的是在\system\bulid.prop文件里面绑定了桌面,可以搜索一下包名。

修改机顶盒内部显示型号

  1. \system\bulid.prop里面的ro.product.model=就是机顶盒型号。

替换系统设置,取消设置密码

  1. 使用改造的设置apk

  2. \system\system\etc安卓9在这个目录下有个绑定桌面的文件叫,combinationKeys.xml,需要修改

	# 修改前
	  <PackageName>com.unionman.umusblog</PackageName>
      <ActivityName>com.unionman.umusblog.UsbLogActivity</ActivityName>
	# 修改后
	  <PackageName>tv.icntv.vendor</PackageName>
      <ActivityName>tv.icntv.vendor.main</ActivityName>

替换开机动画

  1. \system\media这个文件夹内是开机动画,要么是多张图片,要么是视频

  2. 原内容如果是图片就替换图片,一切尽量按照原内容设置,注意图片或者视频的尺寸和格式。

替换开机自动安装应用

  1. \system\preinstall 这个目录下是开机自动安装得应用,一定要全英文,不能有中文

  2. 如果替换系统应用,需要用7z解开看看有没有lib,如果有要放进system/lib里面。

内置root权限

  1. 将su文件放到固件路径**/system/bin/su**

  2. 找到盒子的自启脚本,比如**/system/etc/install-recovery.sh**或者/system/bin/btplay.sh等等.sh结尾得文件,一般是前者

  3. 给最后回车,添加一行 /system/bin/su --auto-daemon & 加ROOT完成,重签打包刷机

内置root其他复杂方法 - 面具

  1. 开启ADB,如果不能开启就装【爱玩机工具箱】,在“爱玩机工具箱-导航-系统设置”开启“USB调试”。

  2. 连接电脑。可以使用USB公对公数据线直接连接。也可以安装“ADB WiFi”后电脑端使用“adb connect 机顶盒IP地址”建立连接。(这里如果是电脑就用开心盒子助手之类软件)

  3. 提升权限。“adb root”

  4. 提取boot分区。 “adb shell dd if=/dev/block/boot of=/sdcard/download/boot.img”

  5. 第三步:修补boot镜像。 安装“Magisk”,然后在“Magisk-安装-下一步-选择并修补一个文件”选择你刚才提取的boot.img。如果有遥控器点不到的按钮,连接键盘,多次按下“Tab”键直到选中对应的按钮。修补后在输出窗口查看修补后的文件名(/sdcard/downlad/magisk_patched-xxxxx_xxxxx.img)。

  6. 第四步:刷入boot镜像。 “adb shell dd if=/sdcard/downlad/magisk_patched-xxxxx_xxxxx.img of=/dev/block/boot”(把magisk_patched-xxxxx_xxxxx.img替换成刚刚生成的文件名)

  7. 第五步:重启。之后你的设备就已经成功Root。

修改固件默认开启ADB

  1. 4.4.2包修改方法

    1. 在system/build.prop里面修改

    2. ro.adb.secure=0 (原内容1修改为0)

    3. persist.service.adb.enable=1 (在代码adb5555上面一行新增这个代码)

  2. 9.0包修改方法

    1. 在system/etc/prop.default里面加上一句persist.sys.usb.config=adb,即可默认开启ADB

    2. 检查system/etc/prop.default文件中的ro.secure=1,把数值改为0,还有就是在prop.default里面也可以加上这个。

  3. 未验证,在system下的bin里面找到instll-recovery.sh文件,给最后添加如下代码

	sleep 10
	stop adbd
	setprop service.adb.tcp.port 5555
	start adbd
	adbd &

其他一些目录文件存放位置和意义

  1. 安卓9WiFi驱动存放在vendor/vendor/lib/modules里面

九彩固件解除升级限制

  1. 状态表现是提示升级固件,是九彩专门恶心用户的

  2. 代码表现如下,意思是i大于400就会提示,也就是事件发生次数超过400次就提示了

public void onReceive(Context context, Intent intent) {
        if ("android.intent.action.BOOT_COMPLETED".equals(intent.getAction()) || "android.intent.action.MEDIA_MOUNTED".equals(intent.getAction()) || "android.intent.action.MEDIA_UNMOUNTED".equals(intent.getAction()) || "android.intent.action.MEDIA_EJECT".equals(intent.getAction()) || "android.intent.action.MEDIA_REMOVED".equals(intent.getAction()) || "android.intent.action.LOCKED_BOOT_COMPLETED".equals(intent.getAction()) || "android.intent.action.BOOT_PROGRESS".equals(intent.getAction()) || "android.intent.action.REBOOT".equals(intent.getAction())) {
            SharedPreferences sharedPreferences = context.getSharedPreferences("boot_count", 0);
            int i = sharedPreferences.getInt("count", 0) + 1; # 删除这个+1应该就好了
            SharedPreferences.Editor edit = sharedPreferences.edit();
            edit.putInt("counta", i);
            edit.apply();
            if (i < 400) {
                return;
            }
            Intent intent2 = new Intent(context, MainActivity.class);
            intent2.addFlags(268435456);
            context.startActivity(intent2);
        }
    }

最后更新于