Android源代码下载及编译方法
Android源码下载方法详解

Android: Android源码下载方法详解分类:Android平台安卓源码下载地址:/source/downloading.html相信很多下载过内核的人都对这个很熟悉git clone git:///kernel/common.git kernel但是这是在以前,现在如果这么执行的话,会显示如下内容Initialized empty Git repository in /home/star/working/kernel/.git/[0: 149.20.4.77]: errno=Connection refusedfatal: unable to connect a socket (Connection refused)通过浏览器输入/,发现该网站已经被重定向为/source/downloading.html可以在该页面的最后发现内核的下载方法。
下面我们介绍一下Android源码下载的步骤。
工作环境:操作系统:Ubuntu 10.04 或Ubuntu10.10git程序:1.7.0.4 或1.7.1转载请注明出处:/pku_android方法一:1.1 初始化安装环境参考网页/source/initializing.html主要要做的就是安装jdk和安装一些软件包$ sudo apt-get install git-core gnupg flex bison gperf build-essential \zip curl zlib1g-dev libc6-dev libncurses5-dev x11proto-core-dev \libx11-dev libreadline6-dev libgl1-mesa-dev tofrodos python-markdown \libxml2-utils如果已经安装了,就不许要这步了1.2 无论下载内核和源码,都需要进行如下操作参考网页/source/downloading.html$ mkdir ~/bin$ PATH=~/bin:$PATH$ curl https:///dl/googlesource/git-repo/repo > ~/bin/repo如果出现: repo init error: could not verify the tag 'v1.12.7',执行下面的命令:curl /git-repo-downloads/repo > ~/bin/repo $ chmod a+x ~/bin/repo建立一个文件夹,以便下载的内容保存其中$ mkdir WORKING_DIRECTORY$ cd WORKING_DIRECTORY@@@ 以下可以脚本实现autogit.rar @@@1.3 内核下载$ git clone https:///kernel/common.git kernel命令行最后面的kernel的意思是保存在这个文件夹下,所以可以是任何名字,该文件夹不需要自己去创建,最后的这个不写也没问题如果想下载其他版本的内核$ git clone https:///kernel/goldfish.git$ git clone https:///kernel/msm.git$ git clone https:///kernel/omap.git$ git clone https:///kernel/samsung.git$ git clone https:///kernel/tegra.git下载过程中,会有如下信息,速度快慢取决于网速了。
Ubuntu下Android源码修改、编译及运行、launcher定制

环境Linux 版本:Ubuntu 11.04 (可由10.10的版本进行升级)64位系统GCC版本:gcc version 4.5.2Java版本:java version "1.6.0_26"下载android源码前注意:1、保证Ubuntu系统中的容量在80G左右,以保证足够的空间来存放android源码以及编译后的相关文件。
2、保证Ubuntu系统进行Internet访问。
联网方法:采用拨号进行连接。
相关操作步骤如下所示:1、虚拟机→设置→硬件→网络适配器→网络连接→桥接2、启动Ubuntu系统,打开终端(在普通用户下),输入相关命令如下:$ pppoeconf //打开后输入上网账号跟密码,确认保存$ sudo pon dsl-provider //上网连接命令经过这两个步骤后就可以进行上网了。
Android源码编译所依赖的tools01.$ sudo apt-get update02.$ sudo apt-get -y install git-core03.$ sudo apt-get -y install gnupg04.$ sudo apt-get -y install sun-java6-jdk flex05.$ sudo apt-get -y install bison06.$ sudo apt-get -y install gperf07.$ sudo apt-get -y install libsdl-dev08.$ sudo apt-get -y install libesd0-dev09.$ sudo apt-get -y install libwxgtk2.6-dev10.$ sudo apt-get -y install build-essential11.$ sudo apt-get -y install zip12.$ sudo apt-get -y install curl13.$ sudo apt-get -y install libncurses5-dev14.$ sudo apt-get -y install zlib1g-dev15.$ sudo apt-get -y install valgrind注意:(如果是32bit的系统的话,则要更改几个Android.mk文件)01./external/clearsilver/cgi/Android.mk02./external/clearsilver/java-jni/Android.mk03./external/clearsilver/util/Android.mk04./external/clearsilver/cs/Android.mk用gedit打开,修改m64为m32即可另外将build/core/main.mk中的ifneq (64,$(findstring 64,$(build_arch)))修改为:ifneq (i686,$(findstring i686,$(build_arch)))对于32位系统所出现的问题,解决方法:Error1:make: ***[out/host/linux-x86/obj/STATIC_LIBRARIES/libutils_intermediates/RefBase.o] error 1在terminal中输入$ gedit frameworks/base/libs/utils/Android.mk将LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS)修改为:LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS) –fpermissiveError2:make: *** [out/host/linux-x86/obj/EXECUTABLES/obbtool_intermediates/Main.o] error 1此处编译错误是由于ubuntu 11.10采用了GCC4.6.1导致的修改源码目录下/build/core/combo/HOST_linux-x86.mk并将以下语句:HOST_GLOBAL_CFLAGS+= -D_FORTIFY_SOURCE=0修改为:HOST_GLOBAL_CFLAGS+= -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0Android源码下载1、安装repo安装过程步骤如下所示:Repo下载安装1、$ mkdir ~/bin //在home目录下创建bin文件夹2、$ PATH=~/bin:$PA TH //环境变量设置3、$ curl https:///dl/googlesource/git-repo/repo > ~/bin/repo //repo下载4、$ chmod a+x ~/bin/repo //权限设置,保证repo可执行Repo client初始化1、$ mkdir Android //创建Android目录,用于存放下载的android源码2、$ cd Android //进入到Android目录3、$ repo init -u https:///platform/manifest //指定URL清单,指定包含在Android源代码的各种存储库将被安置在工作目录中当然也可以指定android版本,使用如下命令:$ repo init -u https:///platform/manifest -b android-4.0.1_r1Android源码文件获取$ repo sync注意:在Android源码下载过程中凡出现问题,可以进入Android源码下载的相关官方网站/source/downloading.html 进行查看。
Android反编译查看源代码

Android是个神奇的货,近两年比较火热,学习他的人也比较多,但是对于很多初学者来说比较头疼,(当然本人也很菜鸟),今天在学习一个安卓项目时,苦于找不到源代码,无奈只好下载网上现成的.apk文件,顿时好奇能不能反编译看到源代码呢?答案是肯定的!让我们行动起来!
首先,我们将文件的后缀名改为.zip。
这时候我们将可以解压这个文件,如图:
此处我们已经看到一个压缩文件了,打开它。
注意我们的重点是.dex 文件
这个classes.dex是个好东西呀!
然后,然后……
我们需要下两个软件:
dex2jar下载地址:/p/dex2jar/
JD-GUI下载地址:http://java.decompiler.free.fr/?q=jdgui
把我们刚找到的classes.dex拷贝到dex2jar的目录下吧(与dex2jar.bat在同一个目录下),然后运行dex2jar.bat classes.dex,将会生成一个文件classes_dex2jar.jar。
快OK 啦~~~~
运行jd-gui.exe 直接将classes_dex2jar.jar 拖进去吧,瞧!我们要的出来了!。
android源码编译及rom制作

GNU make 3.81-3.82 JDK 6(生成 Gingerbread 或更高版本) JDK 5(Froyo 或旧版本) Git 1.7 或更高版本 gcc/g++ 4.4 (其他版本编译出错)
设置Linux编译环境
安装JDK: Java6:
$ sudo add-apt-repository "deb / lucid partner" $ sudo apt-get update $ sudo apt-get install sun-java6-jdk
一整套编译 100GB 选择编译分支
建议:不要使用虚拟机安装ubuntu编译 1、编译花费时间长,需要内存大 2、如果配置低,可能会卡住不动 3、虚拟机连接手机有问题,很可能不识别,编译前需要从手机拉 配置数据;不能使用fastboot模式刷机
设置Linux编译环境
|-- prebuilt
(x86和arm架构下预编译的一些资源)
|-- sdk
(sdk及模拟器)
|-- system
(文件系统库、应用及组件——C语言)
|-- vendor
(厂商定制代码)
Android源码编译
初始化编译环境 下载代码树 编译 编译内核
sudo chmod a+rx /etc/udev/rules.d/51-android.rules sudo /etc/init.d/udev restart
3.重启adb服务(必须为sudo 已配置android环境变量)
Android_4.2_源码下载和编译环境安装及Android_4.2_源码编译

Android 4.2源码的下载和编译环境的安装及源码的编译Google于2012.11.14发布了Android4.2的源码,下面把本人在ubuntu10.04 的64位系统上下载源码,和编译源码做个记录备份,也供有需要的人参考,若是在下载编译安装Android源代码遇到问题,可加QQ群交流: 217706590,难免有错,敬请见谅,还忘勿吝啬指出。
源代码下载、编译环境安装、源代码编译和运行模拟器的可能出现的一些错误在本文最后一章节,若出现类似错误,可以参考。
1、源码的下载源代码的下载,首先需要安装以下软件:curl 和git-core1.1安装curl:在终端中执行:sudo apt-get install curl1.2安装git-core1.2.1在用户目录下新建bin文件在终端中执行:mkdir ~/bin将~/bin添加环境变量,作用是:要将git软件下载安装在此目录,在别的目录运行可能会找不到此软件,所以要添加到环境变量中在终端中执行:PA TH=~/bin:$PATH1.2.2安装git-core在终端中执行:curl https:///dl/googlesource/git-repo/repo§> ~/bin/repo给repo执行权限:chmod a+x ~/bin/repo1.3 下载源代码1.3.1进入要源代码将要保存的目录如我的源代码保存在:、/opt/android/src在终端中执行:cd /opt/android/src 进入到src目录中1.3.2 获取repo最新的配置repo init -u https:///platform/manifest§若是执行错误则用以下命令:~/bin/repo init -u https:///platform/manifest§1.3.3 下载源代码对于下载不同版本的android,指定一个manifest分支(即只指明android对应的版本),使用-b参数(即下载某个版本的源代码),如:对于4.2的版本,将命令修改为repo init -u https:///platform/manifest§ -b android-4.2_r1若是执行错误则用以下命令:~/bin/repo init -u https:///platform/manifest§ -b android-4.2_r1 执行以上命令后,会在/opt/android/src目录中生成一个.repo的目录,此目录保存了将要下载的源代码的相关信息同步获取源码#~/bin/repo sync如果中间出现中断,这个很正常,你可以再次输入~/bin/repo sync 命令来进行下载。
git方式下载android源代码

使用repo sync命令,我们把整个Android代码树做同步到本地,同样,我们可以用类似
repo sync project1 project2 …
这样的命令来同步某几个项目
如果是同步Android中的单个项目,只要在项目目录下执行简单的
git pull即可。
4.通过GitWeb下载代码
如果需要某个branch的代码,用git checkout即可。比如我们刚刚拿了kernel/common.get的代码,那就先进入到common目录,然后用下面的命令:
git checkout origin/android-goldfish-2.6.27 -b goldfish
这样我们就在本地建立了一个名为goldfish的android-goldfish-2.6.27分支,代码则已经与android-goldgish-2.6.27同步。我们可以通过git branch来列出本地的所有分支。
1.创建~/.gitconfig文件,内容为:
[core]
gitProxy = /home/zhangchunyan/bin/git-proxy
2.sudo apt-get install corkscrew
3.将/usr/bin/corkscrew拷贝到~/bin/下
4.编写shell脚本,命名为git-proxy(注意增加上可执行权限),内容为:
用repo sync命令获得当前最新的sourcecode
单独下载内核,用这个
git clone git:///kernel/linux-2.6.git
2.如果想拿某个branch而不是主线上的代码,我们需要用-b参数制定branch名字,比如:
repo init -u git:///platform/manifest.git -b froyo
自己动手编译Android(LineageOS)源码

⾃⼰动⼿编译Android(LineageOS)源码⼀、编译LineageOS源码准备设备:⼩⽶ MIX2设备代号:chironAndroid版本:9.0PC配置:系统:Ubuntu18.04⾄少12G RAM⾄少200GB 剩余硬盘空间良好的⽹络环境1.下载并解压SDKsdk中包含fastboot和adb下载wget https:///android/repository/platform-tools-latest-linux.zip解压unzip platform-tools-latest-linux.zip -d ~添加到环境变量gedit ~/.profile输⼊:# add Android SDK platform tools to pathif [ -d "$HOME/platform-tools" ] ; thenPATH="$HOME/platform-tools:$PATH"fi保存。
使改动⽣效:source ~/.profile2.安装依赖安装必要库和⼯具sudo apt-get install bc bison build-essential ccache curl flex g++-multilib gcc-multilib git gnupg gperf imagemagick lib32ncurses5-dev lib32readline-dev lib32z1-dev liblz4-tool libncurses5-dev libsdl1.2-dev libssl-dev libwxgtk3.0-dev libxml2 libxml2-utils lzop pngcrush rsync schedtool squashfs-tools xsltproc zip zlib1g-dev安装openjdk-8-jdksudo apt install -y openjdk-8-jdk3.配置源创建repo存放⽬录mkdir -p ~/bin创建源码存放⽬录mkdir -p ~/android/lineage× 注:请确保该⽬录所在的磁盘有⾜够的空间(⾄少200G)安装repocurl https:///git-repo-downloads/repo > ~/bin/repochmod a+x ~/bin/repo将~/bin放⼊环境变量gedit ~/.profile加⼊:# set PATH so it includes user's private bin if it existsif [ -d "$HOME/bin" ] ; thenPATH="$HOME/bin:$PATH"fi使改动⽣效:source ~/.profile初始化repocd ~/android/lineagerepo init -u https:///LineageOS/android.git -b lineage-16.0× 注:这⾥的lineage-16.0是分⽀名,对应Android 9.0。
Ubuntu12.04下在Android4.0.4源码下载及其编译过程

Ubuntu12.04下在Android4.0.4源码下载及其编译过程一、下载源码1、下载工具repo:https:///tools/repo/在本地目录建个bin的文件夹,进入bin文件夹;通过git下载:1.git clone https:///tools/repo下载完成后,进入repo文件夹,切换到稳定分支:1.git checkout -b stable origin/stable将repo命令所在的目录,即/home/yourname/bin/repo添加到环境变量中:1.export PATH=$PATH:~/bin/repo在本地目录下新建目录:android4.0.4,并进入该文件夹:[html]view plaincopy1.cd ~;mkdir android4.0.4;cd android4.0.4;在文件夹下执行下面命令来下载Android源码:1.repo init -u https:///platform/manifest你也可以直接切换到你想要下的版本的分支,而不是“master”分支:1.repo init -u https:///platform/manifest -b android-4.0.4_r2关于到底是哪个分支,根据自己的情况而定,详情可参照:https:///platform/manifest/如你想下载最新的Android4.1代码,即可将分支名称更换成:android-4.1.1_r4你也可以参照官网的下载方式来下载:/source/downloading.html实验证明,我总是在下载那个repo工具的时候,无法连接到相应的地址。
下载是个漫长的过程,下载完成后的大小大概有14G,所以要提前准备好这么大的空间。
下载完成后的目录大概有这些:如图二、编译源码如果你的电脑的环境经常做开发,那么很多环境应该已经搭建好了,如果没有,可以参照官网:/source/initializing.html这里要提醒的是:用apt-get或者ubuntu软件中直接安装的jdk,jre的时候,编译Android是总是编译不过,出现JDK版本不一致的情况;解决办法如下:到oracle官网中下载jdk:/technetwork/java/javase/downloads/index-jsp-138363.html建议下载这个:jdk-6u35-linux-i586.bin下载完成后,运行得到一个jdk1.6.0_35文件夹,然后,将相应的JAVA环境加到系统环境中,简单的可以这样:1.vi ~/.bashrc在.bashrc文件最后添加:1.JAVA_HOME=/home/clw712/tools/jdk1.6.0_352.CLASSPATH=$JAVA_HOME/lib/3.ANDROID_PRODUCT_OUT=/home/clw712/bin/android/out/target/product/generic4.ANDROID=/home/clw712/bin/android5.ANDROID_SWT=/home/clw712/bin/android/out/host/linux-x86/framework6.PATH=$ANDROID/out/host/linux-x86/bin:$ANDROID/prebuilt/android-arm/kernel/:$JAVA_HOME/bin:$ANDROID_PRODUCT_OUT:$PATH7.8.export PATH JAVA_HOME CLASSPATH ANDROID_PRODUCT_OUT ANDROID_SWT当然上述路径还有后面编译好了,用到的路径,是用来运行emulator的。