树莓派3 Android Pie 编译适配

  • 1准备工作
  • 2.下载源代码以及配置依赖项
    • 2.1 配置Git与Repo
    • 2.2 下载源代码
    • 2.3 配置依赖项
  • 3. 编译
    • 3.1 编译内核
    • 3.2 打补丁
    • 3.3 编译
  • 4 制作启动盘
    • 4.1 tf卡分区
    • 4.2 各分区格式化
    • 4.3 写入系统镜像
    • 4.4 写入boot
  • 5 开机上电
    • 5.1 安装adb工具
  • 完结

1准备工作

Raspberry 3(老版本),github上反馈,3B+版本会黑屏。
宿主机,ubuntu16.04LST
本文参考github大神peyo-hd的wiki,祭出链接 android-rpi,大家可以自行查阅。

2.下载源代码以及配置依赖项

2.1 配置Git与Repo

2.2 下载源代码

 $ repo init -u https://android.googlesource.com/platform/manifest -b android-9.0.0_r45$ git clone https://github.com/android-rpi/local_manifests .repo/local_manifests -b pie$ repo sync

由于不可描述的原因,repo sync的速度会特别缓慢。对于android原生代码ASOP的下载,可以通过更改中科大镜像源的方法提速。对于github中kernel/rpi下载速度缓慢甚至超时中断,需要更改ssh配置,甚至挂小飞机(亲测挂小飞机也没有改观)。百度有大佬用gitee作中继,但亲测未成功,具体需要自行摸索。

2.3 配置依赖项

参考TPrime.A在Ubuntu下配置的依赖项,并做了一点修改。

$ sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev
$ sudo apt-get install libx11-dev libreadline6-dev libgl1-mesa-dev g++-multilib
$ sudo apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev
$ sudo apt-get install dpkg-dev libsdl1.2-dev libesd0-dev
$ sudo apt-get install git-core gnupg flex bison gperf build-essential
$ sudo apt-get install zip curl zlib1g-dev gcc-multilib g++-multilib
$ sudo apt-get install libc6-dev
$ sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev
$ sudo apt-get install lib32z-dev ccache
$ sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4
$ sudo apt-get install python-mako

重点:JDK配置,由于JDK闭源,下载需要官网注册,十分繁琐。google官网给出的教程推荐使用openJDK,使用apt 安装即可,安装完成后配置环境变量。

3. 编译

3.1 编译内核

安装交叉编译工具,否则报找不到arm-linux-gnueabihf-gcc错。

$ sudo apt-get install gcc-arm-linux-gnueabihf

拼接config,此步骤依赖bision。若执行不成功,apt安装bision即可。

 $ cd kernel/rpi$ ARCH=arm scripts/kconfig/merge_config.sh arch/arm/configs/bcm2709_defconfig kernel/configs/android-base.config kernel/configs/android-recommended.config

编译zImage

 $ ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make zImage

出现以下结果,编译成功。

编译设备树

 $ ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make dtbs

3.2 打补丁

补丁链接:https://github.com/android-rpi/device_brcm_rpi3/wiki/Pie-:-patch-framework-source
然而链接所示的patch不是标准格式,并且行号与现在的代码已经不对应,保存patch文件用patch命令运行报错,说我patch输入里面只有辣鸡…人工大法好,直接cd到源文件改,保存。

3.3 编译

终于到了激动人心的编译环节了。
首先加载编译工具,配置编译选项。此处依赖JDK,若JDK版本未满足要求,会报错,按要求更改JDK版本即可。

 $ source build/envsetup.sh$ lunch rpi3-eng


编译系统镜像,此处可以根据个人电脑配置,选择合适的编译线程。默认-j4,适用于双核四线程。若八核十六线程的专业编译服务器,可选择-j16。

make ramdisk systemimage

等待编译中。。。
+++++++++++++++++更新分界线20191104++++++
编译一定要记得给磁盘预留足够空间,建议100GB,编译完成后会在out文件夹下看到.img的镜像文件。编译成功。

4 制作启动盘

4.1 tf卡分区

使用fdisk分区工具,首先插入tf卡,运行查询命令

sudo fdisk -l

查询到tf卡设备号:/dev/sdd

运行fdisk命令,格式化各分区。

  1. 首先d命令删除所有分区,n命令新建分区256M,t命令更改分区类型 W95 FAT32(LBA) ,a设置成bootable。


  2. n命令新建第二个分区
  3. n命令新建第三个分区,w命令保存

4.2 各分区格式化

此处建议把sd卡弹出,再重新插入一次。否侧格式化容易不成功。

sudo mkfs.vfat -n boot /dev/sdd1
sudo mkfs.ext4 -L userdata /dev/sdd3

4.3 写入系统镜像

这里注意要改自己的第二个分区名。(用作/system)

  $ cd out/target/product/rpi3$ sudo dd if=system.img of=/dev/sdd2 bs=1M

4.4 写入boot

挂载boot分区:

sudo mkdir /media/test
sudo mount -t fat /dev/sdd1 /media/test

复制boot分区文件

  sudo cp device/brcm/rpi3/boot/*  /media/test/sudo cp kernel/rpi/arch/arm/boot/zImage  /media/test/sudo cp kernel/rpi/arch/arm/boot/dts/bcm2710-rpi-3-b.dtb  /media/test/sudo mkdir /media/test/overlayssudo cp kernel/rpi/arch/arm/boot/dts/overlays/vc4-kms-v3d.dtbo  /media/test/overlays/vc4-kms-v3d.dtbosudo cp out/target/product/rpi3/ramdisk.img /media/test/

5 开机上电

见证奇迹的时刻

屏幕logo出现,然鹅…

折腾了这么几天,你就给我看这个????应用只有system tracing和settings???编译路径下安装的那么多应用嘞???鼠标箭头虚影,键盘无响应

5.1 安装adb工具

自行安装adb工具,完成后,发现USB方式并不能连接上。那就网络连接也很香

adb connect xxx.xxx.xxx.xxx(ip address)
adb shell


查看了一下log,并没有什么组件启动失败,那可能这个系统就是啥都没有,面向命令行吧。

完结

树莓派3 Android Pie 编译适配相关推荐

  1. Android Studio 编译适配-NDK issue 解决

    旧项目Android Studio 编译适配-NDK issue 问题点记录 旧的项目 在Android Studio新版本编译中遇到以下问题. 流水式总结记录一下 NDK getPlatformVe ...

  2. 风火轮 树莓派3 android系统编译

    目标源码:Android4.2源码 编译环境: 1.ubuntu 16.04 内存1G 磁盘40G 出现问题:编译Android时内存不足 2.ubuntu 17.04,12G内存,128G固态硬盘+ ...

  3. 树莓派吃派(android Pie)指南

    树莓派吃派(android Pie)指南 前言 一.效果预览 二.配件清单 三.安装步骤 1.下载系统镜像 2.系统烧录 2.1 使用Win32 Disk Image烧录 2.2 使用Balena E ...

  4. 2021-08-25 Android studio 编译提示Version 28 (intended for Android Pie and below) is the last version of

    一.如下提示 Version 28 (intended for Android Pie and below) is the last version of the legacy support lib ...

  5. 安卓 自定义吐司样式 ,适配Android Pie

    大家都知道, 在安卓中, 有一个提醒用户的弹幕 , 就是吐司, 用来提示用户一些信息, 但是安卓中默认的吐司 样式太暗淡了, 好多小伙伴不喜欢,今天, 就带着大家一起打造个性化的吐司弹幕, Andro ...

  6. ffplay android 编译,ffmpeg android 平台编译

    ? ? ?ffmpeg 在移动平台上应用十分广泛,其在音视频编解码,封装多媒体文件格式,rtsp http rtmp协议相关的音视频推流拉流具有强大的可用性.这里将自己平时为Android平台编译ff ...

  7. 现代化 Android Pie: 安全与隐私

    作者: Vikrant Nanda 和 René Mayrhofer, Android 安全与隐私团队 没有什么时候比节假日更适合聊 Android 甜点系统了,毕竟,有谁不喜欢在放假的时候来上一两口 ...

  8. 安卓学习专栏——安卓报错Version 28 (intended for Android Pie and below) is the last version of the legacy suppor

    步骤 系列文章 前言 1.报错效果 2.修改方法 总结 系列文章 提示:转到安卓学习专栏,观看更多内容! 点我直达–>安卓学习专栏 前言 'com.android.support:appcomp ...

  9. 【AI】Android Pie中引入的AI功能盘点

    前言 "无AI,不未来",绝对不是一句豪情壮语,AI早已进入到了我们生活当中.去年Google发布的Android Pie系统在AI功能方面就做了重大革新,本文就对Google在新 ...

最新文章

  1. Cisco路由器的口令恢復
  2. android网络获取经纬,Android中透过GPS或NetWork获取当前位置的经纬度
  3. 5G URLLC — Overview
  4. STL_set集合容器+map映照容器
  5. JMeter环境搭建
  6. 程序员的年龄越大编程能力越弱???原来我们都理解错了
  7. java redis set list_RedisTemplate的各种操作(set、hash、list、string)_lichuangcsdn的博客-CSDN博客...
  8. 吴恩达深度学习——深度学习概论
  9. java.io.serializable_java.io.Serializable浅析 | 学步园
  10. android 图片方向,Android图片处理:识别图像方向并显示实例教程
  11. 大气压力换算公式_压力公式换算
  12. 联想x100e linux,联想小红ThinkPad X100e笔记本拆解!
  13. 三进制计算机基本原理,三进制(三进制计算机)
  14. php更换banner图片,jQuery简单实现banner图片切换
  15. xss.haozi.me练习通关
  16. matlab曲线 投影,MATLAB地图工具箱学习心得(一)关于分带投影的拼接
  17. 无线WiFi怎样实现实名认证?
  18. [055] SSL 3.0曝出Poodle漏洞的解决方案-----开发者篇
  19. SPS PDSCH的HARQ反馈
  20. Access Token机制简单介绍

热门文章

  1. Echarts饼图字体颜色
  2. 【智能制造】智能制造与智能工厂的主要特征
  3. HP-EVA4400故障导致的oracle数据库丢失的恢复过程
  4. 大律法(OTSU法)
  5. 最全的Office 2003图标集合
  6. 新C++(9):谈谈,翻转那些事儿
  7. 【QGIS入门实战精品教程】10.1:QGIS基于DEM数据的地形分析案例教程
  8. HTML学生个人网站作业设计——HTML+CSS+JavaScript优分期大学生分期购物商城(7页)
  9. 【尚医通】手机登录功能
  10. java八音盒_基于汇编语言的音乐盒设计与实现