一.配置环境变量
1.1.sudo apt-get install openjdk-7-jdk //将会安装上jdk
2.安装相关的软件:
sudo apt-get install build-essential make gcc g++ libc6-dev patch texinfo libncurses5-dev git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev build-essential zip curl libncurses5-dev zlib1g-dev valgrind libgtk2.0-0:i386 libpangox-1.0-0:i386 libpangoxft-1.0-0:i386 libidn11:i386 gstreamer0.10-plugins-base:i386 gstreamer0.10-plugins-good:i386 libxml2-utils
3.修改:vim ~/.bashrc
文档末尾添加:unset JAVA_TOOL_OPTIONS
4.修改完成后 source ~/.bashrc
二.下载Android源码
1.开始下载源码,从不同的服务器下载,指令不同。
mkdir work
mkdir android-5.1.1_r1_folio
cd android-5.1.1_r1_folio/
curl http://10.100.207.254:8080/static/repo > ./repo-conn //下载repo脚本到到本地
chmod +x repo-conn //给repo脚本加权限
sudo mv repo-conn /usr/local/bin/
ssh-keygen
cd .ssh/
vi config
ssh conntech
cat id_rsa.pub
ssh conntech
repo-conn init -u conntech:manifest.git -b android-5.1.1_r1_folio
git config --global user.email "renss@litsoft.com.cn"
git config --global user.name "renss"
repo-conn init -u conntech:manifest.git -b android-5.1.1_r1_folio
repo-conn sync
三.首次编译整套源码
1.准备
1. source build/envsetup.sh //这样会列出很多include....
2. lunch //会列出很多设备的名称,必须的选一种设备型号才可以编译
3. 14 (代表google的n5手机)//aosp_hammerhead-userdebug
4. make update-api //首先编译api
5. make -j8 //正式开始编译 后面的数字表示使用系统几核进行编译,其实不管数字有多大使用的核数肯定不超过机器的内核数量
备注:首次编译的时间比较长,如果编译一次后,修改后再次编译的话就会快很多
四.配置ADB环境变量
----------start------------(这部分,在同一台电脑上只需要执行一次即可!!!)
1. lsusb //查看usb使用情况 : 18d1:4ee2
2.sudo gedit /etc/udev/rules.d/70-android.rules //新建并且编辑这个文件
SUBSYSTEM=="usb", ATTRS{idVendor}=="230b", ATTRS{idProduct}=="0100",MODE="0666" //写入这句话,nexus所对应的ATTRS为18d1 idProduct对应为4ee1
3. sudo chmod a+rx /etc/udev/rules.d/70-android.rules //设置权限
4.sudo service udev restart //重启udev
5.修改~/.bashrc中的环境变量ANDROID_PRODUCT_OUT为:
export ANDROID_PRODUCT_OUT=~/work/android-5.1.1_r1/out/target/product/hammerhead //注意路劲写adb成自己的真实路径
export PATH=$PATH:~/work/android-5.1.1_r1_folio/out/host/linux-x86/bin
6.source ~/.bashrc
-----------end--------------------
五.刷机
1.source build/envsetup.sh //必须先进入到android源码的目录下面在开始执行此指令
2.lunch
make clean;//清除已经编译过到文件
===============================================================================
root@ThinkPad:~/work/android-5.1.1_r1_folio# ls
abi build development frameworks Makefile pdk system
art cts device hardware ndk prebuilts vendor
bionic dalvik docs libcore out repo-conn
bootable developers external libnativehelper packages sdk
root@ThinkPad:~/work/android-5.1.1_r1_folio# cd out/
root@ThinkPad:~/work/android-5.1.1_r1_folio/out# ls
root@ThinkPad:~/work/android-5.1.1_r1_folio/out# cd ../
root@ThinkPad:~/work/android-5.1.1_r1_folio# ls
abi build development frameworks Makefile pdk system
art cts device hardware ndk prebuilts vendor
bionic dalvik docs libcore out repo-conn
bootable developers external libnativehelper packages sdk
root@ThinkPad:~/work/android-5.1.1_r1_folio# source build/envsetup.sh
==============================================================================
3.选择要刷机的手机对应的编号
4. adb reboot bootloader
5. fastboot flashall -w
result:刷机完成后会显示:
.....
rebooting...
finished. total time: 66.378s
==============================================================
< waiting for device >//找不到usb设备
^C
louisgracia@ThinkPad:~/work/android-5.1.1_r1_folio$ lsusb **
Bus 004 Device 002: ID 8087:8000 Intel Corp.
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 002: ID 8087:8008 Intel Corp.
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse
Bus 001 Device 005: ID 04f2:b39a Chicony Electronics Co., Ltd
Bus 001 Device 004: ID 8087:07dc Intel Corp.
Bus 001 Device 060: ID 18d1:4ee0 Google Inc.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
louisgracia@ThinkPad:~/work/android-5.1.1_r1_folio$ /etc/udev/ //usb相关配置文件
hwdb.d/ rules.d/
louisgracia@ThinkPad:~/work/android-5.1.1_r1_folio$ /etc/udev/rules.d/70-android.rules **
/etc/udev/rules.d/70-android.rules: 行 1: ATTRS{idVendor}==8087,: 未找到命令
louisgracia@ThinkPad:~/work/android-5.1.1_r1_folio$ sudo vim /etc/udev/rules.d/70-android.rules **
[sudo] password for louisgracia:
louisgracia@ThinkPad:~/work/android-5.1.1_r1_folio$ sudo service ud //重启服务
udev udev-finish udisks2
louisgracia@ThinkPad:~/work/android-5.1.1_r1_folio$ sudo service udev restart //重启系统usb相关
louisgracia@ThinkPad:~/work/android-5.1.1_r1_folio$ adb reboot bootloader **
louisgracia@ThinkPad:~/work/android-5.1.1_r1_folio$ fastboot flashall -w**
Creating filesystem with parameters:
Size: 28521246720
Block size: 4096
====================================================================
六.以后单独编译某个模块,使用Push的方式推到手机即可
比如编译SystemUI模块
也要cd folio目录下
1. mmm frameworks/base/packages/SystemUI/ //通常此目录只包含一个模块
2. 编译完生成系统级别的apk,或者jar.
####比如:我重新编译生成了framework.jar,它生成的目录在out/target/product/hammerhead/system/framework
并且手机中对应的framework.jar在/system/framework/下面
***就在自己的项目下(我是cplus项目)
1.adb root
2.adb remount
3.adb push out/target/product/hammerhead/system/framework/framework.jar /system/framework/
备注:如果编译的是SystemUI的话,最后terminal中会显示Install:out/target/product/hammerhead/system/priv-app/SystemUI/SystemUI.apk
SystemUI.apk,才是真正要push进手机的。接下来再执行adb push指令即可。
1.1.sudo apt-get install openjdk-7-jdk //将会安装上jdk
2.安装相关的软件:
sudo apt-get install build-essential make gcc g++ libc6-dev patch texinfo libncurses5-dev git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev build-essential zip curl libncurses5-dev zlib1g-dev valgrind libgtk2.0-0:i386 libpangox-1.0-0:i386 libpangoxft-1.0-0:i386 libidn11:i386 gstreamer0.10-plugins-base:i386 gstreamer0.10-plugins-good:i386 libxml2-utils
3.修改:vim ~/.bashrc
文档末尾添加:unset JAVA_TOOL_OPTIONS
4.修改完成后 source ~/.bashrc
二.下载Android源码
1.开始下载源码,从不同的服务器下载,指令不同。
mkdir work
mkdir android-5.1.1_r1_folio
cd android-5.1.1_r1_folio/
curl http://10.100.207.254:8080/static/repo > ./repo-conn //下载repo脚本到到本地
chmod +x repo-conn //给repo脚本加权限
sudo mv repo-conn /usr/local/bin/
ssh-keygen
cd .ssh/
vi config
ssh conntech
cat id_rsa.pub
ssh conntech
repo-conn init -u conntech:manifest.git -b android-5.1.1_r1_folio
git config --global user.email "renss@litsoft.com.cn"
git config --global user.name "renss"
repo-conn init -u conntech:manifest.git -b android-5.1.1_r1_folio
repo-conn sync
三.首次编译整套源码
1.准备
1. source build/envsetup.sh //这样会列出很多include....
2. lunch //会列出很多设备的名称,必须的选一种设备型号才可以编译
3. 14 (代表google的n5手机)//aosp_hammerhead-userdebug
4. make update-api //首先编译api
5. make -j8 //正式开始编译 后面的数字表示使用系统几核进行编译,其实不管数字有多大使用的核数肯定不超过机器的内核数量
备注:首次编译的时间比较长,如果编译一次后,修改后再次编译的话就会快很多
四.配置ADB环境变量
----------start------------(这部分,在同一台电脑上只需要执行一次即可!!!)
1. lsusb //查看usb使用情况 : 18d1:4ee2
2.sudo gedit /etc/udev/rules.d/70-android.rules //新建并且编辑这个文件
SUBSYSTEM=="usb", ATTRS{idVendor}=="230b", ATTRS{idProduct}=="0100",MODE="0666" //写入这句话,nexus所对应的ATTRS为18d1 idProduct对应为4ee1
3. sudo chmod a+rx /etc/udev/rules.d/70-android.rules //设置权限
4.sudo service udev restart //重启udev
5.修改~/.bashrc中的环境变量ANDROID_PRODUCT_OUT为:
export ANDROID_PRODUCT_OUT=~/work/android-5.1.1_r1/out/target/product/hammerhead //注意路劲写adb成自己的真实路径
export PATH=$PATH:~/work/android-5.1.1_r1_folio/out/host/linux-x86/bin
6.source ~/.bashrc
-----------end--------------------
五.刷机
1.source build/envsetup.sh //必须先进入到android源码的目录下面在开始执行此指令
2.lunch
make clean;//清除已经编译过到文件
===============================================================================
root@ThinkPad:~/work/android-5.1.1_r1_folio# ls
abi build development frameworks Makefile pdk system
art cts device hardware ndk prebuilts vendor
bionic dalvik docs libcore out repo-conn
bootable developers external libnativehelper packages sdk
root@ThinkPad:~/work/android-5.1.1_r1_folio# cd out/
root@ThinkPad:~/work/android-5.1.1_r1_folio/out# ls
root@ThinkPad:~/work/android-5.1.1_r1_folio/out# cd ../
root@ThinkPad:~/work/android-5.1.1_r1_folio# ls
abi build development frameworks Makefile pdk system
art cts device hardware ndk prebuilts vendor
bionic dalvik docs libcore out repo-conn
bootable developers external libnativehelper packages sdk
root@ThinkPad:~/work/android-5.1.1_r1_folio# source build/envsetup.sh
==============================================================================
3.选择要刷机的手机对应的编号
4. adb reboot bootloader
5. fastboot flashall -w
result:刷机完成后会显示:
.....
rebooting...
finished. total time: 66.378s
==============================================================
< waiting for device >//找不到usb设备
^C
louisgracia@ThinkPad:~/work/android-5.1.1_r1_folio$ lsusb **
Bus 004 Device 002: ID 8087:8000 Intel Corp.
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 002: ID 8087:8008 Intel Corp.
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse
Bus 001 Device 005: ID 04f2:b39a Chicony Electronics Co., Ltd
Bus 001 Device 004: ID 8087:07dc Intel Corp.
Bus 001 Device 060: ID 18d1:4ee0 Google Inc.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
louisgracia@ThinkPad:~/work/android-5.1.1_r1_folio$ /etc/udev/ //usb相关配置文件
hwdb.d/ rules.d/
louisgracia@ThinkPad:~/work/android-5.1.1_r1_folio$ /etc/udev/rules.d/70-android.rules **
/etc/udev/rules.d/70-android.rules: 行 1: ATTRS{idVendor}==8087,: 未找到命令
louisgracia@ThinkPad:~/work/android-5.1.1_r1_folio$ sudo vim /etc/udev/rules.d/70-android.rules **
[sudo] password for louisgracia:
louisgracia@ThinkPad:~/work/android-5.1.1_r1_folio$ sudo service ud //重启服务
udev udev-finish udisks2
louisgracia@ThinkPad:~/work/android-5.1.1_r1_folio$ sudo service udev restart //重启系统usb相关
louisgracia@ThinkPad:~/work/android-5.1.1_r1_folio$ adb reboot bootloader **
louisgracia@ThinkPad:~/work/android-5.1.1_r1_folio$ fastboot flashall -w**
Creating filesystem with parameters:
Size: 28521246720
Block size: 4096
====================================================================
六.以后单独编译某个模块,使用Push的方式推到手机即可
比如编译SystemUI模块
也要cd folio目录下
1. mmm frameworks/base/packages/SystemUI/ //通常此目录只包含一个模块
2. 编译完生成系统级别的apk,或者jar.
####比如:我重新编译生成了framework.jar,它生成的目录在out/target/product/hammerhead/system/framework
并且手机中对应的framework.jar在/system/framework/下面
***就在自己的项目下(我是cplus项目)
1.adb root
2.adb remount
3.adb push out/target/product/hammerhead/system/framework/framework.jar /system/framework/
备注:如果编译的是SystemUI的话,最后terminal中会显示Install:out/target/product/hammerhead/system/priv-app/SystemUI/SystemUI.apk
SystemUI.apk,才是真正要push进手机的。接下来再执行adb push指令即可。