游客发表
安卓开发板刷系统,安卓最坑的板刷从来不是技术本身,而是系统你手里那块板子的脾气你摸不透。上周我拿了一块RK3399的安卓开发板,想刷个LineageOS 20上去跑个边缘计算的板刷小项目。卖家给的系统固件是Android 8.1,老得连个像样的安卓WebView都带不动。我以为刷机嘛,板刷无非是系统下载镜像、进Loader模式、安卓烧写,板刷半小时搞定。系统结果折腾到凌晨两点,安卓板子黑屏变砖,板刷连Maskrom模式都进不去。系统
问题出在分区表上。很多开发板的eMMC分区跟手机完全不是一回事,厂商喜欢把parameter.txt或者分区配置藏在uboot环境变量里。你直接拿手机端的fastboot刷,大概率会把bootloader覆盖掉。RK3399还算好的,有瑞芯微的Maskrom模式兜底——短接Flash引脚或者按住Recovery键上电,电脑端能识别到USB设备。但有些全志的板子,一旦boot0被擦,就只能上编程器拆焊eMMC了。我手头那块全志H6的电视盒子改的板子,就是这么废掉的。
刷机工具的选择也分三六九等。瑞芯微用RKDevTool,全志用PhoenixSuit,Amlogic用USB Burning Tool。这些工具界面丑得像是2008年的产物,但每个选项背后都是血泪教训。比如RKDevTool里的“强制按地址写”和“低格”选项,勾错了直接清空整个eMMC包括唯一的Loader。我一般会先备份原厂固件,用“高级功能”里的“导出镜像”把整块eMMC dump出来,存成img文件。这步花不了十分钟,但能救你一块板子。
驱动问题更玄学。Windows 10以上系统装瑞芯微的驱动,经常卡在“未知USB设备”那里。你得先禁用驱动程序强制签名,再手动从inf文件安装。我试过在Mac上刷,反而更顺——Linux内核直接认,rkdeveloptool命令行工具虽然参数反人类,但胜在稳定。具体命令像rkdeveloptool db rk3399_loader_v1.24.126.bin,然后rkdeveloptool wl 0x0 system.img,写错一个字母就等着重来吧。
系统镜像的适配才是真正让人头大的。网上那些“通刷包”基本不靠谱,触屏驱动、WiFi模块、HDMI输出,每个板子的硬件配置都不一样。我见过有人把手机端的GSI镜像直接刷进开发板,结果开机卡在Android logo,串口打印出一堆“failed to mount /vendor”。正确做法是拿厂商的BSP源码自己编译,或者去XDA、恩山论坛找同型号的移植包。但这类包往往停在Android 9或者11,想上Android 13?自己改device tree吧。
刷完系统只是开始。开发板通常没有电池,断电就丢时间。你得在init.rc里加个脚本,开机从RTC或者NTP同步。还有串口调试,板子上的UART口默认是内核控制台,你想用它跑应用,得改cmdline里的console参数。我习惯在刷机后先接串口线,看uboot的启动日志,确认kernel加载地址和dtb文件名对不对。有一次我刷完系统屏幕不亮,串口却显示系统正常启动,最后发现是uboot的display参数没传对,HDMI压根没输出。
说到底,安卓开发板刷系统跟手机刷机是两码事。手机有成熟的TWRP和Magisk生态,开发板你得自己当救火队员。我的建议是:买板子先看社区活跃度,RK3399、树莓派CM4这类资料多的,能省一半命。刷之前把原厂固件和分区表备份三份,串口线永远插着。别信“一键刷机工具”,那东西只对量产板有效。真变砖了,热风枪吹eMMC比找客服有用——当然,前提是你得有个能读BGA153的编程器。
友情链接