![android 7.1 自定义ROM-LMLPHP android 7.1 自定义ROM-LMLPHP](https://c1.lmlphp.com/user/master/2020/08/28/son_1/e25d4fb2f8de1caf41a735ec53088516.png)
点击(此处)折叠或打开
- 参考
- http://wiki.friendlyarm.com/wiki/index.php/NanoPC-T2/zh#.E5.A6.82.E4.BD.95.E7.BC.96.E8.AF.91.E7.B3.BB.E7.BB.9F
- 自定义后需要修改的内容包括
- 1. 设定网卡Mac地址.
- 2. 修改UBOOT/Kernel的开机Logo和android开机动画
- 3. 设定android ADB TCP机制
- 4. Android 设定编译 e2fsck这个命令, 否则会造成android 界面卡顿很长时间.
- https://blog.csdn.net/MENGHUANBEIKE/article/details/78411765?utm_source=blogxgwz0
- ===========================================================
- ===========================================================
- ===========================================================
- 1. 笔记本 Virutual Box 安装 Ubuntu 16.04. (硬盘分了80G, 内存5G)
- 下载编译器
- git clone https://github.com/friendlyarm/prebuilts.git -b master --depth 1
- cd prebuilts/gcc-x64
- cat toolchain-4.9.3-armhf.tar.gz* | sudo tar xz -C /
- #修改 .bashrc
- export PATH=/opt/FriendlyARM/toolchain/4.9.3/bin:$PATH
- export GCC_COLORS=auto
- #确认环境是否正确
- #arm-linux-gcc -v
- Using built-in specs.
- COLLECT_GCC=arm-linux-gcc
- COLLECT_LTO_WRAPPER=/opt/FriendlyARM/toolchain/4.9.3/libexec/gcc/arm-cortexa9-linux-gnueabihf/4.9.3/lto-wrapper
- Target: arm-cortexa9-linux-gnueabihf
- Configured with: /work/toolchain/build/src/gcc-4.9.3/configure --build=x86_64-build_pc-linux-gnu
- --host=x86_64-build_pc-linux-gnu --target=arm-cortexa9-linux-gnueabihf --prefix=/opt/FriendlyARM/toolchain/4.9.3
- --with-sysroot=/opt/FriendlyARM/toolchain/4.9.3/arm-cortexa9-linux-gnueabihf/sys-root --enable-languages=c,c++
- --with-arch=armv7-a --with-tune=cortex-a9 --with-fpu=vfpv3 --with-float=hard
- ...
- Thread model: posix
- gcc version 4.9.3 (ctng-1.21.0-229g-FA)
- UBOOT
- 编译 Android7/FriendlyCore/Lubuntu/EFlasher的U-Boot源代码 -下载U-Boot v2016.01源代码并编译,注意分支是nanopi2-v2016.01
- git clone https://github.com/friendlyarm/u-boot.git
- cd u-boot
- git checkout nanopi2-v2016.01
- make s5p4418_nanopi2_defconfig
- make CROSS_COMPILE=arm-linux-
- 编译成功结束后您将获得bootloader.img,可以通过fastboot、sd-fuse_s5p4418和eflasher来更新板上的U-Boot v2016.01。
- For Android7: 可复制bootloader.img到Android7源代码目录 device/friendlyelec/nanopi2/boot,然后重新编译Android7。
- UBOOT阶段, 加载的LOGO是在 mmc上的 logo.bmp.
- 使用串口:
- #printenv
- ethaddr=d8:80:39:5a:d6:83
- splashfile=logo.bmp
- splashimage=0x78000000
- splashpos=m,m
- 如果要在 android内修改的话
- adb root; adb shell mkdir /storage/sd1/; adb shell mount -t ext4 /dev/block/mmcblk0p1 /storage/sd1/
- 修改或者adb push覆盖 logo.bmp 即可.
- 下载Kernel
- git clone https://github.com/friendlyarm/linux.git -b nanopi2-v4.4.y --depth 1
- cd linux
- touch .scmversion
- make ARCH=arm nanopi2_nougat_defconfig
- make ARCH=arm
- 编译成功结束后,新生成的内核是 arch/arm/boot/zImage,目录arch/arm/boot/dts/下还包括新的DTB文件(s5p4418-nanopi2-rev*.dtb)。 如果只想调试内核,可通过 adb 来快速更新。
- adb root; adb shell mkdir /storage/sdcard1/; adb shell mount -t ext4 /dev/block/mmcblk0p1 /storage/sdcard1/;
- adb push arch/arm/boot/zImage arch/arm/boot/dts/s5p4418-nanopi2-rev*.dtb /storage/sdcard1/
- 内核开发/调试完成后,如果想生成用于烧写的boot.img,可复制内核zImage和DTB文件到Android7源代码目录 device/friendlyelec/nanopi2/boot,然后重新编译Android7。
- 下载Android
- 方式一
- git clone https://gitlab.com/friendlyelec/s5pxx18-android-7.git -b master
- 方式二
- 网盘http://download.friendlyarm.com/NanoPC-T2
- 下载 sources/s5pxx18-android-7.git-YYYYMMDD.tar
- tar xvf /path/to/netdisk/sources/s5pxx18-android-7.git-YYYYMMDD.tar
- cd s5pxx18-android-7
- ./sync.sh #执行一下 sync.sh 脚本,会从gitlab上拉取最新的代码
- 开始编译
- cd s5pxx18-android-7
- source build/envsetup.sh
- lunch aosp_nanopi2-userdebug
- make -j8
- 编译成功完成后,目录 out/target/product/nanopi2/ 下包含可用于烧写的image文件。
- filename partition Description
- bl1-mmcboot.bin raw boot firmware
- loader-mmc.img raw boot firmware
- bl_mon.img raw boot firmware
- bootloader.img raw uboot-v2016.01
- env.conf - uboot环境变量,包含Android内核命令行参数
- boot.img boot kernel zImage, DTBs; logo; Android ramdisk
- cache.img cache -
- userdata.img userdata -
- system.img system -
- partmap.txt - 分区描述文件
- 自定义内容:
- /android/s5pxx18-android-7/device/friendlyelec/nanopi2
- 1. fstab.nanopi2 / fstab.nanopi2.emmc.
- a) /system的加载 rw.
- 2. 替换 boot/logo.bmp 为 uboot/kernel期间的LOGO.
- 3. 修改 device.mk
- a) 添加 目录 bootanimation 并且添加 bootanimation.zip(一定需要使用存储的方式打包), 权限 chmod 0666
- # Boot animation
- PRODUCT_COPY_FILES += \ device/friendlyelec/nanopi2/bootanimation/bootanimation.zip:system/media/bootanimation.zip
- b) 添加目录 apps 并且添加 BusyBox_Free-63.apk
- # Vendor App
- PRODUCT_COPY_FILES += \
- device/friendlyelec/nanopi2/apps/BusyBox_Free-63.apk:system/app/BusyBox_Free-63.apk
- c) 修改 build/core/Makefile, 屏蔽一下行
- #define check-product-copy-files
- #$(if $(filter %.apk, $(1)),$(error \
- # Prebuilt apk found in PRODUCT_COPY_FILES: $(1), use BUILD_PREBUILT #
- #endef
- 4. system.prop 增加 service.adb.tcp.port = 5555
- 编译后体现在 system/build.prop中.
- 5. MAC绑定IP d8:80:39:5a:d6:83
- 烧写固件
- 上电时在串口终端敲回车进入uboot命令行模式,然后输入以下命令:
- fastboot 0
- 然后对于S5P4418, 通过OTG连接PC端可使用以下命令来更新emmc:
- fastboot flash partmap partmap.txt
- fastboot flash 2ndboot bl1-mmcboot.bin
- fastboot flash fip-loader loader-mmc.img
- fastboot flash fip-secure bl_mon.img
- fastboot flash fip-nonsecure bootloader.img
- fastboot flash boot boot.img
- fastboot flash system system.img ## 这个很慢, 约 150秒
- fastboot flash cache cache.img
- fastboot flash userdata userdata.img
然后PC上使用
adb tcpip 5555 (端口号)
adb connect 192.168.43.199
adb root
adb shell