Android源码编译环境的配置以及源码编译(find7)
来源:互联网 发布:数据库系统的三级模式 编辑:程序博客网 时间:2024/06/11 20:35
PS:首先,我们在准备编译环境之前,为了防止网络出错的问题(需要翻墙),请在终端下输入:sudo gedit /etc/hosts;打开hosts文件,然后添加:
192.30.252.129 github.com
74.125.31.82 www.googlesource.com
74.125.31.82 android.googlesource.com
203.208.46.172 cache.pack.google.com
59.24.3.173 cache.pack.google.com
也可以从https://laod.org/,下载最新的host文件替换ubuntu系统中的hosts;然后在终端中输入:sudo /etc/init.d/networkingrestart 重启网络即可;
准备编译环境:
1,安装64位的ubuntu系统,虚拟机内存分配为2g(看个人电脑配置,我这里配置为4g),硬盘至少100G空间(源码20G+,编译后整个目录约60~70G);
2, 更新系统至最新的版本,终端下输入:sudo apt-get update;sudo apt-get upgrate
3,安装一些编译使用的lib库、同步源码使用的工具:
a) 系统是32位和64位的都需要安装:bison build-essential curl flex git gnupg gperf libesd0-dev liblz4-tool libncurses5-dev libsdl1.2-devlibwxgtk2.8-devlibxml2 libxml2-utils lzop maven openjdk-7-jdk pngcrush schedtool squashfs-toolsxsltproc zip zlib1g-dev
b) 对于64位系统,除了上面的还需要安装:
g++-multilib gcc-multilib lib32ncurses5-dev lib32readline-gplv2-dev lib32z1-dev
c) 对于Ubuntu 15.10以及更新的系统,需要做一下的改变:
lib32readline-gplv2-dev → lib32readline6-dev
d) 对于Ubuntu 16.04以及更新的系统,需要做一下的改变:
libwxgtk2.8-dev → libwxgtk3.0-dev
openjdk-7-jdk → openjdk-8-jdk
4, 安装openjdk(版本看装的ubuntu的版本,在这里用openjdk_7-jdk)
5,生成目录:
$mkdir ~/bin#(用于存放之后下载的repo)
$mkdir ~/android/system#(目录名自己可以随便取)
6,安装 repo
a) $ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo 或者直接把下载好的repo放在~/bin目录下。b) $ chmod a+x ~/bin/repo (chmod命令是非常重要的,用于改变文件或目录的访问权限,chmod [who][+|-|=][mode]文件名)
7, 将repo配置到环境变量:
a) sudo gedit ~/.bashrcb) 在bashrc文件末尾添加:
#repo
alias repo=”~/.bin/repo”
c) 同步文件的变化:source .bashrc
到这里,repo的安装结束,可以在任何的目录下使用repo同步源码了;
同步源码
1,repo初始化
之前新建的文件夹~/android/system用来储存源码;首先在此文件夹根目录下执行repo初始化命令
$cd ~/android/system/
$repo init –u https://github.com/CyanogenMod/android.git -b cm-11.0
(可以根据自己需求选择不同的cm branch,在这里我们选择的是cm-11.0)
2,开始下载源码
$repo sync
PS:我们都使用 $repo sync 命令从CyanogenMod以及google更新最新的源码;我们应该每隔几天就使用该命令来更新源码;注意:在同源码的过程中,一般都会遇到一些问题会终止我们的同步过程,有两种办法可以解决这个问题:
(1)每当出现终止的时候,就再一次输入 $repo sync 命令
(2)可以加上参数:#repo sync -f (allows it to recover from network error andmoreimportant recover on broken/missing objects)
3,对于CM11及以下的系统:获得预编译的一些文件
$cd~/android/system/vendor/cm
$./get-prebuilts
在执行的时候,除了一个提示意外就没有其他的信息显示出来了;这个操作会将一些prebuilt app加载安装到源码中;此操作只需执行一次;
4,获得find7设备的配置文件和内核
确定处于源代码的根目录:
$cd ~/android/system
终端输入:
$source build/envsetup.sh(初始化编译环境,执行完之后就可以使用croot命令)
breakfast find7(获得find7机型的配置文件和内核)
5,读取手机上一些私有配置文件
{注:在执行这步之前,要确保自己的linux系统已经安装了adb和fastboot(因为要将手机连上电脑,电脑通过终端来控制),可以使用
sudo apt-get install android-tools-adb android-tools-fastboot;命令安装;
问题:如果在安装的时候出现:
E: Unable to locate package android-tools-adb
E: Unable to locate package android-tools-fastboot
解决:
$sudo apt-get update
$sudo apt-get upgrade
更新了软件列表,以及软件版本之后,再次安装,就能成功}(1) 确定手机已经通过USB线与电脑连接
(2)你处于~/android/system/device/oppo/find7目录下
(3) 执行脚本extract-files.sh
$./extract-files.sh
执行完之后,应该会在~/android/system/vendor/oppo目录下看到一个从设备传过来的特定文件夹(proprietary files);同时Makefiles也会被生成,用来确定这个文件夹被复制到了这个目录下。
开始编译
$croot
$brunch find7
遇到的问题:..........(未完待续)- Android源码编译环境的配置以及源码编译(find7)
- android 源码编译环境配置
- Android源码编译(一)环境配置,下载源码
- Spark源码阅读环境配置,以及手动编译Spark源码
- Android源码编译环境
- 配置android编译环境和源码下载
- Ubuntu 16.04配置Android源码编译环境
- ubuntu 12.04 amd64 编译android源码的JAVA环境配置
- Android系统源码编译之5---安装xshell android环境 环境配置以及安装jdk
- Android编译大全(一)--环境配置及获取源码
- android源码编译环境,应用程序编译环境
- jdk环境配置 eclipse环境配置 android源码编译注意事项
- 建立编译android源码的环境
- Android源码编译的环境搭建
- 【Android Native Code开发系列】三 Android源码的编译环境配置、下载及编译
- 【Android Native Code开发系列】三 Android源码的编译环境配置、下载及编译
- android源码下载以及编译
- 编译android源码一(设置环境)
- SDUT 3364 数据结构实验之图论八:欧拉回路
- 证书过期:The certificate used to sign "###"...
- tcp三次握手,Wireshark实践
- 深入浅出 RecyclerView
- 立足GitHub学编程:13个不容错过的Java项目
- Android源码编译环境的配置以及源码编译(find7)
- springmvc框架下hdfs下载文件流直接发送httpresponse
- WebRTC中peerconnectclient&server 简析【转】
- Spring事务管理
- hdoj3018 Ant Trip 欧拉回路
- Java API之输入输出流
- c语言常用检查清单
- [技巧]用WinRAR解压7z.001格式的文件
- android studio 的project structure选项打不开怎么办?