编译 Android12.0 固件 下载 Android12.0 SDK SDK æºç 与 bundle 压缩包å‡å˜æ”¾åœ¨äº‘盘ä¸ã€‚ 下载 SDK SDK通过邮件的方å¼èŽ·å–,把订å•å·å‘é€åˆ°<font color=red>sales@t-firefly.com</font>邮箱并注明需è¦çš„SDKå称 firefly_rk3588_android12_git_20240704 下载完æˆåŽï¼Œåœ¨è§£åŽ‹å‰å…ˆæ ¡éªŒä¸‹ MD5 ç : $ md5sum /path/to/firefly_rk3588_android12_git_20240704.7z.001 $ md5sum /path/to/firefly_rk3588_android12_git_20240704.7z.002 $ md5sum /path/to/firefly_rk3588_android12_git_20240704.7z.003 $ md5sum /path/to/firefly_rk3588_android12_git_20240704.7z.004 $ md5sum /path/to/firefly_rk3588_android12_git_20240704.7z.005 $ md5sum /path/to/firefly_rk3588_android12_git_20240704.7z.006 $ md5sum /path/to/firefly_rk3588_android12_git_20240704.7z.007 1ce2a5ab4e3a9f0a4d6d8cd47ca4981d firefly_rk3588_android12_git_20240704.7z.001 553fb5ee2cc5623d97bfb19ba299605b firefly_rk3588_android12_git_20240704.7z.002 cb9cce227a79356fa57c0781a426fd89 firefly_rk3588_android12_git_20240704.7z.003 1461a09bacbef0cb3c9a9008e8483e93 firefly_rk3588_android12_git_20240704.7z.004 d154b39087bbf410a7973da97a6a9ecb firefly_rk3588_android12_git_20240704.7z.005 7cfc42443caa57cb4cf474bf3e78b5ce firefly_rk3588_android12_git_20240704.7z.006 9ad4374d89212a882dc00541769732f8 firefly_rk3588_android12_git_20240704.7z.007 然åŽè§£åŽ‹ï¼š cd ~/proj/ 7z x ./firefly_rk3588_android12_git_20240704.7z.001 -oRK3588_Android12.0 cd ./RK3588_Android12.0 git reset --hard 注æ„:ä¸è¦åœ¨å…±äº«æ–‡ä»¶å¤¹ã€æŒ‚载文件夹以åŠéžè‹±æ–‡ç›®å½•è§£åŽ‹SDK,é¿å…产生ä¸å¿… è¦çš„错误 æ›´æ–° SDK 下载 SDK åŽï¼Œä»Ž gitlab 处更新代ç 的方法: #1. 进入 SDK æ ¹ç›®å½• cd ~/proj/RK3588_Android12.0 #2. 下载远程 bundle 仓库 git clone https://gitlab.com/T-Firefly/rk3588-android12.0-bundle.git .bundle #3. bundle仓库会éšç€æ›´æ–°çš„资æºè¶Šå¤šè€Œä¼šè¶Šæ¥è¶Šå¤§ï¼Œå¦‚æžœbundle仓库下载速度缓慢或若下载失败, # 请在资æºä¸‹è½½ç•Œé¢é€‰æ‹©å¯¹åº”的机器bundle文件进行下载并解压到SDKæ ¹ç›®å½•ï¼Œè§£åŽ‹æŒ‡ä»¤å¦‚ä¸‹: 7z x rk3588-android12.0-bundle.7z -r -o. && mv rk3588-android12.0-bundle .bundle #4. æ›´æ–° SDK,并且åŽç»æ›´æ–°ä¸éœ€è¦å†æ¬¡æ‹‰å–远程仓库,直接执行以下命令å³å¯ .bundle/update #5. 按照æ示已ç»æ›´æ–°å†…容到 FETCH_HEAD,åŒæ¥ FETCH_HEAD 到 firefly 分支 git rebase FETCH_HEAD 下载页é¢é€‰æ‹©äº‘盘下载 Android12.0 Bundle 。 Core-3588SG 产å“编译方法 整体编译 公版固件编译: ./FFTools/make.sh -d rk3588s-firefly-aio-3588sg -j8 -l rk3588s_firefly_aio_3588sg-userdebug ./FFTools/mkupdate/mkupdate.sh -l rk3588s_firefly_aio_3588sg-userdebug 分æ¥ç¼–译 编译 kernel: cd ~/proj/RK3588_Android12.0/kernel-5.10 export PATH=../prebuilts/clang/host/linux-x86/clang-r416183b/bin:$PATH alias msk='make CROSS_COMPILE=aarch64-linux-gnu- LLVM=1 LLVM_IAS=1' msk ARCH=arm64 firefly_defconfig android-11.config pcie_wifi.config msk ARCH=arm64 BOOT_IMG=../rockdev/Image-rk3588s_firefly_aio_3588sg/boot.img rk3588s-firefly-aio-3588sg.img -j8 编译 uboot: cd ~/proj/RK3588_Android12.0/u-boot/ ./make.sh rk3588 编译 Android: cd ~/proj/RK3588_Android12.0/ source build/envsetup.sh lunch rk3588s_firefly_aio_3588sg-userdebug make installclean make -j8 ./mkimage.sh 打包æˆç»Ÿä¸€å›ºä»¶ update.img 编译完å¯ä»¥ç”¨Firefly官方的脚本打包æˆç»Ÿä¸€å›ºä»¶ï¼Œæ‰§è¡Œå¦‚下命令: ./FFTools/mkupdate/mkupdate.sh -l rk3588s_firefly_aio_3588sg-userdebug 打包完æˆåŽå°†åœ¨rockdev/Image-rk3588s_firefly_aio_3588sg/ 目录下生æˆç»Ÿä¸€ 固件: productåXXX_XXX_日期XXX.img 在 Windows 下打包统一固件 update.img 也很简å•ï¼Œå°†ç¼–译生æˆçš„文件拷è´åˆ° AndroidTool çš„ rockdev\Image 目录ä¸ï¼Œç„¶åŽè¿è¡Œ rockdev 目录下的 mkupdate.bat 批处ç†æ–‡ä»¶å³å¯åˆ›å»º update.img 并å˜æ”¾åˆ° rockdev\Image 目录 里。 其他编译说明 Android12.0 ä¸èƒ½ç›´æŽ¥çƒ§å†™ kernel.img å’Œ resource.img Android12.0çš„"kernel.img"å’Œ"resource.img"包å«åœ¨"boot.img"ä¸ï¼Œç¼–译 kernelåŽéœ€è¦åœ¨androidæ ¹ç›®å½•ä¸‹æ‰§è¡Œ"./mkimage.sh"é‡æ–°æ‰“包"boot.img",ç„¶åŽ çƒ§å†™rockdev/Image-rk3588s_firefly_aio_3588sg/目录下的"boot.img"。 å•ç‹¬ç¼–译kernel生æˆboot.img 编译的原ç†ï¼šåœ¨kernel目录下将编译生æˆçš„ "kernel.img" å’Œ "resource.img" 替æ¢åˆ°æ—§çš„ "boot.img" ä¸ï¼Œ 所以编译的时候需è¦ç”¨ BOOT_IMG=xxx å‚数指定 "boot.img"的路径,命令如下: cd ~/proj/RK3588_Android12.0/kernel-5.10 export PATH=../prebuilts/clang/host/linux-x86/clang-r416183b/bin:$PATH alias msk='make CROSS_COMPILE=aarch64-linux-gnu- LLVM=1 LLVM_IAS=1' msk ARCH=arm64 firefly_defconfig android-11.config pcie_wifi.config msk ARCH=arm64 BOOT_IMG=../rockdev/Image-rk3588s_firefly_aio_3588sg/boot.img rk3588s-firefly-aio-3588sg.img -j8 编译åŽå¯ä»¥ç›´æŽ¥çƒ§å†™kernel目录下的"boot.img"。 åˆ†åŒºé•œåƒ ç¼–è¯‘çš„æ—¶å€™æ‰§è¡Œ "./mkimage.sh" 会é‡æ–°æ‰“包 "boot.img" å’Œ "super.img", 并 将其它相关的镜åƒæ–‡ä»¶æ‹·è´åˆ°ç›®å½• rockdev/Image- rk3588s_firefly_aio_3588sg/ ä¸ã€‚以下列出一般固件用到的镜åƒæ–‡ä»¶ï¼š 请å‚ç…§ 《使用USB线缆å‡çº§å›ºä»¶ã€‹ 一文æ¥çƒ§å†™åˆ†åŒºé•œåƒæ–‡ä»¶ã€‚ OTA 编译 请å‚ç…§ 《OTA编译》 ç« èŠ‚ 常è§é—®é¢˜ git clone 远程 bundle 仓库失败 Q: æ›´æ–°SDK 时,git clone 远程 bundle 仓库出错: $ git clone https://gitlab.com/T-Firefly/rk3588-android12.0-bundle.git .bundle Cloning into '.bundle'... remote: Enumerating objects: 20, done. remote: Counting objects: 100% (20/20), done. remote: Compressing objects: 100% (18/18), done. error: RPC failed; curl 56 GnuTLS recv error (-9): A TLS packet with unexpected length was received. fatal: the remote end hung up unexpectedly fatal: early EOF fatal: unpack-objects failed A:缓冲区大å°ä¸å¤Ÿï¼Œéœ€è¦æ‰©å¤§ç¼“冲区: git config --global https.postBuffer 1048576000