下载驱动:
我这里下载对应的M4B30X,下载成功后得到三个压缩包broadcom-hammerhead-m4b30x-7c7b231f.tgz、lge-hammerhead-m4b30x-74fa3aa5.tgz、qcom-hammerhead-m4b30x-158606cf.tgz,解压这三个压缩包,解压出来是三个sh文件,放到Android源码目录下面即android-6.0.1_r72下,然后执行。会将相关驱动放到vender目录下面。
拷贝三个sh到源码目录:
cp /media/lhw/LHW/extract-broadcom-hammerhead.sh /home/lhw/aosp/android-6.0.1_r72/
cp /media/lhw/LHW/extract-lge-hammerhead.sh /home/lhw/aosp/android-6.0.1_r72/
cp /media/lhw/LHW/extract-qcom-hammerhead.sh /home/lhw/aosp/android-6.0.1_r72/
拷贝成功后,赋予执行权限
chmod a+x extract-broadcom-hammerhead.sh
chmod a+x extract-lge-hammerhead.sh
chmod a+x extract-qcom-hammerhead.sh
1
2
3
执行每个sh,输入I ACCEPT,最终将驱动放到vender目录待使用。
4.开始编译
make clobber
make clean
export USE_CCACHE=1
prebuilts/misc/linux-x86/ccache/ccache -M 50G
source build/envsetup.sh
lunch
19. aosp_hammerhead-userdebug
make -j16
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=6.0.1
TARGET_PRODUCT=aosp_hammerhead
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
TARGET_CPU_VARIANT=krait
TARGET_2ND_ARCH=
TARGET_2ND_ARCH_VARIANT=
TARGET_2ND_CPU_VARIANT=
HOST_ARCH=x86_64
HOST_OS=linux
HOST_OS_EXTRA=Linux-4.4.0-47-generic-x86_64-with-Ubuntu-16.04-xenial
HOST_BUILD_TYPE=release
BUILD_ID=M4B30X
OUT_DIR=out
=
(5) 开始编译,执行make -j6, 6为同时编译的线程数,一般google推荐这个数字为2倍的cpu个数再加上2,比如4核,就是10。
make -j6
1
查看cpu核心个数命令:
cat /proc/cpuinfo
1
编译结束,大功告成!首次编译花费了6个多小时,out目录会有对应的输出文件
————————————————
adb reboot bootloader
fastboot -w flashall
fastboot -w flashall
error: could not load android-info.txt: No such file or directory
sudo gedit /etc/udev/rules.d/51-android.rules
# adb protocol on passion (Nexus One)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e12", MODE="0600", OWNER="pm"
# fastboot protocol on passion (Nexus One)
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0fff", MODE="0600", OWNER="pm"
# adb protocol on crespo/crespo4g (Nexus S)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e22", MODE="0600", OWNER="pm"
# fastboot protocol on crespo/crespo4g (Nexus S)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e20", MODE="0600", OWNER="pm"
# adb protocol on stingray/wingray (Xoom)
SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", ATTR{idProduct}=="70a9", MODE="0600", OWNER="pm"
# fastboot protocol on stingray/wingray (Xoom)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="708c", MODE="0600", OWNER="pm"
# adb protocol on maguro/toro (Galaxy Nexus)
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860", MODE="0600", OWNER="pm"
# fastboot protocol on maguro/toro (Galaxy Nexus)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e30", MODE="0600", OWNER="pm"
# adb protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d101", MODE="0600", OWNER="pm"
# adb protocol on panda (PandaBoard ES)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d002", MODE="0600", OWNER="pm"
# fastboot protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d022", MODE="0600", OWNER="pm"
# usbboot protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d00f", MODE="0600", OWNER="pm"
# usbboot protocol on panda (PandaBoard ES)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d010", MODE="0600", OWNER="pm"
# adb protocol on grouper/tilapia (Nexus 7)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e42", MODE="0600", OWNER="pm"
# fastboot protocol on grouper/tilapia (Nexus 7)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e40", MODE="0600", OWNER="pm"
# adb protocol on manta (Nexus 10)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee2", MODE="0600", OWNER="pm"
# fastboot protocol on manta (Nexus 10)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee0", MODE="0600", OWNER="pm"
# fastboot protocol onmanta (Nexus 4)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee2", MODE="0600", OWNER="pm"
# fastboot protocol onmanta (Nexus 5)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee0", MODE="0600", OWNER="pm"
# fastboot protocol onmanta (vivo V2023A)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee9", MODE="0600", OWNER="pm"
# fastboot protocol onmanta (Vivo)
SUBSYSTEM=="usb", ATTR{idVendor}=="2d95", ATTR{idProduct}=="6005", MODE="0600", OWNER="pm"
fastboot -w flashall
Creating filesystem with parameters:
Size: 29236371456
Block size: 4096
Blocks per group: 32768
Inodes per group: 8192
Inode size: 256
Journal blocks: 32768
Label:
Blocks: 7137786
Block groups: 218
Reserved block group size: 1024
Created filesystem with 11/1785856 inodes and 156120/7137786 blocks
Creating filesystem with parameters:
Size: 734003200
Block size: 4096
Blocks per group: 32768
Inodes per group: 7472
Inode size: 256
Journal blocks: 2800
Label:
Blocks: 179200
Block groups: 6
Reserved block group size: 47
Created filesystem with 11/44832 inodes and 5813/179200 blocks
--------------------------------------------
Bootloader Version...: HHZ11k
Baseband Version.....: M8974A-2.0.50.1.16
Serial Number........: 0676205e21111efa
--------------------------------------------
checking product...
OKAY [ 0.100s]
sending 'boot' (9428 KB)...
OKAY [ 0.510s]
writing 'boot'...
OKAY [ 0.798s]
sending 'recovery' (10286 KB)...
OKAY [ 0.572s]
writing 'recovery'...
OKAY [ 0.840s]
erasing 'system'...
OKAY [ 0.791s]
sending 'system' (407754 KB)...
OKAY [ 12.978s]
writing 'system'...
OKAY [ 29.024s]
erasing 'userdata'...
OKAY [ 14.894s]
sending 'userdata' (139109 KB)...
OKAY [ 4.569s]
writing 'userdata'...
OKAY [ 9.309s]
erasing 'cache'...
OKAY [ 0.591s]
sending 'cache' (13348 KB)...
OKAY [ 0.630s]
writing 'cache'...
OKAY [ 1.068s]
rebooting...
finished. total time: 77.233s
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
if [ "$PS1" ]; then
if [ "$BASH" ] && [ "$BASH" != "/bin/sh" ]; then
# The file bash.bashrc already sets the default PS1.
# PS1='\h:\w\$ '
if [ -f /etc/bash.bashrc ]; then
. /etc/bash.bashrc
fi
else
if [ "`id -u`" -eq 0 ]; then
PS1='# '
else
PS1='$ '
fi
fi
fi
if [ -d /etc/profile.d ]; then
for i in /etc/profile.d/*.sh; do
if [ -r $i ]; then
. $i
fi
done
unset i
fi
#JAVA_HOME=/usr/java8/jdk1.8.0_202
#JAVA_HOME=/usr/java6/jdk1.6.0_45
JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export JRE_HOME=.:$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export NDK_HOME=/media/pm/3T_HardDisk/Home/Android/NDK/android-ndk-r15c
export ANDROID_HOME=/home/pm/Android/eclipse/adt-bundle-linux-x86_64-20140321
#export BOOTIMG_PATH_HOME=/media/pm/c217aab6-d2be-474a-bf18-fa75c28c8e6e/repo/bootimg-tools
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH:$ANDROID_HOME/sdk/platform-tools:$ANDROID_HOME/sdk/tools:$ANDROID_HOME #:$BOOTIMG_PATH_HOME
#
#export ANDROID_SRC_PATH=/media/pm/c217aab6-d2be-474a-bf18-fa75c28c8e6e/repo/6.0.1
#export PATH=$ANDROID_SRC_PATH/prebuilts/gcc/linux-x86/arm/arm-eabi-4.8/bin:$PATH
#export ARCH=arm
#export SUBARCH=arm
#export CROSS_COMPILE=arm-linux-androideabi-
#export ARCH=arm
#export SUBARCH=arm
#export CROSS_COMPILE=arm-eabi-
#export PATH=/media/pm/c217aab6-d2be-474a-bf18-fa75c28c8e6e/repo/6.0.1/prebuilts/gcc/linux-x86/arm/arm-eabi-4.8/bin:$PATH
#export BASE_PATH=/media/pm/c217aab6-d2be-474a-bf18-fa75c28c8e6e/repo/6.0.1
export BASE_PATH=/home/pm/repo/repo_android-6.0.1_r1
export ANDROID_PRODUCT_OUT=$BASE_PATH/out/target/product/hammerhead
export PATH=$BASE_PATH/prebuilts/gcc/linux-x86/arm/arm-eabi-4.8/bin:$PATH
export CROSS_COMPILE=$BASE_PATH/prebuilts/gcc/linux-x86/arm/arm-eabi-4.8/bin/arm-eabi-
export ARCH=arm
export SUBARCH=arm
#export BASE_PATH=/home/pm/repo/repo_android-4.4.4_r1
#export ANDROID_PRODUCT_OUT=$BASE_PATH/out/target/product/hammerhead
#export PATH=$BASE_PATH/prebuilts/gcc/linux-x86/arm/arm-eabi-4.7/bin:$PATH
#export CROSS_COMPILE=$BASE_PATH/prebuilts/gcc/linux-x86/arm/arm-eabi-4.7/bin/arm-eabi-
#export ARCH=arm
#export SUBARCH=arm
https://source.android.google.cn/source/initializing?hl=zh-cn
https://blog.csdn.net/tyyj90/article/details/53443913