长虹55D3P海思平台固件破解

news2024/11/16 3:26:02

一 、背景

目前网上还没有长虹海思平台智能电视的固件打包解包教程,仅有一个znds的解包,但大佬迟迟没更新打包教程和工具。帖子中也没讲解解包的原理,对于不熟悉海思平台的来说,感觉无从下手。

znds海思解包贴:#长虹整机厂USB升级包-海思格式bin解包工具_长虹智能电视_ZNDS

二、 固件研究

根据工具解包出来的image看,可以知道每个image的地址和大小,这些信息来源于bootargs分区

但是这些地址并不是相对于固件包的偏移地址,无法直接用来合成固件包。

探索是否raw分区没被压缩,只是带文件系统的分区被压缩,如果这样的话就可以用dd制作raw格式包,再转稀疏格式

先拿fastboot来试试

dd if=upgrade_ZLH74GiR2G_V1.00099.bin of=fastboot bs=1M count=2

 对比dd得到的fastboot,与工具解包的fastboot差异

可以看到其实fastboot分区前面还有一段数据,目前不清楚这是什么信息(分区表?head?) 

另外读出的2M fastboot除了有头外,比工具解析出来的fastboot多出部分不是全0,看来raw分区也无法直接dd来合并,通过对比发现后面的信息也不是下一个分区bootargs的,而是recovery的

看来使用dd来生成新的固件无望

不过dd生成固件也大致研究了下,写在这里备忘

dd if=/dev/zero of=firmware.bin bs=1k count=0 seek=total_size
注:total_size = 所有分区大小之和(可以再大一点,不超过emmc容量即可)
dd if=kernel of=firmware.bin bs=1k seek=offset conv=notrunc

offset 为kernel的偏移地址,也就是bootargs中kernel之前所有分区大小加起来的总和

dd if=system.bin of=firmware.bin bs=1k seek=offset conv=notrunc

注意:system.bin为raw格式的,不是稀疏格式的

./img2simg firmware.bin firmware_sparse_fip.bin 262144

将整个firmware转换为稀疏格式

262144代表256K对齐,非必须,也可调整

三、解包

用大佬提供的解包工具可以成功解包,system可以成功挂载

解包出来的image是稀疏格式,需要先转换为raw格式才能挂载
./simg2img 229M_1024M-system system.ext4

mount -t ext4 system.ext4 mnt/

~/tools/ext4_tool/mnt#ls
app  bin  build.prop  etc  fonts  framework  lib  lib64  lost+found  media  priv-app  tts  usr  vendor  xbin
~/tools/ext4_tool/mnt#cd app
~/tools/ext4_tool/mnt#ls
AppPermission         ChanghongMisc   CHPointStore                    com.changhong.chhongbaofortv    com.tencent.qqmusictv  ipptv_agent          QLive                 tv.huan.recognizecore     webview
AtvMain               CHAppManager    CHPowerEmpty                    com.changhong.ipptv             Easysetting            karaoke              RdTvEntry             tv.huan.screensaveralbum  XiriIme
Bluetooth             CHAppUpgrade    CHRecommenderSystem             com.changhong.remoteassistance  factory                LauncherVideoPlayer  rtkbtAutoPairService  tv.huan.sdk.pay2
BluetoothWizard       CHFileExplorer  CHThemeStore                    com.changhong.tvos.dtv          HiRMService            Lexue_CHIQ           SourceMenu            tv.huan.xmpp
BootWizard            ChGlobalSearch  CHUserCenter                    com.egame.tv                    huan.tv.strongtv       MiniLauncher         SourceService         TvManager
ChAccountSystem       CHistory        CHVoiceControlApp               com.iflytek.xiri                IflytekTVService       Miracast             Spanner               UpdateLocalSystem
CHAirPlay             CHLogoService   com.changhong.appstore          com.ktcp.video                  inspection             MultiScrInteraction  StoreShow             UpgradeSystemUI
ChangHongImagePlayer  CHNoticeSystem  com.changhong.chchoujiangfortv  com.qiyi.tv.changhongappstore   IntelligentService     PCMRecorder          SystemXiri            UserLoginManager

可以修改build.prop  删除长虹自带APP来定制rom

修改build.prop

将persist.sys.usb.config=none  改为 persist.sys.usb.config=adb

将ro.adb.secure=1 改为 ro.adb.secure=0

确认下service.adb.tcp.port=5555有没有,没有加上

注意:修改文件可能会导致文件selinux和权限变化,注意改回来。改之前执行ls -lZ看下文件权限

~/tools/ext4_tool/mnt# ls -lZ
total 76
drwxr-xr-x. 68 root root u:object_r:system_file:s0  4096 May 30  2018 app
drwxr-xr-x.  2 root 2000 u:object_r:system_file:s0  8192 May 30  2018 bin
-rw-r--r--.  1 root root u:object_r:system_file:s0  3843 May 30  2018 build.prop
drwxr-xr-x. 16 root root u:object_r:system_file:s0  4096 May 30  2018 etc
drwxr-xr-x.  2 root root u:object_r:system_file:s0  4096 May 30  2018 fonts
drwxr-xr-x.  2 root root u:object_r:system_file:s0  4096 May 30  2018 framework
drwxr-xr-x.  9 root root u:object_r:system_file:s0 12288 May 30  2018 lib
drwxr-xr-x.  7 root root u:object_r:system_file:s0  8192 May 30  2018 lib64
drwx------.  2 root root u:object_r:system_file:s0  4096 Jan  1  1970 lost+found
drwxr-xr-x.  3 root root u:object_r:system_file:s0  4096 May 30  2018 media
drwxr-xr-x. 11 root root u:object_r:system_file:s0  4096 May 30  2018 priv-app
drwxr-xr-x.  3 root root u:object_r:system_file:s0  4096 May 30  2018 tts
drwxr-xr-x.  7 root root u:object_r:system_file:s0  4096 May 30  2018 usr
drwxr-xr-x.  4 root 2000 u:object_r:system_file:s0  4096 May 30  2018 vendor
drwxr-xr-x.  2 root 2000 u:object_r:system_file:s0  4096 May 30  2018 xbin

修改selunx 标签,可以用chcon 指令,可以找一个和你目标权限一致的文件做参考来改,简单些

chcon --reference etc/clatd.conf build.prop



APP 精简

删除app目录下不需要的app

rm -rf com.egame.tv/
rm -rf com.qiyi.tv.changhongappstore/
rm -rf huan.tv.strongtv/
rm -rf tv.huan.sdk.pay2/
rm -rf tv.huan.xmpp/
rm -rf UpdateLocalSystem/
rm -rf UpgradeSystemUI/
rm -rf UserLoginManager/
rm -rf com.tencent.qqmusictv/
rm -rf com.changhong.chhongbaofortv/
rm -rf CHAppUpgrade/
rm -rf com.changhong.ipptv
rm -rf com.changhong.chchoujiangfortv
rm -rf com.changhong.remoteassistance
rm -rf Lexue_CHIQ
rm -rf LauncherVideoPlayer

 打包新的system

注意:不建议使用mkuserimg.sh  和mkfs.ext4等工具打包system,因为我们没有selinux的file-contents文件,直接打包会丢失selinux 标签,系统可能无法启动

打包直接umount mnt/  即可,仍然保留了文件的selinux 标签

生成稀疏格式system,可能没必要

./img2simg system.ext4 new_system

三、打包

网上查到海思固件合并可以使用hitool,HI3521D 系统(uboot,kernel,rootfs)打包成一个烧录文件_boot kernel app打包-CSDN博客

待尝试 

四、另一种思路

长虹电视有工厂模式和远程协助功能,这里是否有突破口

工厂模式APK路径:app/factory/factory.apk

https://download.csdn.net/download/u013463707/89378929

远程协助APK路径:app/RdTvEntry/RdTvEntry.apk    https://download.csdn.net/download/u013463707/89378933

通过反编译,工厂模式没发现什么暗门开网络adb或提权,远程协助倒是有可能是个突破口

librd.so看到远程协助是ssh方式连接

APK反编译看启动这个APK就会自动启动连接,就看我们能不能拿到连接的密码或私钥了

终端模拟器下载:https://download.csdn.net/download/u013463707/89378960

 启动远程协助服务的方法:

am start com.changhong.rdtventry/.RdTvEntryActivity

am start -a com.changhong.rdtventry.action.SHOWUI

但是终端模拟器没权限启动这个APK,还是得从固件入手了o(╥﹏╥)o

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1717345.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue 2.0使用Vue-count-to给数字添加增长动画

在开发后台管理系统时,时常会遇到数据汇总,为了页面展示更生动,用户体验更好,通常会对汇总的数字加一个逐步递增动画。 实现这个效果一般是用的 Vue-count-to这个插件,这是一款简单好用的一个数字滚动插件,…

3D视觉系统实现自动化上下料操作

在竞争激烈的汽车制造行业,提高生产效率、降低成本并保证产品质量是企业持续发展的关键。特别是在汽车制造过程中,各种零部件的上下料操作占据了大量的生产时间,因此如何实现这些操作的自动化、高效化成为了一个亟待解决的问题。 富唯智能3D视…

157.二叉树:二叉树的右视图(力扣)

代码解决 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* Tre…

【C++修行之道】类和对象(二)类的6个默认成员函数、构造函数、析构函数

目录 一、类的6个默认成员函数 二、构造函数 2.1 概念 2.2 特性 2.2.5 自动生成默认构造函数 不进行显示定义的隐患: 2.2.6 自动生成的构造函数意义何在? 两个栈实现一个队列 2.2.7 无参的构造函数和全缺省的构造函数都称为默认构造函数&#x…

pycharm 上一次编辑位置不见了

目录 pycharm2024版 上一次编辑位置不见了,研究发现移到了左下角了,如下图所示: 上一次编辑位置快捷键: pycharm2024版 上一次编辑位置不见了,研究发现移到了左下角了,如下图所示: 上一次编辑…

Minio篇:初识MinIO

1. MinIO快速入门 1.1.MinIO核心概念 下面介绍MinIO中的几个核心概念,这些概念在所有的对象存储服务中也都是通用的。 对象(Object) 对象是实际的数据单元,例如我们上传的一个图片。 存储桶(Bucket) 存储…

不同linux账户切换不同的cuda版本

原因 由于服务器中安装了两个版本的cuda(cuda10.1和cuda11.1),不同项目可能需要应用不同的cuda版本,但是自己又没有root权限或者只想在使用指定conda环境时改为用指定的cuda版本。总结起来有三种方法: 1、修改软链接指…

原生小程序一键获取手机号

1.效果图 2.代码index.wxml <!-- 获取手机号 利用手机号快速填写的功能&#xff0c;将button组件 open-type 的值设置为 getPhoneNumber--><button open-type"getPhoneNumber" bindgetphonenumber"getPhoneNumber">获取手机号</button> …

Javaweb基础之Cookie会话技术

大家好&#xff0c;这里是教授.F 引入&#xff1a; 我们想在登录一个网站时&#xff0c;能够显示我们上一次的登录时间啊&#xff0c;或者我们在该网站的浏览痕迹。哪这些要怎么做到&#xff1f;我们想&#xff0c;这些数据不可能从服务端给你返回来&#xff0c;因为一旦用户…

Line Worker(流水线工人休闲游戏模板)

您是地狱工厂的流水线工人。您的工作是在产品不断流动的情况下,将有缺陷的产品与合格产品区分开来。通过点击左右键来保留合格产品并丢弃不合格产品。错误太多,您将被解雇!《流水线工人》是一款有趣、轻松、超级休闲的游戏,适合所有年龄段的人! 亮点: - 上瘾的超休闲游戏…

Jvm(一)之栈、堆、方法区

前言-与正文无关 生活远不止眼前的苦劳与奔波&#xff0c;它还充满了无数值得我们去体验和珍惜的美好事物。在这个快节奏的世界中&#xff0c;我们往往容易陷入工作的漩涡&#xff0c;忘记了停下脚步&#xff0c;感受周围的世界。让我们一起提醒自己&#xff0c;要适时放慢脚步…

【JMeter接口自动化】第2讲 Jmeter目录结构

JMeter的目录结构如下&#xff1a; bin目录&#xff1a;可执行文件目录&#xff0c;启动jmeter时&#xff0c;就是启动bin目录下的ApacheJmeter.jar&#xff0c;jmeter.bat&#xff0c;jmeter.sh ApacheJmeter.jar:启动文件 jmeter.bat&#xff1a;Windows 的启动命令。 jmeter…

数据库系统概念(第七周 第一堂)(E-R模型)

目录 前言 基本概念 观点与模型 作用与要求 E-R模型元素 实体&#xff08;entity&#xff09; 实体集&#xff08;entity set&#xff09; 属性&#xff08;attribute&#xff09; 域&#xff08;domain&#xff09; 码 &#xff08;key&#xff09; 联系 &#x…

12V升20V3.5A升压恒压WT3207

12V升20V3.5A升压恒压WT3207 WT3207是一款高效PWM升压控制器&#xff0c;采用SO-8封装设计&#xff0c;专为低输入电压应用优化。该控制器支持5V至36V的宽输入电压范围&#xff0c;使其能够有效提升12V、15V和19V系统的电压水平&#xff0c;特别适合于两节或三节锂离子电池供电…

kvm--安装启动

前期 使用vmware workstation 时 安装kvm yum install qemu-kvm qemu-kvm-tools libvirt libvirt-client virt-manager virt-install -y systemctl enable --now libvirtd

【JAVA SE】多态

✨✨欢迎大家来到Celia的博客✨✨ &#x1f389;&#x1f389;创作不易&#xff0c;请点赞关注&#xff0c;多多支持哦&#x1f389;&#x1f389; 所属专栏&#xff1a;JAVA 个人主页&#xff1a;Celias blog~ 目录 引言 一、多态 1.1 多态的概念 1.2 多态的实现条件 1.3…

【码银送书第二十期】《游戏运营与出海实战:策略、方法与技巧》

市面上的游戏品种繁杂&#xff0c;琳琅满目&#xff0c;它们是如何在历史的长河中逐步演变成今天的模式的呢&#xff1f;接下来&#xff0c;我们先回顾游戏的发展史&#xff0c;然后按照时间轴来叙述游戏运营的兴起。 作者&#xff1a;艾小米 本文经机械工业出版社授权转载&a…

Vue前端平台的搭建

文章目录 前端平台搭建(`Vue2.6`,App:`HBulderX`)创建`Vue2.6`项目下载相应插件方便开发路由配置对连接后端进行一些配置(`main.js`文件)导入ElementUI组件[组件 | Element](https://element.eleme.cn/#/zh-CN/component/icon)同步与异步`axios`异步请求框架前端平台搭建(Vue2.…

零基础入门学习Python第二阶04SQL详解01

SQL 和 MySQL 详解 SQL 详解 我们通常可以将 SQL 分为四类&#xff0c;分别是 DDL&#xff08;数据定义语言&#xff09;、DML&#xff08;数据操作语言&#xff09;、DQL&#xff08;数据查询语言&#xff09;和 DCL&#xff08;数据控制语言&#xff09;。DDL 主要用于创建…

正则匹配优化:匹配排除多个字符串的其他字符串

(^entity|^with|...)\w优化 (?!entity|with|has|index|associations|input)\w(?!): 匹配排除项 效果 继续优化 匹配会过滤掉带有关键字的字段&#xff0c;在过滤的时候是可以加上尾部结束匹配符的 效果&#xff1a;