IOI车机系统刷机和改包笔记
前言
我自己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盘刷新;
二. 刷机条件
- 熄火,开车门。
- 请确保升级过程中车辆都处于驻车状态下,自动挡车辆档位应为P,并拉起手刹;手动挡车型车速应驻车,并拉起手刹;
- 请确保车辆都处于正常点火状态下;请确保系统时间为当前正确的日期(或咨询本地经销商设置正确的日期)
三.正式刷机
准备刷机软件
1.1 电脑插入FAT32格式的U盘
1.2 下载最新软件并解压软件包,将里面的文件夹GM_refreshpkg_c1ux拷贝至U盘根目录;文件夹名字为“GM_refreshpkg_c1ux” 1.1.3 确认其中包含如下:102个文件主机升级
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.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-releaseandy@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: 1610612736Block size: 4096Blocks per group: 32768Inodes per group: 8192Inode size: 256Journal blocks: 6144Label: Blocks: 393216Block groups: 12Reserved 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 *.imgmy_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.imgmd5sum 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
- 需要
/system/framework/
文件夹的包 - 使用
baksmali-1.3.2.jar和smali-1.3.2.jar
或者第三方工具ODEXTools_1.4.2
- 使用
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
IOI车机系统刷机和改包笔记相关推荐
- android车机系统刷机_让我们盘点一下在整个车联网领域,有哪几类玩家?
新的变革必然催生出新的商业生态,这是历史发展的必然. 现在的互联网时代发展越来越速度,伴随着云计算.大数据.人工智能技术发展的物联网迎来了蓬勃发展.所以,让我们来盘点一下在车联网这个领域中,有哪些企业 ...
- 鸿蒙 harmonyos 1.0,华为鸿蒙系统刷机包官方测试版|华为鸿蒙HarmonyOS抢先版下载 v1.0.0 beta版 - 数码资源网...
就在前天8月9号,华为正式发布了华为鸿蒙harmony OS操作系统.华为鸿蒙操作系统是基于微内核的一款打通了手机.平板.电脑.手表.电视.车机等各种平台的物联网时代跨平台统一操作系统,能在各平台间无 ...
- 小米2s回退出厂版本_小米8青春版官方出厂rom系统刷机包_降级包回退包V10.0.8.0...
下面同样是这个小米8青春版的固件rom包了,也就是原版的系统刷机包了,不知道有没有机友需要的呢,在这里说的这个系统包是线刷格式的出厂rom包了,也就是原版的没有任何改的固件rom线刷包了,这个是很实用 ...
- Android11vivox21刷机包,vivo x21旧版官方固件rom系统刷机包
这是vivo x21旧版官方固件rom系统刷机包,可以做备用,降级可用!!vivo x21已经提示更新了,如果你的手机更新之后系统没有之前好用的,可以选择降级用,直接完整版的固件rom包下载,解压出来 ...
- miui11开发版升级Android10,小米9透明版MIUI11开发版系统刷机包(最新固件系统升级包MIUI11.9.12.31开发版安卓10)...
小米9透明版搭载骁龙855处理器,27W有线快充,20W无线闪充,目前已经可以系统刷机升级最新版本了,优化耗电管理,提升了电池续航能力,改善滑动平滑效果.触控敏感度.滑动速度,在这里分享的是最新版MI ...
- 小米手机刷机鸿蒙,小米10升级鸿蒙系统刷机包
小米10升级鸿蒙系统刷机包,华为最新推出的鸿蒙系统让更多安卓用户们想要体验一把,就连小米用户们都想要将系统更新升级为鸿蒙系统,据说有很多用户们都体验到了新系统,带给大家的使用感受也是很新颖的,整个使用 ...
- Android go app 安装包,安卓go系统刷机
安卓go系统刷机最新版是一个专门为安卓用户打造的手机一键刷机软件,现在的智能手机在使用一段时间后都会出现卡顿的现象,这款软件可以清除掉手机自带的应用程序,让你手机高效运转起来,需要的朋友可以来西西下载 ...
- oppoa83t怎么升级android8,OPPO A83t原版系统刷机包_OPPO A83t最新升级包更新下载
下面也是咱们的OPPO A83t手机专用的原版的系统刷机包了,之前也是有机友说自己的手机系统出问题最,想刷回官方原版的rom包,不过现在网上很多提供的是第三方的rom刷机包,并非是官方的rom包,所以 ...
- android系统刷机,安卓手机刷机完全攻略 从此不再怕刷机
安卓手机刷机一直是是个比较热门的话题,有句话叫做了安卓用户有三好刷机.重启.扣电池,冬天能当暖手宝.这也恰恰说明了刷机对于安卓手机来说,就跟吃饭喝水一样再简单不过了.很多小白童鞋在刷机的时候,都害怕手 ...
最新文章
- 剑指offer:数组中只出现一次的数字
- 对Apache2进行简单配置
- 学python可以做什么职业好-学了那么多年python到底可以找什么工作?
- 15. 三数之和(双指针)
- 深入了解一下PYTHON中关于SOCKETSERVER的模块-B
- mysql as join_mysql as 别名与 join 多表连接语法
- LeetCode:225. 用队列实现栈
- sqlserver 只有函数和扩展存储过程才能从函数内部执行
- linux下camera驱动分析_LINUX设备驱动模型分析之三 驱动模块相关(DRIVER)接口分析...
- spark RDD概念及组成详解
- session 过期怎么办
- 预充电电路工作原理_电池管理系统中的高压预充电电路原理解析
- 计算机ppt以学校生活为主题的作文,以校园为主题的作文(通用5篇)
- 计算机C盘空间减少,为何我的C盘空间突然减少好几个G?
- 帆软报表更新到服务器控件展示不出来_报表工具软件FineReport常见问题与解答总结...
- windows10启动项修复||an operating system wasn't found解决办法
- idle最好记的常用快捷键大全
- win8计算机可用内存不足,Win8.1频繁提示内存不足是怎么回事
- 用python的django完成一个登录小案例
- recycleView的页面跳转设计