0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

fireflyAIO-3399J編譯Android8.1固件簡介

firefly ? 來源:firefly ? 作者:firefly ? 2019-12-24 10:57 ? 次閱讀

編譯 Android8.1 固件

準備工作

編譯 Android 對機器的配置要求較高:

64 位 CPU

16GB 物理內(nèi)存+交換內(nèi)存

30GB 空閑的磁盤空間用于構(gòu)建,源碼樹另外占用大約 25GB

官方推薦 Ubuntu 14.04 操作系統(tǒng),經(jīng)測試,Ubuntu 12.04 也可以編譯運行成功,只需要滿足 http://source.android.com/source/building.html 里的軟硬件配置即可。編譯環(huán)境的初始化可參考 http://source.android.com/source/initializing.html 。

安裝 OpenJDK 8:

sudo apt-get install openjdk-8-jdk

提示:安裝 openjdk-8-jdk,會更改 JDK 的默認鏈接,這時可用:

$ sudo update-alternatives --config java $ sudo update-alternatives --config javac

來切換 JDK 版本。SDK 在找不到操作系統(tǒng)默認 JDK 的時候會使用內(nèi)部設(shè)定的 JDK 路徑,因此,為了讓同一臺機器可以編譯 Android 5.1 及之前的版本,去掉鏈接更方便:

$ sudo /var/lib/dpkg/info/openjdk-8-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

下載 Android 8.1 SDK

Android SDK 源碼包比較大,可以通過如下方式獲取Android8.1源碼包:

[下載鏈接]

下載完成后先驗證一下 MD5 碼:

$ md5sum /path/to/Firefly-RK3399_Android8.1_git_SDK_20180901.7z.001 $ md5sum /path/to/Firefly-RK3399_Android8.1_git_SDK_20180901.7z.002 8efed8db2687a395df0c0d2791202cc0 Firefly-RK3399_Android8.1_git_SDK_20180901.7z.001 05b5db991bbb9b763d330fa476f2ed76 Firefly-RK3399_Android8.1_git_SDK_20180901.7z.002

確認無誤后,就可以解壓:

cd ~/proj/ 7z x ./Firefly-RK3399_Android8.1_git_SDK_20180901.7z.001 -oFirefly-rk3399 cd ./Firefly-rk3399 git reset --hard

注意:解壓后務(wù)必要先更新下遠程倉庫。 以下為從 gitlab 處更新的方法:

git remote add gitlab https://gitlab.com/TeeFirefly/firenow-oreo-rk3399.git git pull gitlab firefly-rk3399:firefly-rk3399

也可以到 [https://gitlab.com/TeeFirefly/firenow-oreo-rk3399#] 在線瀏覽源碼。

AIO-3399J產(chǎn)品編譯方法

HDMI顯示編譯

./FFTools/make.sh -d rk3399-firefly-aio -j8 -l rk3399_firefly_aio_mid-userdebug ./FFTools/mkupdate/mkupdate.sh -l rk3399_firefly_aio_mid-userdebug

HDMI+lvds編譯

雙LVDS

./FFTools/make.sh -d rk3399-firefly-aio-lvds -j8 -l rk3399_firefly_aio_lvds_mid-userdebug ./FFTools/mkupdate/mkupdate.sh -l rk3399_firefly_aio_lvds_mid-userdebug

單LVDS

./FFTools/make.sh -d rk3399-firefly-aio-lvds-HSX101H40C -j8 -l rk3399_firefly_aio_lvds_mid-userdebug ./FFTools/mkupdate/mkupdate.sh -l rk3399_firefly_aio_lvds_mid-userdebug

手動編譯AIO-3399J

編譯前執(zhí)行如下命令配置環(huán)境變量:

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar

編譯kernel:

cd ~/proj/firefly-rk3399/kernel/ make ARCH=arm64 firefly_defconfig make -j8 ARCH=arm64 rk3399-firefly-aio.img

編譯uboot:

cd ~/proj/firefly-rk3399/u-boot/ make rk3399_defconfig make ARCHV=aarch64 -j8

編譯android:

cd ~/proj/firefly-rk3399/ source build/envsetup.sh lunch rk3399_firefly_aio_mid-userdebug make -j8 ./mkimage.sh

打包成統(tǒng)一固件 update.img

編譯完可以用Firefly官方的腳本打包成統(tǒng)一固件,執(zhí)行如下命令:

./FFTools/mkupdate/mkupdate.sh update

打包完成后將在rockdev/Image-rk3399_firefly_aio_mid/下生成統(tǒng)一固件:update.img

在 Windows 下打包統(tǒng)一固件 update.img 也很簡單,將編譯生成的文件拷貝到 AndroidTool 的 rockdev\Image 目錄中,然后運行 rockdev 目錄下的 mkupdate.bat 批處理文件即可創(chuàng)建 update.img 并存放到 rockdev\Image 目錄里。

燒寫分區(qū)映像

編譯的時候執(zhí)行 ./mkimage.sh 會重新打包 boot.img 和 system.img, 并將其它相關(guān)的映像文件拷貝到目錄 rockdev/Image-rk3399_firefly_aio_mid/ 中。以下列出一般固件用到的映像文件:

boot.img :Android 的初始文件映像,負責初始化并加載 system 分區(qū)。

kernel.img :內(nèi)核映像。

misc.img :misc 分區(qū)映像,負責啟動模式切換和急救模式的參數(shù)傳遞。

parameter.txt :emmc的分區(qū)信息

recovery.img :急救模式映像。

resource.img :資源映像,內(nèi)含開機圖片和內(nèi)核的設(shè)備樹信息。

system.img :Android 的 system 分區(qū)映像,ext4 文件系統(tǒng)格式。

trust.img :休眠喚醒相關(guān)的文件

rk3399_loader_v1.12.112.bin :Loader文件

uboot.img :uboot文件

oem.img :預置媒體資源及數(shù)據(jù)包

vendor.img :產(chǎn)品標識和驅(qū)動

請參照 如何升級固件 一文來燒寫分區(qū)映像文件。

如果使用的是 Windows 系統(tǒng),將上述映像文件拷貝到 AndroidTool (Windows 下的固件升級工具)的 rockdev\Image 目錄中,之后參照升級文檔燒寫分區(qū)映像即可,這樣的好處是使用默認配置即可,不用修改文件的路徑。

update.img 方便固件的發(fā)布,供終端用戶升級系統(tǒng)使用。一般開發(fā)時使用分區(qū)映像比較方便。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式主板
    +關(guān)注

    關(guān)注

    7

    文章

    6083

    瀏覽量

    35093
  • 安卓
    +關(guān)注

    關(guān)注

    5

    文章

    2113

    瀏覽量

    56884
  • Firefly
    +關(guān)注

    關(guān)注

    2

    文章

    538

    瀏覽量

    6946
收藏 人收藏

    評論

    相關(guān)推薦

    Firefly-RK3399 Android8.1固件,可調(diào)用神經(jīng)網(wǎng)絡(luò)API進行硬件加速

    NNAPI神經(jīng)網(wǎng)絡(luò)硬件加速方案將支持基于RK3399平臺的Firefly主板,包括AIO-3399J、AIO-3399C主板。后續(xù)將更新相關(guān)主板的固件,敬請關(guān)注~~下載Firefly
    發(fā)表于 07-31 17:42

    Android固件編譯-迅為3399開發(fā)板Android8系統(tǒng)編譯

    首先從光盤下載迅為提供的 android 8.1 源碼,在光盤“iTOP-3399 光盤資料\20201112\04 源碼_Android8.1 文件系統(tǒng)”目錄下,下載后得到的源碼文件
    發(fā)表于 01-06 11:54

    RK3399 Android8.1系統(tǒng)的DDR阻抗匹配出現(xiàn)問題怎么辦呢

    RK3399 Android8.1系統(tǒng)的DDR阻抗匹配出現(xiàn)問題怎么辦呢?怎樣去解決RK3399 Android8.1系統(tǒng)的DDR存在兼容性問題呢?
    發(fā)表于 03-07 06:30

    RK3399開發(fā)板Android8.1系統(tǒng)具有哪些特性呢

    RK3399開發(fā)板Android8.1系統(tǒng)具有哪些特性呢?RK3399開發(fā)板Android8.1系統(tǒng)有哪些應(yīng)用?
    發(fā)表于 03-07 07:03

    RK3399 Android8.1調(diào)試記錄之DDR問題分析

    1、RK3399 Android8.1調(diào)試記錄之DDR問題分析  Platform: RK3399  OS: Android 8.1  DD
    發(fā)表于 09-06 17:38

    fireflyAIO-3399J主板簡介

    AIO-3399J 的標準套裝包含以下配件
    的頭像 發(fā)表于 11-05 15:52 ?1481次閱讀
    <b class='flag-5'>fireflyAIO-3399J</b>主板<b class='flag-5'>簡介</b>

    fireflyAIO-3399C主板編譯 Android8.1 固件簡介

    編譯 Android8.1 固件 準備工作 編譯 Android 對機器的配置要求較高
    的頭像 發(fā)表于 12-13 10:31 ?1116次閱讀

    fireflyAIO-3399J主板介紹

    AIO-3399J默認出廠固件是支持LVDS+HDMI 1080P的雙屏顯示,HDMI分辨率最高只能到1080P。
    的頭像 發(fā)表于 12-24 10:03 ?1609次閱讀
    <b class='flag-5'>fireflyAIO-3399J</b>主板介紹

    fireflyAIO-3399J定制Android 固件介紹

    定制 Android 固件,有兩種方法: 改源碼,然后編譯生成固件。 在現(xiàn)有固件的基礎(chǔ)上進行裁剪。
    的頭像 發(fā)表于 12-24 10:50 ?1098次閱讀

    fireflyAIO-3399J編譯 Android 固件簡介

    編譯 Android 固件 準備工作 編譯 Android 對機器的配置要求較高: 64 位 CPU 16GB 物理
    的頭像 發(fā)表于 12-24 11:03 ?1280次閱讀

    fireflyAIO-3399J編譯Buildroot固件簡介

    編譯 Buildroot 固件 本章介紹 Buildroot 固件編譯使用。 準備工作 下載源碼 下載 Linux-SDK: 方法一 mkdir linux-sdk cd linux
    的頭像 發(fā)表于 12-24 11:11 ?2215次閱讀

    Core 3399Pro JD4工具upgrade tool for Android8.1文件包

    電子發(fā)燒友網(wǎng)站提供《Core 3399Pro JD4工具upgrade tool for Android8.1文件包.zip》資料免費下載
    發(fā)表于 09-02 14:48 ?0次下載
    Core <b class='flag-5'>3399</b>Pro JD4工具upgrade tool for <b class='flag-5'>Android8.1</b>文件包

    Core 3399 JD4工具upgrade tool for Android8.1文件包

    電子發(fā)燒友網(wǎng)站提供《Core 3399 JD4工具upgrade tool for Android8.1文件包.zip》資料免費下載
    發(fā)表于 09-02 10:29 ?2次下載
    Core <b class='flag-5'>3399</b> JD4工具upgrade tool for <b class='flag-5'>Android8.1</b>文件包

    Core 3328 JD4固件Android8.1系統(tǒng)

    電子發(fā)燒友網(wǎng)站提供《Core 3328 JD4固件Android8.1系統(tǒng).txt》資料免費下載
    發(fā)表于 09-13 10:32 ?13次下載
    Core 3328 JD4<b class='flag-5'>固件</b><b class='flag-5'>Android8.1</b>系統(tǒng)

    Core 3399J工具upgrade tool for Android8.1

    電子發(fā)燒友網(wǎng)站提供《Core 3399J工具upgrade tool for Android8.1.zip》資料免費下載
    發(fā)表于 09-14 10:00 ?2次下載
    Core <b class='flag-5'>3399J</b>工具upgrade tool for <b class='flag-5'>Android8.1</b>