Ubuntu20.04 编译Android 10源码 并烧录源码到hikey960中的避坑指南
Ubuntu 20.04 编译 Android 10并在hikey960开发板上运行Android
本次避坑指南中会详细列出整个下载源码和烧录源码过程,最终运行结果使用的软件为vysor,下载地址如下:github.com/koush/vysor….
下载Android源码树
下载android源代码可以选择下载最新版本,也可以下载指定分支。如果能使用科学上网建议在google的源码树进行下载,如果不行推荐使用清华镜像:mirrors.tuna.tsinghua.edu.cn/help/AOSP/,使用镜像教程链接已经详细给出,这里就不一一赘述啦
- 下载repo工具:
// 下载repo工具
mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
- 安装Repo后,设置自己的客户端用来访问代码库: 这里需要自己注册一个google帐号
(1)创建一个文件夹用来存放源码
mkdir WORKING_DIRECTORY
cd WORKING_DIRECTORY
(2)使用google帐号和真实姓名去配置Git
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
(3)运行repo init 获取最新版本代码或者指定分支
repo init -u https://android.googlesource.com/platform/manifest // 获取最新源码
repo init -u https://android.googlesource.com/platform/manifest -b android-8.0.0_r8 // 指定分支
- 下载Android源码树
repo sync
编译Android源码
source build/envsetup.sh
lunch hikey960-userdebug
make -j32
Android Studio导入Android系统源码
- 编译成功后执行如下命令进行编译源码idegen模块及生成AS配置建(*ipr):
mmm development/tools/idegen/
development/tools/idegen/idegen.sh
完成后就会在根目录下看到三个新文件:
android.iml(用于记录项目所包含的module,依赖关系,sdk版本)
android.ipr(工程的具体配置,代码以及依赖的lib信息) android.iws(个人的配置信息)
- 将android.iml android.ipr权限改成777
sudo chmod 777 android.iml
sudo chmod 777 android.ipr
- 打开Android studio,导入已有项目,选择根目录下的.ipr文件
源码导入Android Studio过慢
sudo vim /etc/sysctl.conf
进入文件后按i进入编辑模式
在文件最后加上
fs.inotify.max_user_watches = 524288
输入完这段话以后按Esc进入normal模式,再按:然后输入wq(表示写入保存)
生效文件
sudo sysctl -p –system // 生效文件
在hikey上安装初始镜像
- 打开开关 1 和 3,从而选择 fastboot 模式
- 为开发板接通电源,数据线连在电脑上
- 在命令行上输fastboot命令看是否已经连上板子
fastboot devices
- 进入源码根目录,将初始映像刷到设备上
cd device/linaro/hikey/installer/hikey960
./flash-all.sh
- 关闭开关 3,然后重启开发板。
将映像刷到hikey960板子上
- 打开开关 1 和 3,从而进入 fastboot 模式。
- 通过运行以下命令将映像刷到设备上
fastboot flash boot out/target/product/hikey960/boot.img
fastboot flash dts out/target/product/hikey960/dt.img
fastboot flash system out/target/product/hikey960/system.img
fastboot flash cache out/target/product/hikey960/cache.img
fastboot flash userdata out/target/product/hikey960/userdata.img
- 关闭开关3,然后重启hikey960开发板
使用vysor看Android启动
打开vysor,在命令行上输入如下命令:
sudo apt install adb
adb kill-server
adb start-server
如果看到no permissions (user in plugdev group; are your udev rules wrong?); see [developer.android.com/tools/devic…]
需要配置权限
- 首先需要看一下板子链接的usb的id
lsusb
输出信息为
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001
Device 004: ID 1058:2606 Western Digital Technologies, Inc. My
Passport 2606 Bus 001 Device 003: ID 413c:301a Dell Computer Corp.
Dell MS116 USB Optical Mouse Bus 001 Device 002: ID 413c:2113 Dell
Computer Corp. Dell KB216 Wired Keyboard Bus 001 Device 007: ID
18d1:4ee7 Google Inc. ADB Gadget Bus 001 Device 001: ID 1d6b:0002
Linux Foundation 2.0 root hub m0lly_dy@cs-tianyuren2-1:~$ sudo vim
/etc/udev/rules.d/90-android.rules
其中Device 007就是板子链接的usb
2. 创建设备文件名,文件名可以自己取
sudo vim /etc/udev/rules.d/hikey960-android.rules
文件内容如下
SUBSYSTEM==“usb”,ATTRS{idVendor}“18d1”,ATTRS{idProduct}"4ee7 ",MODE=“0666”,GROUP=“plugdev”,SYMLINK+=“android”,SYMLINK+=“android_adb”
需要替换: ATTRS{idVendor}“xxxx” ,ATTRS{idProduct}“xxxx”
4. 重新启动adb
sudo udevadm control --reload-rules
sudo service udev restart
sudo udevadm trigger
adb kill-server
adb start-server
- 确认设备是否成功
adb devices
最终效果图
参考链接
www.cnblogs.com/feiquan/p/1…
gityuan.com/2016/03/19/…
blog.csdn.net/qq_41192631…
www.swack.cn/wiki/001557…