IOI车机系统刷机和改包笔记2 - 改包脚本

前言:

最近对雪佛兰改包需求感兴趣的网友很多,大家都遇上了很多奇怪的问题,这里就我自己使用的环境和脚本进行分享,供大家参考。

1. 准备环境

我这里使用Ubuntu系统进行操作

andy@andy-vm:~$ sudo lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 22.04.2 LTS
Release:	22.04
Codename:	jammy

2. 准备原始img包和目录

andy@andy-vm:~/mycar$ tree .
.
├── system
├── system.img.tar
├── system.img.tar.md5sum
├── system.md5
├── _temp_
│   └── my_sparse.img

一定要注意 _temp_ 目录,my_sparse.img 是对 system.img.tar 解压后得到。

system 目录是我们自己创建的,用于挂载img镜像使用的。

注意这三个文件,这是生成之后的,重新制作前,解压出 my_sparse.img 就可以删除掉了。

├── system.img.tar
├── system.img.tar.md5sum
├── system.md5# 制作新的之前可以删除掉
rm system.*

3. 挂载img镜像

# 注意路径
# 挂载img到system 文件夹
sudo mount ./_temp_/my_sparse.img ./system# 进入apk目录
cd system/app# 查看
andy@andy-vm:~/mycar/system/app$ ls
apa-release           carlife-release           com.lqrtx.enclavehelper  HTMLViewer       onstarservices-release  vpmpro-release
applecarplay-release  CertInstaller             com.lqrtx.musichelper    IflytekIME_1127  recorder-release        webview
Bluetooth             climate-release           com.lqrtx.vehiclehelper  KeyChain         SpeechHMI-release
btphone-release       com.autonavi.amapauto     commonservice-release    LiteAPP          text-release
calendar-release      com.estrongs.android.pop  engmode-release          mymedia-release  tod-release
CaptivePortalLogin    com.lqrtx.enclaveclock    hmiservice-release       nav-release      users-release
andy@andy-vm:~/mycar/system/app$ tree com.autonavi.amapauto
com.autonavi.amapauto
├── com.autonavi.amapauto.apk
└── lib└── arm├── libaim.so├── libamr-codec.so├── libanr_tool.so├── libapssdk.so├── libautonavi.so├── libbase_utils.so├── libBootLoader.so├── libcmb_AGroupPackage.so├── libcmb_BootScreenPackage.so├── libcmb_Common.so├── libcmb_DriveReportPackage.so├── libcmb_Dupinfo.so├── libcmb_FileMerge.so├── libcmb_font_cn.so├── libcmb_GasServicePackage.so├── libcmb_GVersion.so├── libcmb_LayerImages.so├── libcmb_MainPackage.so├── libcmb_MyTrackPackage.so├── libcmb_Oswald-Regular.so├── libcmb_OverlayRes.so├── libcmb_PhoneConnPackage.so├── libcmb_Roboto-Bold.so├── libcmb_style1.so├── libcmb_style2.so├── libcmb_style3.so├── libcmb_style4.so├── libcmb_style5.so├── libcmb_SwitchCardPackage.so├── libcmb_TbtPackage.so├── libcmb_TripodPackage.so├── libcmb_UserInfoPackage.so├── libcmb_WechatBindPackage.so├── libCommon.so├── libContentProvider.so├── libdumpcrash.so├── libEagletEx.so├── libEaglet.so├── libGAdaptorInterface.so├── libGAdaptor.so├── libgaea.so├── libGbl.so├── libGComm3rd.so├── libGFrame.so├── libGNaviDice.so├── libGNet.so├── libGPlatformInterface.so├── libGSQuirrel.so├── libhsl.so├── libifly_aime_gd.so├── libisstts.so├── libMainScreen.so├── libmqtt_jni.so├── libneonui_shared.so├── libopenssl.so├── libruntime_detector.so├── libthird_party_libs.so├── libturbo.so└── libUpdateMng.so2 directories, 60 files

4. 修改apk

这里需要注意 arm 目录,需要手动将apk内部的lib文件解压出来,手动copy到这里。

com.autonavi.amapauto           # apk文件夹,名字不重要
├── com.autonavi.amapauto.apk   # apk自身
└── lib                         # 固定名字1 └── arm                     # 固定名字2├── libaim.so           # copy自apk自身的lib文件夹里的so文件 ├── libamr-codec.so.....

最后参照其他apk的权限,简单设定一下。至少保证read权限。

5. 退出编辑状态

cd ../..sudo umount system

6. 将my_sparse.img打包为system.img.tar

tar -cf system.img.tar ./_temp_/my_sparse.img

7. 计算md5

大部分人的失败都是因为这个,这里我提供一个简单的脚本命令。

md5sum ./_temp_/my_sparse.img | awk '{print $1}' > system.md5
md5sum ./system.img.tar | awk '{print $1}' > system.img.tar.md5sum

注意md5文件的名字,千万不能错。

如此,就制作出新的三个关键文件啦,重新制作一个刷机用的固件就可以啦。

8. 制作最小刷机固件

# 自己制作部分升级包,文件格式如下:(其余文件来自原版固件)GM_refreshpkg_c1uxsystem.devicesystem.img.tarsystem.img.tar.md5sumsystem.md5swmodeluserdata.deviceuserdata.img.taruserdata.img.tar.md5sumuserdata.md5

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023年CCF中国开源大会“大模型时代的智能化软件工程新范式”分论坛成功举行...

2023年CCF中国开源大会“大模型时代的智能化软件工程新范式”分论坛于10月21日在湖南长沙成功举行。本次论坛聚焦大模型时代的智能化软件新生态以及相应的软件工程新范式,邀请了多位来自学术界和工业界的专家进行分享和交流,共设置了5个主题报告和1个Pan…

设计师看后惊叹:当泥色走进室内空间的时候竟有此番效果

在美国的洛杉矶,一座引人注目的度假别墅彰显了自己的独特魅力。建筑师 Ron Radziner 说:“这是一座现代住宅,采用风化木、深色灰泥和绿色屋顶等与峡谷环境相关的材料,设计得通透、开放。” Zwickl 解释说:"他们想…

Git 入门指南:从新手到高手的完全指南

Git是一种强大的分布式版本控制系统,广泛应用于软件开发中。它的使用不仅可以帮助开发团队更好地管理代码,还可以提高团队协作效率和代码质量。随着软件开发的不断发展,版本控制成为了程序员必备的一项技能。 Git的基本概念 Git的基本概念对…

基因家族扩张与收缩分析-CAFE5

CAFE(Computational Analysis of gene Family Evolution)是一款以解释系统发育历史的方式分析基因家族大小变化的软件,这种分析常被称为基因家族收缩扩张(Gene family expansions and contractions)分析。 CAFE使用出生和死亡过程来模拟用户指定的系统发育树中的基…

在centos服务器中完成jdk,tomcat,MySQL的安装以及前后端分离项目中后端的部署

目录 一. jdk,tomcat的安装 1.将要安装的软件压缩包放入到centos服务器上 2. 解压对应的安装包 3. jdk环境变量配置 4. tomcat启动 5. 关闭防火墙 二. MySQL安装 1. 卸载mariadb,否则安装MySql会出现冲突(先查看后删除再查看) 2. 将MySQL安装包解…

数据结构Demo——简单计算器

简单计算器 一、项目介绍二、技术使用三、具体代码实现1.前端部分2.后端部分 一、项目介绍 本项目实现了一个通过网页访问的简单计算器,它可以对带括号的加减乘除表达式进行计算并将计算结果返回给用户,并且可以对用户输入的表达式进行合法性判断&#…

【小白的Spring源码手册】 Bean的扫描、装配和注册,面试学习可用

目录 前言源码学习Bean配置1. 注解2. xml配置 Bean扫描、装配、注册1. 扫描2. 装配BeanDefinition3. 校验BeanDefinition4. 注册BeanDefinition 总结 前言 如今Spring框架功能众多,每次打开Spring源码,要么就是自顶向下从整个框架来了解Spring整体流程&…

Servlet 初始化参数(web.xml和@WebServlet)

1、通过web.xml方式 <?xml version"1.0" encoding"UTF-8"?> <web-app xmlns"http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://xmlns.jcp.org/xm…

SpringMVC学习

一、SpringMvc 概述 1.什么是SpringMVC? ( •̀ ω •́ )✧&#xff1a; SpringMVC是基于MVC开发模式的框架&#xff0c;具备IOC和AOP MyBatis用来优化持久层&#xff0c; SpringMVC优化控制器。 spring是用来整合这两个框架 的框架

Maven项目管理

文章目录 Maven项目管理项目结构依赖导入依赖依赖作用域可选依赖排除依赖 继承关系常用命令测试项目打包项目 Maven项目管理 Maven 翻译为"专家"、“内行”&#xff0c;是 Apache 下的一个纯 Java 开发的开源项目。 基于项目对象模型&#xff08;缩写&#xff1a;P…

『OpenStack』云计算平台『Nova』计算服务学习指南

前言 本文将会讲解 OpenStack 平台计算服务组件 Nova &#xff0c;结合抽象概念和简单易懂的实战操作&#xff0c;帮助您更好的理解 Nova 计算服务在 OpenStack 中的作用 系统配置&#xff1a;宿主机 Ubuntu 20.04&#xff08;WSL2&#xff09; 简介 OpenStack 官网链接&…

KnowledgeGPT:利用检索和存储访问知识库上增强大型语言模型10.30

利用检索和存储访问知识库上增强大型语言模型 摘要引言2 相关研究3方法3.1 任务定义3.2 知识检索3.2.1 代码实现3.2.2 实体链接3.2.3 获取实体信息3.2.4 查找实体或值3.2.5 查找关系 3.3 知识存储 4 实验 摘要 大型语言模型&#xff08;LLM&#xff09;在自然语言处理领域展现…

基于供需算法的无人机航迹规划-附代码

基于供需算法的无人机航迹规划 文章目录 基于供需算法的无人机航迹规划1.供需搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要&#xff1a;本文主要介绍利用供需算法来优化无人机航迹规划。 1.供需搜索算法 …

2024年湖北黄冈建安ABC建筑企业专职安全员报名事项

2024年湖北黄冈建安ABC建筑企业专职安全员报名事项 专职安全员一般是指从事安全管理方面的工作&#xff0c;普遍的是建筑施工行业&#xff0c;建筑工地安全员&#xff0c;专职安全员C证&#xff0c;黄冈建筑安全员ABC-建筑单位在黄冈&#xff0c;只能在黄冈报考建筑安全员ABC。…

前端基础---跳转相关的功能

后端给链接地址并且给token进行跳转 如果点击有key4&#xff0c;说明要跳转到相应的页面 auth是通过后端获取的地址&#xff0c; jdk是后端获取的相应的token&#xff0c; 然后进行拼接&#xff0c;进行window.open&#xff08;&#xff09;进行跳转 if (key 4) {var testUrl …

Py之transformers_stream_generator:transformers_stream_generator的简介、安装、使用方法之详细攻略

Py之transformers_stream_generator&#xff1a;transformers_stream_generator的简介、安装、使用方法之详细攻略 目录 transformers_stream_generator的简介 1、Web Demo T1、original T2、stream transformers_stream_generator的安装 transformers_stream_generator的…

工会排队营销玩法,让消费者乐于参与其中

小编介绍&#xff1a;10年专注商业模式设计及软件开发&#xff0c;擅长企业生态商业模式&#xff0c;商业零售会员增长裂变模式策划、商业闭环模式设计及方案落地&#xff1b;扶持10余个电商平台做到营收过千万&#xff0c;数百个平台达到百万会员&#xff0c;欢迎咨询。 工会…

HZGO-A-031/315、KZGO-A-031/50比例减压阀放大器

RZGO-A-010/210、RZGO-A-010/32、RZGO-A-010/100、RZGE-A-010/210、RZGE-A-010/32、RZGE-A-010/100、CART RZGE-A-010/210、CART RZGE-A-010/32、CART RZGE-A-010/100、RZGO-A-031/210、RZGO-A-033/100、HZGO-A-033/350、HZGO-A-031/315、KZGO-A-031/50、KZGO-A-033/210滑阀型、…

比Nginx测试桩更方便,ShenYu网关的Mock插件

有时候为了方便测试&#xff0c;我们需要模拟 HTTP 外部接口的返回结果。通常情况下&#xff0c;我们可以使用 Nginx 测试桩来实现这个目的。然而&#xff0c;Nginx 的使用门槛较高&#xff0c;可能对一些初级开发和测试人员来说有一定的难度。相比之下&#xff0c;Apache Shen…

使用传感器融合的前方碰撞预警-(Forward Collision Warning Using Sensor Fusion)

这个例子matlab自动驾驶工具箱中关于使用传感器融合的前方碰撞预警-(Forward Collision Warning Using Sensor Fusion)例子&#xff0c;其展示了如何通过融合视觉和雷达传感器的数据来跟踪车辆前方的物体&#xff0c;从而实现前向碰撞预警系统的开发与验证。 1 概述 前方碰撞…