资讯详情

WEIPOS开店宝安卓收银机内置存储DIY硬改扩容成功,分享一下心得和体会

认识很多玩家/拆客/DIYer,查阅更多资源,共同学习技术知识

您需要 登录 才可以下载或查看,没有帐号?立即注册

8baaf04eb249b4474178b0078f482447.gif

x

帖子比较长,请耐心观看!

一、前言

之前在坛子里发帖,请教坛子里的大佬们。首先感谢大家给我的建议!谢谢你的热情帮助!

以前一直有想法把开店宝的收银机当实验品。这个收银机是开店宝的WEIPOS品牌,帮朋友的亲戚升级收银机后,朋友给了我。

机器配置:CPU(RK3368),运存RAM(1G),ROM内置存储(4G),主要是4G存储空间有限,往往表明空间不足,存储不足,主板背面预留焊接RAM内存颗粒的焊盘位置,连焊盘周围的贴片电容和电阻都焊好了,感觉可以直接扩容RAM的,等内置存储扩容搞定,再考虑运存扩容;

一直以收银机为平板电脑,看视频和电影都挺流畅的更烦人的是安装更多的软件,提示空间不够。

图片-1:1-ok.jpg (73.15 KB, 下载次数: 0)

2020-10-26 10:11 上传

图片-2:

2-ok.jpg (141.53 KB, 下载次数: 0)

图片-2

2020-10-26 10:11 上传

对于这种内置存储和存储操作的扩展,我以前在这方面没有实际经验,只是在网上看到了相关的帖子和视频,也不敢轻易开始。

发帖后,在老板们的指导下,我下定决心开始折腾。折腾期间也很折磨人!但是在折腾中寻找幸福!在折腾中增加知识也很有趣!

**********************************************************

二、前期准备阶段:

首先是扩容知识的理解和学习。我看过坛子里专家给岳父的小米手机扩容的帖子,了解瑞芯微固件的知识。我以前没有接触过瑞芯微机,也没有折腾过。如果我想说接触,我以前折腾过联发科系列芯片平板电脑的固件,纯粹是为了好玩!

下载瑞芯微固件包装解包、刷机、驱动等相关工具软件。

我使用的工具软件和驱动:

U盘主控板EMMC读写工具(ProgramTek)

AndroidTool_Release_v2.54(瑞芯微刷机工具)

Notepad (文本编辑器)

Beyond Compare 4 (文件对比工具)

DriverAssitant_v4.91(瑞芯微驱动程序)

RK3399_RK3288固件解包工具FWFactoryTool5.50(瑞芯微固件解包包装工具)

RK3368收银机系列基本没有固件和数据,所以下载了一些RK安卓机顶盒类型的3368芯片固件,解包后了解固件的相关情况。

在网上搜索瑞芯微RK关于扩容内置存储的一系列知识点和帖子。RK3368的资料很少,有的只能作为参考;但是RK3399、RK3288和RK3128和其他芯片有很多信息,但可以肯定的是,它们都是瑞芯微系列CPU,许多数据和使用方法应该是相通的。

二是准备硬件和工具,找到与原主板上内存颗粒参数一致的相关信息,以及EMMC确定字库的相关资料后TB下单采购,还有一些焊接工具和耗材,如植锡钢网、焊锡膏等,EMMC书库读卡器、风枪(迷你版)和低温锡以前都准备好了,可以直接使用。可以看一下图片工具、内存颗粒【K4B4G1646E-BYK0】和EMMC【KLMAG2WEPD-B031(16GB)】对了,我买了两个32个字库GB的。

图-3:图中画红圈的是山寨机主板3-准备的工具材料和山寨机主板。-ok.jpg (108.23 KB, 下载次数: 0)

2020-10-26 10:11 上传

扩容字库对我来说比较困难的是芯片植锡。我以前没有做过,但可以肯定的是,我的动手能力还可以。不管怎样,拆卸东西仍然很强大!!首先,我买了工具和材料来练习我的手。感受一下!此外,机器没有官方的线刷固件,这也更具挑战性!

看图片,找了个山寨手机(可以开机,充电费)拆字库练手!

图片-4:用山寨机主板eMCP(2 8)芯片练手植锡!

4-山寨板子2 练手用8芯片-ok.jpg (60.2 KB, 下载次数: 0)

2020-10-26 10:11 上传

*********************************************

三、字库芯片植锡替代阶段

练了几次开始有感觉!

经过以上一系列的准备和练习,最终进入了更换扩容字库的实际操作阶段!以下是详细的过程。

主板上的字库芯片开始拆卸。拆卸前,应保护周围部件,并粘贴隔热胶带和铝膜胶带。风枪调整到350度,风速7。每个风枪都不一样。拆卸起来很方便。焊盘没有脱落。

图片-5:保护芯片周围的元件,准备拆字库。5-准备拆字库,主板保护图片-ok.jpg (147.11 KB, 下载次数: 0)

图片-5

2020-10-26 10:11 上传

图片-6: 主板上的字库很容易拆下。

6-4G拆下字库的图片-ok.jpg (126.06 KB, 下载次数: 0)

2020-10-26 10:11 上传

图片-7:拆下的字库焊盘完好无损。

7-拆下来4G字库焊盘完好-ok.jpg (45.33 KB, 下载次数: 0)

2020-10-26 10:11 上传

下面开始给4G字库芯片植锡,看看,还可以!第一次植锡基本还可以!

图片-8:4G字库植锡效果图

8-4G字库植锡效果图-ok.jpg (87.1 KB, 下载次数: 0)

2020-10-26 10:11 上传

植锡完成后,开始焊接到U盘字库读卡器上,还算顺利,基本一次就完成了。G字库也是一次植锡焊接。

图片-9:准备4G字库焊接到U盘上。

9-准备将4G将字库焊接到U盘上-ok.jpg (111.61 KB, 下载次数: 0)

2020-10-26 10:11 上传

图片-10:顺利焊接4G字库

10-顺利焊接好4G字库-ok.jpg (142.93 KB, 下载次数: 0)

2020-10-26 10:11 上传

插入电脑试试是否正常,插入电脑提示使用驱动器I:中间的光盘之前需要格式化。如果有这个提示证明焊接没有问题,哈!当然,此时不要格式化!

焊好的4G插入电脑的字库也表明需要格式化,以证明焊接没有问题!焊接16G插入电脑的字库也提示需要格式化,证明焊接完好无误!

图片-11:

11-4G焊接后插入电脑提示需要格式化-ok.jpg (176.96 KB, 下载次数: 0)

2020-10-26 10:11 上传

接下来是字库读取和克隆的过程。

图片-12:准备将字库读取过程和字库读取的文件写入新字库芯片。

12-字库读取过程-ok.jpg (149 KB, 下载次数: 0)

2020-10-26 10:11 上传

图片-13:字库文件已写入16:G字库芯片。

13-字库文件已写入16份G字库芯片-ok.jpg (105.36 KB, 下载次数: 0)

2020-10-26 10:11 上传

图片-14:将新字库焊接到主板上。

14-在主板上焊接。-ok.jpg (299.33 KB, 下载次数: 0)

2020-10-26 10:11 上传

在这个时候,我记得我不想把读取的固件修改为16G容量大小后写入新字库吗?但是我不会用它WINHEX软件,我也不想把新字库拆下来,那就错了,先开机试试能否正常启动?

图片-15:加电启动快速进入系统,字库移植没问题!

15-加电机很快进入系统-ok.jpg (154.21 KB, 下载次数: 0)

2020-10-26 10:11 上传

如果能自动识别内置之前查过相关帖子说瑞芯微机安卓6.0以上版本可以自动区分存储空间的大小存储容量不是更好!进入系统查看内置存储容量没有改变!恢复工厂设置不好,似乎不能自动识别。

图片-16:查看与以前相同容量的内置存储!出厂设置恢复后不行!16-查看与以前相同容量的内置存储-ok.jpg (124.43 KB, 下载次数: 0)

2020-10-26 10:11 上传

图片-17:USB连机看了一下分区的情况,新字库16GB已识别容量,内置存储分区userdata要改才行。17-USB在线查看分区情况,新字库容量识别内置存储分区改变-ok.jpg.jpg (109.7 KB, 下载次数: 0)

2020-10-26 10:11 上传

我真的不想拆下新焊接的字库,因为我担心用风枪拆卸几次芯片会被浪费。此外,我不会使用它WINHEX修改字库文件,或者试着解决分区容量识别问题,真的不能拆除字库,所以我开始下一步!

***********************************************

四、分区容量识别操作阶段

既然官方没有线刷包,我把机器里的固件提取出来(需要ROOT后才能提取固件),再用刷机工具刷入机器,这样机器格式化后能不能正确识别内置分区容量?先用USB连机查看各分区的情况,然后用ADB命令把各分区提取出来。

这机器主板上有一个RECOVERY键,USB线连机后,先按住这按键不放,然后按电源键开机可进入LOADER模式,这时刷机工具底部会显示【发现一个LOADER设备】,点工具软件设备分区表会显示机器设备分区名称、地址和容量大小,我比对了一下与我提取的文件分区名、地址和大小是一样的,看图片。

图片-18

18-分区比较图-ok.jpg (230.65 KB, 下载次数: 0)

2020-10-26 10:11 上传

虽说有提取的固件,有刷机工具,还是不敢轻易刷机,担心刷成砖头哈(其实怎么刷都没事,底层的东西不弄坏一般不会有问题)。

我看了有人的帖子是在Ubuntu系统下找到device目录下的BoardConfig.mk文件,将BOARD_USERDATAIMAGE_PARTITION_SIZE的大小修改USERDATA文件容量大小参数,重新编译一下,烧写userdata分区(fastboot flash userdata userdata.img),解决分区容量识别的问题,Ubuntu系统用过,但只是略懂皮毛,而且太麻烦看着都头疼哈!

我这个如果只是单纯用userdata文件刷机的话,分区容量与之前一样也不会增加吧?

接下来开始学习研究与分区相关的知识点,之前没深入了解过!

开始查资料,资料很少,找到一篇关于更改分区容量大小的帖子,看过之后经过反复琢磨和计算,终于明白怎样使用win7系统自带的【计算器】程序员模式,进行十六进制和十进制之间的转换换算,也明白了,各分区容量大小与起始地址怎样换算,怎样修改各分区容量大小?感觉收获很大!

之后又找了一些RK3368系列机顶盒的固件,还有那种通刷的固件,解压后查看固件文件,发现其中有都一个parameter.txt文本文件,后来查了相关的帖子说瑞芯微系列芯片的机器是通过这个文件来调整各个分区的大小的。

见图片-19:

19-文件ok.jpg (142.02 KB, 下载次数: 0)

2020-10-26 10:11 上传

可我的机器里没有这个文件怎么办?既然是文本文件,能不能在我从字库中备份读取的那个文件里找到,于是我用WINHEX磁盘编辑软件打开【IMAGE.bin】这个文件,用软件的文本搜索功能搜索到的文件,大家看一下图片。

图片-20:parameter文本记录

20-parameter-ok.jpg (75.49 KB, 下载次数: 0)

图片-20

2020-10-26 10:11 上传

感觉像是系统启动过程中的LOG记录文本,这个文本中启动参数和各分区大小,起止地址等与下载的RK3368盒子通刷固件中的parameter.txt文件中的基本一样,一共有8个记录文本,这也验证了下面关于parameter参数文件的解析处理摘录中介绍的【但是一共有8个parameter,可能7个是作为备份的。】

见图片-21:一共有8个一样的parameter文本记录,我缩小了,便于观看,缩小了也只能看到两个,后面还有6个。

21-一共有八个一样的记录文件parameter-ok.jpg (64.91 KB, 下载次数: 0)

2020-10-26 10:11 上传

见图片-22:这张图片用文本比较软件查看我从IMAGE.bin.txt文本中复制出来的parameter文本记录与通刷版固件中解压出来的parameter.txt文件中内容基本一致。

22-提取出来的文本与分区文件parameter.txt比较-ok.jpg (163.42 KB, 下载次数: 0)

2020-10-26 10:12 上传

摘录帖子里的文字:rk3368对于parameter参数文件的解析处理

这个文件是在uboot中被解析的。

在init_sequence_r中有board_late_init函数

board_late_init中首先就执行了

load_disk_partitions()这一部分。这一部分执行了解析parameter的过程。还有一次解析Parameter的过程是在执行完一次flash以后。刷了新的flash的时候会重新解析一次。

这一次是调用board_fbt_load_partition_table->load_disk_partitions执行的解析

在load_disk_partitions中

首先分配了一块内存用于保存解析的param结构

Parameters有多个Line组成,限制每个Line最大占1024Bytes

#define PARAMETER_NUM 8 // parameter文件的备份个数

#define MAX_LOADER_PARAM (128*512) //Parameters所占的最大Sector数(含tag、length、crc等)

PLoaderParamparam = (PLoaderParam)memalign(ARCH_DMA_MINALIGN, MAX_LOADER_PARAM *PARAMETER_NUM);

申请了 128*512*8字节 512KB的大小。每个parameter文件只有128*512的大小。

【但是一共有8个parameter,可能7个是作为备份的。】

只要按照顺序读取出一个parameter。并且是有效的parameter文件就表明成功了

下面详细介绍一下各分区的容量大小和起始地址以及怎样计算?更改分区的大小。

CMDLINE:console=ttyFIQ0androidboot.baseband=N/A androidboot.selinux=disabledandroidboot.hardware=rk30board androidboot.console=ttyFIQ0 init=/initinitrd=0x62000000,0x00800000 mtdparts=rk29xxnand:

0x00002000@0x00002000(uboot),   size:0x00002000    8192×512÷1024÷1024=4MB address:    8MB

0x00002000@0x00004000(trust),   size:0x00002000    8192×512÷1024÷1024=4MB address:   12MB

0x00002000@0x00006000(misc),    size:0x00002000    8192×512÷1024÷1024=4MB address:   16MB

0x00008000@0x00008000(resource),size:0x00008000  32768×512÷1024÷1024=16MBaddress:   32MB

0x00008000@0x00010000(kernel),  size:0x0000C000  32768×512÷1024÷1024=16MB address:   48MB

0x00010000@0x00018000(boot),                                         32MB address:   80MB

0x00010000@0x00028000(recovery),                                     32MBaddress:  112MB

0x00038000@0x00038000(backup),                                      118MB address:  224MB

0x00040000@0x00070000(cache),                                       128MB address:  352MB

0x00002000@0x000B0000(kpanic),                                        4MB address:  356MB

0x00200000@0x000B2000(system),                                     1024MBaddress: 1380MB

0x00008000@0x002B2000(metadata),                                     16MB address: 1396MB

0x00002000@0x002BA000(baseparamer),                                   4MB address: 1400MB

0x00200000@0x002BC000(userdata),                                   1024MB address: 2424MB

0x00020000@0x004BC000(radical_update),                              64MB address: 2488MB

-@0x004DC000(user)

@符号前是分区的大小

@符号后是分区的起始地址

括号中是分区的名字

单位都是 sector(512Bytes)

比如 uboot 起始地址为 0x2000 sectors (4MB)的位置,大小为 0x2000 sectors(4M)

另外 flash 最大的 block 是 4M(0x2000 sectors),所以每个分区需要 4MB 对齐,即每个分区必须为 4MB 的整数倍。

0x00038000@0x00038000(backup)

backup 分区前的分区为固件区 uboot、trust、misc、resource、kernel、boot、recovery ,后续升级时不能修改分区大小;

backup 分区后的分区 cache、system、metadata、baseparamer、userdata是可以读写的,可以调整分区大小。但是修改分区大小后需要进入 recovery 系统格式化cache分区,再次进入系统后可以正确识别userdata分区容量了。

这下我可以确定,我提取的固件可以刷机了,下载的固件也可以刷入我的机器里了!分区容量识别问题感觉可以搞定了!后来经过多次刷机发现怎么刷也成不了板砖。

接下来开始着手修改parameter文件里的分区大小,先试着把userdata分区改成2GB的容量,成功了。

图片-2323-2g容量-ok.jpg (186.72 KB, 下载次数: 0)

2020-10-26 10:12 上传

分区修改的基本操作方法如下:

1、用【RK3399_RK3288固件解包工具FWFactoryTool5.50】工具把通刷固件【RK3368_Android5.11SE160328】解压出来,修改parameter.txt文件里的分区参数,然后打包固件。

图片-24:解包固件

24-解压固件-ok.jpg (117.47 KB, 下载次数: 0)

2020-10-26 10:12 上传

图片-25:修改parameter.txt文件里的分区参数;

25-1822000-ok.jpg (122.78 KB, 下载次数: 0)

2020-10-26 10:12 上传

2、机器开机进入LOADER模式(先按住recovery按键不放,再按电源开机键),把打包好的固件用【AndroidTool_Release_v2.54】刷机工具中的【固件升级】项把系统刷进去,这个包可以刷入(刷机失败也没关系),但无法进入系统,因为内核什么,system都不一样,没关系,我们只需要在刷机过程中格式化磁盘就行,格式化磁盘时会按照修改后的parameter.txt中分区大小进行格式化。

图片-26

26-低格设备-ok.jpg (138.86 KB, 下载次数: 0)

2020-10-26 10:12 上传

刷写之后不用重启机器,进入【下载镜像】选项,点【设备分区表】按钮就可以看到userdata分区表的容量和起始地址已经更改了。

图片-27:

27_1822000分区表已更改-ok.jpg (203.26 KB, 下载次数: 0)

2020-10-26 10:12 上传

3、之后再次重复第二步的操作进入LOADER模式,用【AndroidTool_Release_v2.54】刷机工具中【下载镜像】选项把之前从机器里提取的固件整个再刷一遍,如果中途重启,显示“下载失败”,可以重新进入LOADER模式分段进行刷机。因为在LOADER模式系统默认1分半钟,之后会自动重启,我提取的固件是整个分区的,刷写时会整个分区刷写会耗费时间较长,超过时间机器会自动重启,所以可以批(几个分区刷写一次)或者单刷某一个分区,全部刷完后开机进入recovery模式,进行data和cache双清。双清之后再次重新进入系统后,userdata分区就可以正确识别了。

图片-28:用【AndroidTool_Release_v2.54】刷机工具中【下载镜像】选项,刷一遍机器里提出来的固件。28_再次刷写一遍提取的固件-ok.jpg (162.89 KB, 下载次数: 0)

2020-10-26 10:12 上传

图片-29:29-分段刷机-1-ok.jpg (259.5 KB, 下载次数: 0)

2020-10-26 10:12 上传

图片-30:刷机完成后重启机器进入recovery模式,双清恢复出厂设置。30-格式化datahecache-ok.jpg (109.67 KB, 下载次数: 0)

图片-30

2020-10-26 10:12 上传

图片-31:双清后进入系统,userdata分区容量已正确识别。

31-进系统显示userdata分区容量已识别-ok.jpg (109.61 KB, 下载次数: 0)

2020-10-26 10:12 上传

图片-32: ADB连机查看分区,userdata分区已正确识别,还剩1个多GB的容量分配给了user 分区了。32-查看分区还有一个GB容量给user-ok.jpg (156.83 KB, 下载次数: 0)

2020-10-26 10:12 上传

说一下:分区修改可以两种方式都行(下载中有大容量内置存储机顶盒刷机包里面就是屏蔽掉以前的分区,后面添加去掉user分区,把userdata分区移到最后),一种按照以前的分区模式,把userdata分区变大,后面分区起止地址作相应的修改就好了,另外一种就是去掉user分区,我看了一下这个分区最终还是指向了userdata分区,把【userdata】分区移到最后,剩余的空间全部给userdata分区。

图片-33,原版分区和去掉user分区修改后参数比较。

33-userdata和无user分区对比图片-ok.jpg (124.05 KB, 下载次数: 0)

2020-10-26 10:12 上传

最后看一下,去掉user分区,把userdata分区调整到最后自动识别剩余空间。我看了一下进入user分区后最后还是进入userdata分区。

说明一下:去掉user分区后,在刷机工具的【镜像下载】项下要把userdata分区移至最下面,同时删除user分区选项,看图片。

图片-34:

34-去掉user分区要删除下载镜像里的user分区-ok.jpg (284.5 KB, 下载次数: 0)

2020-10-26 10:12 上传

图片-35:进recovery格式化data和cache。

35-格式化cache-ok.jpg (124.03 KB, 下载次数: 0)

2020-10-26 10:12 上传

图片-36:系统把剩余的空间分配给了userdata分区。

36-进系统正确识别容量-ok.jpg (77.95 KB, 下载次数: 0)

2020-10-26 10:12 上传

五、最后

这次收银机字库更换收获比较大!也很完美哈!

其实好多事情想象中很难,觉得没有自信,不敢做,真正做起来也没有想象中的那么难!

期间也是一波三折,还以为会把机器刷成板砖呢!还有资料太少也是很苦恼!瑞芯微有一个固件解包打包的工具【瑞芯微固件解包打包工具Vxx.x试用版】全都是试用版,有的用不了,有的功能缺失,用起来可真闹心啊!

专业的好质量工具也很重要!之前买的维修lao的植锡钢网,植锡时老是爆锡,我这里无意贬损某个品牌的产品,只是自己使用不习惯罢了!后来又买了加厚的阿 MAO易修的钢网(钢网孔眼是方孔),怎么植锡都不爆锡,能把控自如!

我对于某个行业中【专业】一词的理解是:既要有很好的技能和责任心,还要有专业的工具作为支撑,这样才能称之为专业!

对于字库更换我是初次接触,连业余都不算,对于帖子中有些词汇使用不够专业的,还请各位专业级大佬斧正哈!

还有个请求!有哪位大神能提供一下关于WINHEX修改固件大小方面的帖子或者教程,造福广大爱折腾的数码爱好者!

希望这个帖子对于有这方面需求者能有所帮助!

最后,谢谢各位能耐心看完此帖!

标签: 29k4贴片电阻

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台