立萨RK3288安卓5.1源码编译

立萨RK3288安卓5.1源码编译

编译环境的搭建

  1. 1,VMware12下载链接,选择默认路径,一直点next 。
    链接:https://pan.baidu.com/s/1ZMCOtCuYSpV3-VZmVFcJAg
    提取码:oxos VMware 12专业版永久许可证密钥:
    5A02H-AU243-TZJ49-GTC7K-3C61N
    VF5XA-FNDDJ-085GZ-4NXZ9-N20E6 UC5MR-8NE16-H81WY-R7QGV-QG2D8 ZG1WH-ATY96-H80QP-X7PEX-Y30V4 AA3E0-0VDE1-0893Z-KGZ59-QGAVF
    2,ubuntu12.04-64位镜像,
    链接:https://pan.baidu.com/s/1K8-lv3AksHneWftpq_c85A
    提取码:tegd

  2. 3.编译
    3.1 编译 Android 对机器的配置要求较高:
    64 位 CPU
    16GB 物理内存+交换内存
    30GB 空闲的磁盘空间用于构建,源码树另外占用大约 25GB
    如果配置不够的话会导致编译不成功,这里解决的方法有两种
    第一种:增加物理内存
    第二种: 扩充swap分区大小
    3.2 安装 OpenJDK 7
    sudo apt-get install openjdk-7-jdk

    3.3 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

    3.4 下载 Android SDK
    Android SDK 源码包比较大(约6.3G),可以通过如下方式获取源码包:
    链接:https://pan.baidu.com/s/16wxrqAJ2JLi7cM6OJrK2PQ
    提取码:au0v
    下载完成后先验证一下 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 xzf /path/to/firefly-rk3288_android5.1_git_20180126.tar.gz
    git reset --hard
    以后就可以直接从 bitbucket 处更新
    git pull bitbucket Firefly-RK3288:Firefly-RK3288
    也可以到https://bitbucket.org/T-Firefly/firenow-lollipop/commits/branch/Firefly-RK3288在线浏览源码

  3. 4 编译方法
    4.1官方脚本编译 firefly-rk3288 编译

    1. ./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

4.2手动编译
手动编译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_defconfig
make -j8 firefly-rk3288.img
使用Firefly-RK3288-reload 编译内核:
cd ~/proj/firefly-rk3288-reload-lollipop/kernel
make firefly_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
5. 构建变体说明

  1. 5.0默认的目标构建变体(TARGET_BUILD_VARIANT)为 userdebug。常用变体有三种,分别是用户(user)、用户调试(userdebug)和工程模式(eng),其区别如下:

    1. user 仅安装标签为 user 的模块 设定属性 ro.secure=1,打开安全检查功能 设定属性
      ro.debuggable=0,关闭应用调试功能 默认关闭 adb 功能 打开 Proguard 混淆器 打开
      DEXPREOPT 预先编译优化
  2. userdebug 安装标签为 user、debug 的模块 设定属性 ro.secure=1,打开安全检查功能 设定属性
    ro.debuggable=1,启用应用调试功能 默认打开 adb 功能 打开 Proguard 混淆器 打开
    DEXPREOPT 预先编译优化

  3. eng 安装标签为 user、debug、eng 的模块 设定属性 ro.secure=0,关闭安全检查功能 设定属性
    ro.debuggable=1,启用应用调试功能 设定属性 ro.kernel.android.checkjni=1,启用 JNI
    调用检查

  4. 默认打开 adb 功能 关闭 Proguard 混淆器 关闭 DEXPREOPT 预先编译优化 如果目标构建变体为 user,则 adb 无法获取 root 权限。 要选择目标构建变体,可以在 make 命令行加入参数,例如:

  5. make -j8 PRODUCT-rk3288_box-user
    make -j8 PRODUCT-rk3288_box-userdebug
    make -j8 PRODUCT-rk3288_box-eng
    

    烧写分区映像
    上一步骤的 ./mkimage.sh 会重新打包 boot.img 和 system.img, 并将其它相关的映像文件拷贝到目录 rockdev/Image-rk3288_box/ 中。

  6. 6 以下列出一般固件用到的映像文件: boot.img :Android 的初始文件映像,负责初始化并加载 system 分区。 kernel.img :内核映像。 misc.img :misc 分区映像,负责启动模式切换和急救模式的参数传递。
    recovery.img :急救模式映像。 resource.img :资源映像,内含开机图片和内核的设备树信息。
    system.img :Android 的 system 分区映像,ext4 文件系统格式。 请参照 如何Android 升级固件
    一文来烧写分区映像文件。 如果使用的是 Windows 系统,将上述映像文件拷贝到 AndroidTool (Windows
    下的固件升级工具)的 rockdev\Image
    目录中,之后参照升级文档烧写分区映像即可,这样的好处是使用默认配置即可,不用修改文件的路径。

  7. 打包成统一固件 编译完可以使用Firefly的脚本打包成统一固件,执行如下命令:
    ./FFTools/mkupdate/mkupdate.sh -l rk3288_box-userdebug
    打包完成后固件会生成在rockdev/Image-rk3288_box/ 目录 在 Windows 下打包统一固件
    update.img 很简单,按上一步骤将文件拷贝到 AndroidTool 的 rockdev\Image 目录中,然后运行
    rockdev 目录下的 mkupdate.bat 批处理文件即可创建 update.img 并存放到 rockdev\Image
    目录里。 update.img 方便固件的发布,供终端用户升级系统使用。一般开发时使用分区映像比较方便。

你可能感兴趣的:(RK3288)