IOI车机系统刷机和改包笔记

news2024/11/25 0:10:54

前言

我自己21年买的雪佛兰探界者SUV,没想到到了23年,车机系统上的高德导航还是3.2版本,而官方的已经7.1.

中间出去玩,在高速上被车机上的高德坑了好多次,简直无力吐槽。单纯使用手机Carplay虽然也能完成导航任务,但是遇上缴费等情况,极其麻烦,所以汇聚了网友的智慧,我个人制作了一份修改教程。

雪佛兰探界者21款车机系统为Android车机修改定制,官方系统最后一个版本为**“2020-2023收音机(IOI)51.20.11(请解压后阅读内含的升级指导书)”**。

说明

此文仅提供学习使用,禁止商业用途。
OS环境为 Ubuntu22.04

By BBDXF
2023/07/12

刷机方法

一. 刷机工具
请准备1只至少容量为8GB以上的U盘;确认为FAT32格式(用于升级主机),请使用正规厂家生产U盘刷新;

二. 刷机条件

  1. 熄火,开车门。
  2. 请确保升级过程中车辆都处于驻车状态下,自动挡车辆档位应为P,并拉起手刹;手动挡车型车速应驻车,并拉起手刹;
  3. 请确保车辆都处于正常点火状态下;请确保系统时间为当前正确的日期(或咨询本地经销商设置正确的日期)

三.正式刷机

  1. 准备刷机软件
    1.1 电脑插入FAT32格式的U盘
    1.2 下载最新软件并解压软件包,将里面的文件夹GM_refreshpkg_c1ux拷贝至U盘根目录;文件夹名字为“GM_refreshpkg_c1ux” 1.1.3 确认其中包含如下:102个文件

  2. 主机升级
    2.1. 将U盘插入数据Hub口,主机会自动识别U盘中的软件版本,并自动重启进入刷机模式界面:切记:升级过程中不要拔出U盘!
    2.2 当界面显示如下图时表示升级完成;提示:”Please remove the USB stick to reboot”
    2.3 看到提示” 提示:”Please remove the USB stick to reboot”,才可以拔掉U盘,然后主机会自动重启。

  3. 异常处理
    3.1 如碰到升级U盘不识别或者长时间未开始刷新,直接换个U盘并记录车号。
    3.2 升级过程中如果U盘被异常拔出或进度条停止超过五分钟,请插拔U盘并重新插入。
    3.3 如碰到黑屏/进度卡死等不可控情况,可能收到开关门或其他异常操作的影响。建议直接断电瓶重新刷。

刷机成功

手动改包教程

刷机包请到QQ群或者4S店下载。

img 内容说明

https://www.cnblogs.com/l2rf/p/6594126.html

Android 源码编译后,在out目录下生成的三个镜像文件:ramdisk.img,system.img,userdata.img以及它们对应的目录树root,system,data。

ramdisk.img是根文件系统,system.img包括了主要的包、库等文件,userdata.img包括了一些用户数据,android加载这3个映像文件后,会把 system和 userdata分别加载到 ramdisk文件系统中的system和 data目录下。

system.img userdata.img这两个镜像都属于yaffs2文件格式。

system.img文件是system目录的一个映像,类似于linux的根文件系统的映像,放着android的应用程序,配置文件,字体等。

android启动时首先加载ramdisk.img镜像,并挂载到/目录下,并进行了一系列的初始化动作,包括创建各种需要的目录,初始化console,开启服务等。System.img是在init.rc中指定一些脚本命令,通过init.c进行解析并挂载到根目录下的/system目录下的。

  • system/app 这个里面主要存放的是常规下载的应用程序,可以看到都是以APK格式结尾的文件。在这个文件夹下的程序为系统默认的组件,自己安装的软件将不会出现在这里,而是/data/文件夹中。
  • system/bin 这个目录下的文件都是系统的本地程序,从bin文件夹名称可以看出是binary二进制的程序,里面主要是Linux系统自带的组件。 system/etc 从文件夹名称来看保存的都是系统的配置文件,比如APN接入点设置等核心配置。
  • system/fonts 字体文件夹,除了标准字体和粗体、斜体外可以看到文件体积最大的可能是中文字库,或一些unicode字库。
  • system/framework 主要是一些核心的文件,从后缀名为jar可以看出是是系统平台框架。
  • system/lib lib目录中存放的主要是系统底层库,如平台运行时库。
  • system/media 铃声音乐文件夹,除了常规的铃声外还有一些系统提示事件音
  • system/usr 用户文件夹,包含共享、键盘布局、时间区域文件等。
  • userdata.img是Android系统中存放用户数据的,它被init进程通过解析init.rc文件mount到/data/目录下,默认里面是没有文件的。
  • cache.img,mount在/cache目录下。

改包工具下载

https://github.com/Loren-Yi/make_ext4fs

sudo apt install android-sdk-libsparse-utils

System.img 解包和打包教程

https://blog.csdn.net/tuyerv/article/details/94554380

1. 文件系统类型

探界者使用的是 ext4 filesystem data
my_sparse.img: Linux rev 1.0 ext4 filesystem data, UUID=da594c53-9beb-f85c-85c5-cedf76546f7a, volume name "system" (extents) (large files)

如果打包不一致,需要转换:

# sparse image转化成为ext4的raw imge
Usage: simg2img <sparse_image_files> <raw_image_file>  
 
# ext4的raw image to  sparse image
Usage: img2simg <raw_image_file> <sparse_image_file> [<block_size>]

2. 解包和修改

  • system.img.tar解压出来my_sparse.img,然后查看size: 1610612736 Bytes = 1536 M = 1.5 GB
  • 确保img文件为ext4的raw image file, 它可以挂载.
  • 创建挂载点sudo mkdir /mnt/system
  • 挂载my_sparse.img为文件夹:sudo mount my_sparse.img /mnt/system
  • 直接替换和修改里面的文件,注意对应的odex文件,可以删除。
andy@andy-Vbox:/mnt/system/app$ ls
amapauto-debug        btphone-release     climate-release        IflytekIME_1127  nav-release             tod-release
androidauto-release   calendar-release    commonservice-release  infotainment     onstarservices-release  users-release
apa-release           CaptivePortalLogin  engmode-release        KeyChain         recorder-release        vpmpro-release
applecarplay-release  carlife-release     hmiservice-release     LiteAPP          SpeechHMI-release       webview
Bluetooth             CertInstaller       HTMLViewer             mymedia-release  text-release

andy@andy-Vbox:/mnt/system/app$ ls amapauto-debug/
amapauto-debug.apk  oat

在这里我们可以修改amapauto-debug.apk为我们想要的,删除oat/arm/amapauto-debug.odex文件。(因为我们自己的apk包含了odex部分,防止check出错)

3. 重新打包

  • 重新打包比较讲究,先参考第一步的文件系统和第二部的文件大小,得到如下指令:sudo make_ext4fs -s -l 1536M my_sparse_new.img /mnt/system。 经测试,指定参数-a system没啥效果, 可以使用-L system
Creating filesystem with parameters:
    Size: 1610612736
    Block size: 4096
    Blocks per group: 32768
    Inodes per group: 8192
    Inode size: 256
    Journal blocks: 6144
    Label: 
    Blocks: 393216
    Block groups: 12
    Reserved block group size: 95
Created filesystem with 1860/98304 inodes and 320169/393216 blocks
  • 查看文件格式,file *.img
my_sparse_new.img: Android sparse image, version: 1.0, Total of 393216 4096-byte output blocks in 1522 input chunks.
  • 转换格式 simg2img my_sparse_new.img my_sparse2.img
file *.img

my_sparse2.img: Linux rev 1.0 ext4 filesystem data, UUID=57f8f4bc-abf4-655f-bf67-946fc0f9f25b (extents) (large files)
my_sparse3.img: Linux rev 1.0 ext4 filesystem data, UUID=57f8f4bc-abf4-655f-bf67-946fc0f9f25b (extents) (large files)
my_sparse.img:  Linux rev 1.0 ext4 filesystem data, UUID=da594c53-9beb-f85c-85c5-cedf76546f7a, volume name "system" (needs journal recovery) (extents) (large files)

和原来的还是有区别,不过问题不大。暂且认为打包成功。

Note:
1. 经不完全测试,可以在第2步替换完毕后,sudo unmount system后直接使用本地的my_sparse.img文件。极大减少复杂的问题。

  • 计算md5 step1
md5sum my_sparse2.img
# 第一个md5
7ae55b2200b8e972427ecabee8a34e70  my_sparse2.img  
# 替换 system.md5 文件中的md5值
  • 计算md5 step2
mkdir _temp_
cp my_sparse2.img ./_temp_/my_sparse.img
tar -cf system.img.tar ./_temp_/my_sparse.img

md5sum system.img.tar
# 第二个md5
59af557a3d6fa8f739acd33a6e5de406  system.img.tar
# 替换 system.img.tar.md5sum 文件中的md5值

至此,system中的 apk 替换完成。

只刷部分固件 [未验证]

一般整个固件需要20分钟左右的刷机时间,比较耗时,也没必要。实际上,不需要每次都刷所有的内容,只刷system.img就够了。方法如下:

在U盘根目录下创建GM_refreshpkg_c1ux文件夹,内部需要的文件:

swmodel
system.device
system.img.tar
system.img.tar.md5sum
system.md5

这样,每次只刷新system.img相关文件,非常省时。

userdata.img

可以参考system.img进行手动添加my_sparse.img

https://www.cnblogs.com/l2rf/p/4233247.html

my_sparse.img 对应的文件夹结构如下:

DIR
|_ lost+found  // 空的
|_ app
   |_ app.class.com
      |_ xxxx.apk

Note:

userdata.img 属于后期添加apk,恢复出厂设置后就会不见,所以,一般尽量修改/system/app/xxx/xxx.apk
可能需要修改/system/bin/removexxxx.sh脚本,它会清空/data目录。

高德地图apk

探界者渠道号:C04010277021 V3.2.9.25248
第三方1: C04010001001 V7.1.0.600067
第三方2: C04010277014 V7.1.0.600067

等待群友提供。

  • 第三方的方案 https://club.autohome.com.cn/bbs/thread/7854cb77ac4ccb4b/105765047-1.html#pvareaid=104340
  • 高德官方论坛 https://lbsbbs.amap.com/forum.php?mod=forumdisplay&fid=57&page=1
  • 素有车机历史(包含适配版)https://lbsbbs.amap.com/forum.php?mod=viewthread&tid=47731&extra=page%3D1

共存高德地图apk [未验证]

https://club.autohome.com.cn/bbs/thread/37ed2acad6c3947b/104707276-1.html

高德地图车机版7.1最新,可以和原车机导航共存
自己修改的,150和170版本的系统可以不用删除原机高德导航下可以安装。
180、190、240、280等高版本系统需要降级,自行解决,不提供刷机服务。

高德车机共存版7.0正式版、7.1测试版
链接: https://pan.baidu.com/s/1ExxY59PmSfaD5aUJgdrZtg?pwd=8888 提取码: 8888

导航不压低音乐,或导致音乐暂停等问题,解决方法:需要把以下文件放到共存版导航数据的根目录文件夹里
AdapterFuncRepository.dat和DeviceAdapterRepository.dat (上面链接包含这两个文件)

Android文件夹,data,里面有个autonavi开头,2结尾的

ODEX+APK 解包和打包

http://www.360doc.com/content/12/0121/07/80670615_1049705494.shtml

  1. 需要/system/framework/文件夹的包
  2. 使用baksmali-1.3.2.jar和smali-1.3.2.jar或者第三方工具ODEXTools_1.4.2
  3. 使用APK改之理一类的软件进行查看/修改代码逻辑

ADB思路

https://blog.csdn.net/wxd_csdn_2016/article/details/103404117

| ro.secure = 0 | 开启root权限,开启未知源apk |
| ro.adb.secure = 0 | 1开启adb RSA 指纹认证 ,0关闭 |
| ro.debuggable = 1 | 1开启adb debug,0关闭 |
| persist.service.adb.enable = 1 | 开启USB调试模式 |

https://tieba.baidu.com/p/7523605731
https://club.autohome.com.cn/bbs/thread/abad1d4b2fe8917e/96634664-1.html

完整参数列表:
https://blog.csdn.net/m0_62089210/article/details/127141713
https://blog.csdn.net/rationalgo/article/details/38299471

$ adb push SecureSetting.apk /sdcard/ // 上传要安装的文件,为安装做准备。
$ adb shell $ su // 切换到 root 用户。如果没有获得 Root 权限,这一步不会成功。
# mount //显示当前mount情况
# mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system // 让分区可写。 
# cat /sdcard/SecureSetting.apk > /system/app/SecureSetting.apk // 这一步可以用 cp 实现,但一般设备中没有包含该命令。如果使用 mv 会出现错误:failed on '/sdcard/NetWork.apk' - Cross-device link。 
chmod 777 chetou.apk
# mount -o remount,ro -t yaffs2 /dev/block/mtdblock3 /system // 还原分区属性,只读。 
# exit $ exit

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

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

相关文章

2023年上半年鲁大师电动车综合分数榜解读:九号M95C荣登榜首

2023年上半年电动车综合分数榜单显示了电动车市场的最新发展趋势和品牌表现。 九号M95C获得了第一名&#xff0c;得分798分。九号M95C以其卓越的性能和创新设计脱颖而出。它的高得分主要来自于其强大的续航能力、高速性能和可靠性。九号M95C在电动单车市场中取得了非常好的口碑…

23款奔驰C260L加装原厂香氛负离子系统,清香宜人,久闻不腻

奔驰原厂香氛合理性可通过车内空气调节组件营造芳香四溢的怡人氛围。通过更换手套箱内香氛喷雾发生器所用的香水瓶&#xff0c;可轻松选择其他香氛。香氛的浓度和持续时间可调。淡雅的香氛缓缓喷出&#xff0c;并且在关闭后能够立刻散去。车内气味不会永久改变&#xff0c;香氛…

IPv6 地址简介

IP 地址是指互联网协议地址&#xff0c;它是允许设备连接到互联网的标识符。互联网协议版本 6 &#xff08;IPv6&#xff09; 地址是一个 128 位字母数字标签&#xff0c;用于标识和定位计算机网络中的网络接口卡 &#xff08;NIC&#xff09; 或网络节点。 IPv6由互联网工程任…

C# 圆盘(hsv)颜色选择器

【首先贴上github链接&#xff1a;适用于 Windows 窗体的 Cyotek 拾色器控件】 一、简单使用教程 此处是我使用Cyotek.Windows.Forms.ColorPickers库部分功能的一些经验和思路总结&#xff0c;没有太多深入地去学习&#xff0c;如果有哪位大佬有深入学习使用的话&#xff0c;可…

阿里云限时福利:WoSign品牌SSL证书首购4折优惠

阿里云限时福利&#xff1a;WoSign品牌SSL证书首购4折优惠 阿里云SSL证书限时首购福利&#xff1a;2023年07月04日至08月31日&#xff0c;阿里云平台WoSign品牌系列SSL证书首购4折优惠&#xff0c;惊喜折扣、限时促销、限量抢购&#xff0c;机会不容错过&#xff01; 阿里云平…

PCB防静电设计的必要性

平时通过走路穿衣等日常活动带来的摩擦&#xff0c;会产生不同幅值的静电电压&#xff0c;但其能量很小不会对人体产生伤害&#xff0c;不过对于电子元器件来说&#xff0c;这种静电能量却是不能忽视的。 在干燥的环境下&#xff0c;人体静电(ESD)的电压很容易超过6~35Kv&#…

Ubuntu 22安装使用Codon高性能Python编译器记录

Ubuntu 22安装使用Codon高性能Python编译器记录 Codon 在官方 Ubuntu 存储库中没有直接的教程&#xff0c;但可以尝试如下方法进行安装。 一、更新系统 终端输入&#xff1a; sudo apt update以及 sudo apt upgrade二、安装curl 输入指令&#xff1a; sudo apt install …

DHCP静态分配IP地址、IP-MAC绑定、静态ARP有哪些区别?

DHCP静态分配IP地址、IP-MAC绑定、静态ARP这三个功能都涉及到IP地址和MAC地址的对应关系&#xff0c;但其应用场景及实现的功能有所不同&#xff0c;如表所示&#xff1a; 原文地址https://support.huawei.com/enterprise/zh/knowledge/EKB1000052241

Linux下如何部署Nuxt项目(通过ip直接访问)

一、基础环境准备 1.确定服务器的Linux的系统版本 cat /etc/issue 不要问为什么&#xff0c;问就是吃过大亏 2.确定 node mysql是否安装&#xff0c;版本尽量与本地开发环境一致 如果没有安装建议自己百度一下&#xff0c;要根据Linux系统及版本来进行安装&#xff1b; 二、…

企业信息化-亿发软件,中小企业数字化转型解决方案供应商

因自身规模和企业性质&#xff0c;中小型企业需要有效管理企业资源&#xff0c;因此企业信息化管理至关重要。在此背景下&#xff0c;为中小企业量身定制的信息化管理系统可以为中小型企业带来显著的效益。能够实现数据的迅速整合&#xff0c;便于跨部门的协调和管理&#xff0…

计算机网络|思维导图|自顶向下方法|MindMaps资料分享

前言 那么这里博主先安利一下一些干货满满的专栏啦&#xff01; 手撕数据结构https://blog.csdn.net/yu_cblog/category_11490888.html?spm1001.2014.3001.5482这里包含了博主很多的数据结构学习上的总结&#xff0c;每一篇都是超级用心编写的&#xff0c;有兴趣的伙伴们都支…

【JMeter】同步定时器Synchronizing Timer集合点功能

LoadRunner 中有一个可以设置集合点的功能&#xff0c;顾名思义是设置多个虚拟用户等待到一个时间点&#xff0c;都到齐集合后一起发请求达到并发的目的 集合点是什么意思呢&#xff1f; 阻塞线程&#xff0c;直到指定的线程数量到达后&#xff0c;再一起释放&#xff0c;可以…

【Leetcode】206. 反转链表

题意&#xff1a;反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 一开始需要 cur head pre None 第二步反转指针 cur.next pre 接着再继续移动指针 tmp cur.next // 放在反转之前 pre cur cur tmp 完整…

Java使用JNA调用C文件

1.构建项目 准备最简单的maven项目&#xff0c;结构如下&#xff1a; 引入依赖&#xff1a; <dependency><groupId>net.java.dev.jna</groupId><artifactId>jna</artifactId><version>5.3.1</version></dependency>2.构建c…

2023-7-12-第十七式状态模式

&#x1f37f;*★,*:.☆(&#xffe3;▽&#xffe3;)/$:*.★* &#x1f37f; &#x1f4a5;&#x1f4a5;&#x1f4a5;欢迎来到&#x1f91e;汤姆&#x1f91e;的csdn博文&#x1f4a5;&#x1f4a5;&#x1f4a5; &#x1f49f;&#x1f49f;喜欢的朋友可以关注一下&#xf…

IMPALA 查询优化之元数据

目录 说明 背景 问题复现 环境 sql 排查 分析过程 结果分析 总结 说明 sql优化中重要的一环是查询改写&#xff0c;一个表的元数据有利于sql优化器准确的评估sql代价&#xff0c;获取最佳的sql执行计划&#xff0c;如下图所示&#xff0c;本文验证通过加载刷新impala …

Maya文件加载缓慢,这样处理就可以

将场景加载到Maya中时&#xff0c;需要较长时间才能打开场景。 有时&#xff0c;CPU使用率可能会达到100%。 原因&#xff1a; 在文件上工作一段时间后&#xff0c;场景通常会与未使用的显示层、集和节点混淆。这些未使用的图元可能会导致打开文件时出现滞后。 解决方案&…

CMU 15-445 -- Query Processing - 07

CMU 15-445 -- Query Processing - 07 引言Query ProcessingProcessing ModelIterator ModelMaterialization ModelVectorization Model小结 Access MethodsSequential ScanZone MapsLate MaterializationHeap Clustering Index ScanMulti-index ScanIndex Scan Page Sorting E…

文件操作--按格式读写文件

C语言允许按指定格式读写文件。函数fscanf&#xff08;&#xff09;用于按指定格式从文件读数据。其函数原型为&#xff1a; int fscanf (FILE *fp, const char *format ,...)&#xff1b; 其中&#xff0c;第一个参数为文件指针&#xff0c;第2个参数为格式控制参数&#x…

2023届网络安全岗秋招面试题及面试经验分享

Hello&#xff0c;各位小伙伴&#xff0c;我作为一名网络安全工程师曾经在秋招中斩获&#x1f51f;个offer&#x1f33c;&#xff0c;并在国内知名互联网公司任职过的职场老油条&#xff0c;希望可以将我的面试的网络安全大厂面试题和好运分享给大家~ 转眼2023年秋招已经到了金…