1.硬件要求
编译主机要求,注意尽量不要使用虚拟机
CPU:Intel(R) Core(TM) i7-4790 CPU @ 3.60 GHz
内存:8G
硬盘:500G SSD
Ubuntu 版本:Ubuntu 64-bit 14.04.5 LTS
这是最低版本要求,实际性能越高越好
2.开发环境配置
1. 使用 apt-get 安装编译依赖库:
sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc
2. 使用 apt-get 安装 OpenJDK 8:
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-8-jdk
若同时安装了 OpenJDK 7 和 OpenJDK 8,使用以下命令选择 OpenJDK 8:
sudo update-alternatives --config java
安装相关软件包
apt-get update
apt-get upgrade
apt-get install -y git vim ssh sudo
//开启i386支持
dpkg --add-architecture i386
apt-get update
sudo vim /etc/apt/sources.list //在行尾添加如下两行的内容
deb http://archive.ubuntu.com/ubuntu/ trusty main universe restricted multiverse
sudo apt-get update
apt-get -y install libesd0-dev
sudo apt-get install -y gnupg flex bison gperf build-essential zip curl zlib1g-dev zlib1g-dev:i386 libc6-dev lib32z1 x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev g++-multilib openjdk-8-jdk binutils-mingw-w64 tofrodos python-markdown libxml2-utils xsltproc genisoimage bc libxml-libxml-perl libssl-dev python-sqlite policycoreutils make libxml-simple-perl python2.7 libx11-dev:i386 libgl1-mesa-dev g++-multilib git libncurses5-dev:i386 tofrodos python-markdown libxml2-utils zlib1g-dev:i386 gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev libgl1-mesa-dev libxml2-utils unzip m4 lib32z-dev ccache dpkg-dev libsdl1.2-dev libesd0-dev libncurses5 libjpeg62 libjpeg62-dev python3-pip git-core gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libgl1-mesa-dri:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32z1 lib32ncurses5 x11proto-core-dev libx11-dev libreadline-gplv2-dev lib32z1-dev libgl1-mesa-dev g++-multilib openjdk-8-jdk binutils-mingw-w64 tofrodos python-markdown libxml2-utils xsltproc genisoimage python-imaging bc libxml-libxml-perl libssl-dev python-imaging python-sqlite policycoreutils openjdk-8-jdk make libxml-simple-perl cpio
sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
sudo apt-get -y install software-properties-common
sudo apt-get update
Android10.0需要安装openjdk1.8,依次执行:
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-8-jdk
java -version
3.源码编译
准备 Android 代码,进入代码目录后执行以下命令整编 Android,命令中的 n 表示 CPU 线程数。
注意:
如果user和userdebug切换的时候,要把out文件夹直接删除
Userdebug 版本编译:
cp -rf vendor/sprd/release/IDH/uis8581e5h10_Natv-userdebug-native/out/ .
cp -rf vendor/sprd/release/IDH/uis8581e5h10_Natv-userdebug-native/bsp/ .
source build/envsetup.sh
lunch uis8581e5h10_Natv-userdebug-native
make –jn
User 版本编译:
cp -rf vendor/sprd/release/IDH/uis8581e5h10_Natv-user-native/out/ .
cp -rf vendor/sprd/release/IDH/uis8581e5h10_Natv-user-native/bsp/ .
source build/envsetup.sh
lunch uis8581e5h10_Natv-user-native
make –jn
编译完成后,生成的镜像文件位于代码目录
$AndroidCodeDir/out/target/product/uis8581e5h10
4.单独编译镜像
执行以下命令可以单独编译 Android 某一镜像,命令中的 n 表示 CPU 线程数。
先执行:
cp -rf vendor/sprd/release/IDH/uis8581e5h10_Natv-userdebug-native/out/ .
cp -rf vendor/sprd/release/IDH/uis8581e5h10_Natv-userdebug-native/bsp/ .
source build/envsetup.sh
lunch uis8581e5h10_Natv-userdebug-native
1. 编译 u-boot:
make bootloader –jn
编译完成后将在$AndroidCodeDir/out/target/product/uis8581e5h10目录下生成文件u-boot-sign.bin和fdl2-sign.bin。
2. 编译 fdl1 和 uboot-16k:
make chipram –jn
编译完成后将在$AndroidCodeDir/out/target/product/uis8581e5h10 目录下生成文件 fdl1-sign.bin 和 u-boot-spl-16k-sign.bin。
3. 编译 boot
make bootimage –jn
编译完成后将在$AndroidCodeDir/out/target/product/uis8581e5h10 目录下生成文件 boot.img。
4. 编译 dtbo
make dtboimage –jn
编译完成后将在$AndroidCodeDir/out/target/product/uis8581e5h10 目录下生成文件 dtbo.img。
5. 编译 userdata
make userdataimage –jn
编译完成后将在$AndroidCodeDir/out/target/product/uis8581e5h10 目录下生成文件 userdata.img。
6. 编译 super
make superimage –jn
编译完成后将在$AndroidCodeDir/out/target/product/uis8581e5h10 目录下生成文件 super.img。
5.无线投屏
安卓连接WIFI
获取手机的IP地址
adb tcpip 5555
adb connect 192.168.1.189:5555
scrcpy
取消连接
adb disconnect 192.168.1.189:5555