完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
1 准備工作
編譯 Android 對機器的配置要求較高: 64 位 CPU 16GB 物理內存+交換內存 30GB 空閑的磁盤空間用於構建,源碼樹另外占用大約 25GB 官方推薦 Ubuntu 14.04 操作系統,經測試,Ubuntu 12.04 也可以編譯運行成功, 安裝 OpenJDK 7: sudo apt-get install openjdk-7-jdk 提示:安裝 openjdk-7-jdk,會更改 JDK 的默認鏈接,這時可用: $ sudo update-alternatives --config java $ sudo update-alternatives --config javac 來切換 JDK 版本。SDK 在找不到操作系統默認 JDK 的時候會使用內部設定的 JDK 路徑,因此,為了讓同一台機器可以編譯 Android 5.1 及之前的版本,去掉鏈接更方便: $ sudo /var/lib/dpkg/info/openjdk-7-jdk:amd64.prerm remove Ubuntu 12.04 軟件包安裝: sudo apt-get install git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 g++-multilib mingw32 tofrodos gcc-multilib ia32-libs python-markdown libxml2-utils xsltproc zlib1g-dev:i386 lzop libssl1.0.0 libssl-dev Ubuntu 14.04 軟件包安裝: sudo apt-get install git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.8-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev pngcrush schedtool libxml2 libxml2-utils xsltproc lzop libc6-dev schedtool g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline-gplv2-dev gcc-multilib libswitch-perl libssl1.0.0 libssl-dev 2 下載 Android SDK 下載完成后先驗證一下 MD5 碼: $ md5sum /path/to/firefly-rk3288_android5.1_git_20180126.tar.gz dad080373115053de3367c21289562d2 firefly-rk3288_android5.1_git_20180126.tar.gz 確認無誤后,就可以解壓: mkdir -p ~/proj/firefly-rk3288-lollipop cd ~/proj/firefly-rk3288-lollipop tar x*** /path/to/firefly-rk3288_android5.1_git_20180126.tar.gz git reset --hard # git remote add bitbucket 以后就可以直接從 bitbucket 處更新: git pull bitbucket Firefly-RK3288:Firefly-RK3288 3 編譯方法 官方腳本編譯 firefly-rk3288 編譯 ./FFTools/make.sh -d firefly-rk3288 -j8 -l rk3288_box-userdebug ./FFTools/mkupdate/mkupdate.sh -l rk3288_box-userdebug firefly-rk3288-reload 編譯 ./FFTools/make.sh -d firefly-rk3288-reload -j8 -l rk3288_box-userdebug ./FFTools/mkupdate/mkupdate.sh -l rk3288_box-userdebug 手動編譯 手動編譯firefly-rk3288和firefly-rk3288-reload,編譯內核時,所用的配置文件和資源文件不同 編譯uboot cd ~/proj/firefly-rk3288-lollipop/u-boot make rk3288_defconfig make -j8 內核編譯 使用Firefly-RK3288 編譯內核: cd ~/proj/firefly-rk3288-lollipop/kernel make firefly-rk3288_defconfig make -j8 firefly-rk3288.img 使用Firefly-RK3288-reload 編譯內核: cd ~/proj/firefly-rk3288-reload-lollipop/kernel make firefly-rk3288-reload_defconfig make -j8 firefly-rk3288-reload.img 編譯Android Firefly-RK3288/Firefly-RK3288-Reload編譯 Android: cd ~/proj/firefly-rk3288-lollipop source build.sh lunch rk3288_box-userdebug make -j8 ./mkimage.sh 默認的目標構建變體(TARGET_BUILD_VARIANT)為 userdebug。常用變體有三種,分別是用戶(user)、用戶調試(userdebug)和工程模式(eng),其區別如下: user 僅安裝標簽為 user 的模塊 設定屬性 ro.secure=1,打開安全檢查功能 設定屬性 ro.debuggable=0,關閉應用調試功能 默認關閉 adb 功能 打開 Proguard 混淆器 打開 DEXPREOPT 預先編譯優化 userdebug 安裝標簽為 user、debug 的模塊 設定屬性 ro.secure=1,打開安全檢查功能 設定屬性 ro.debuggable=1,啟用應用調試功能 默認打開 adb 功能 打開 Proguard 混淆器 打開 DEXPREOPT 預先編譯優化 eng 安裝標簽為 user、debug、eng 的模塊 設定屬性 ro.secure=0,關閉安全檢查功能 設定屬性 ro.debuggable=1,啟用應用調試功能 設定屬性 ro.kernel.android.checkjni=1,啟用 JNI 調用檢查 默認打開 adb 功能 關閉 Proguard 混淆器 關閉 DEXPREOPT 預先編譯優化 如果目標構建變體為 user,則 adb 無法獲取 root 權限。 要選擇目標構建變體,可以在 make 命令行加入參數,例如: make -j8 PRODUCT-rk3288_box-user make -j8 PRODUCT-rk3288_box-userdebug make -j8 PRODUCT-rk3288_box-eng 4 燒寫分區映像 上一步驟的 ./mkimage.sh 會重新打包 boot.img 和 system.img, 並將其它相關的映像文件拷貝到目錄 rockdev/Image-rk3288_box/ 中。以下列出一般固件用到的映像文件: boot.img :Android 的初始文件映像,負責初始化並加載 system 分區。 kernel.img :內核映像。 misc.img :misc 分區映像,負責啟動模式切換和急救模式的參數傳遞。 recovery.img :急救模式映像。 resource.img :資源映像,內含開機圖片和內核的設備樹信息。 system.img :Android 的 system 分區映像,ext4 文件系統格式。 請參照 如何升級固件 一文來燒寫分區映像文件。 如果使用的是 Windows 系統,將上述映像文件拷貝到 AndroidTool (Windows 下的固件升級工具)的 rockdevImage 目錄中,之后參照升級文檔燒寫分區映像即可,這樣的好處是使用默認配置即可,不用修改文件的路徑。 5 打包成統一固件 編譯完可以使用Firefly的腳本打包成統一固件,執行如下命令: ./FFTools/mkupdate/mkupdate.sh -l rk3288_box-userdebug 打包完成后固件會生成在rockdev/Image-rk3288_box/ 目錄 在 Windows 下打包統一固件 update.img 很簡單,按上一步驟將文件拷貝到 AndroidTool 的 rockdevImage 目錄中,然后運行 rockdev 目錄下的 mkupdate.bat 批處理文件即可創建 update.img 並存放到 rockdevImage 目錄里。 update.img 方便固件的發布,供終端用戶升級系統使用。一般開發時使用分區映像比較方便。 以下為編譯打包后的Firefly-RK3288,Firefly-RK3288-Reload固件: Firefly-RK3288 Android 5.1固件: Firefly-RK3288-Reload Android 5.1固件: |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1567 浏览 1 评论
synopsys 的design ware:DW_fpv_div,浮点数除法器,默认32位下,想提升覆盖率(TMAX),如果用功能case去提升覆盖率呢?
1790 浏览 1 评论
RK3588 GStreamer调试四路鱼眼摄像头四宫格显示报错
4465 浏览 1 评论
【飞凌嵌入式OK3576-C开发板体验】RKNN神经网络-YOLO图像识别
254 浏览 0 评论
【飞凌嵌入式OK3576-C开发板体验】SSH远程登录网络配置及CAN通讯
1336 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-10 16:06 , Processed in 0.353689 second(s), Total 39, Slave 34 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号