Installing Java:
Download file jdk-6u38-linux-x64.bin
$ chmod +x jdk-6u38-linux-x64.bin
$ ./jdk-6u38-linux-x64.bin
$ sudo chown root. -R jdk1.6.0_38/
$ sudo mv jdk1.6.0_38/ /usr/lib/jvm/jdk1.6.0_38/
$sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.6.0_38/bin/java" 1
$sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.6.0_38/bin/javac" 1
$sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/jdk1.6.0_38/bin/javaws" 1
$sudo update-alternatives --config java
$sudo update-alternatives --config javac
$sudo update-alternatives --config javaws
Installing required packages (Ubuntu 12.04)
$ chmod +x jdk-6u38-linux-x64.bin
$ ./jdk-6u38-linux-x64.bin
$ sudo chown root. -R jdk1.6.0_38/
$ sudo mv jdk1.6.0_38/ /usr/lib/jvm/jdk1.6.0_38/
$sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.6.0_38/bin/java" 1
$sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.6.0_38/bin/javac" 1
$sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/jdk1.6.0_38/bin/javaws" 1
$sudo update-alternatives --config java
$sudo update-alternatives --config javac
$sudo update-alternatives --config javaws
Installing required packages (Ubuntu 12.04)
$ sudo apt-get install git gnupg flex bison gperf build-essential \ zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \ libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \ libgl1-mesa-dev g++-multilib mingw32 tofrodos \ python-markdown libxml2-utils xsltproc zlib1g-dev:i386
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
******************* Downloading Android Source ********************
To get repo script
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
To make repo script executable
$ chmod a+x ~/bin/repo
$ export PATH="$PATH:~/bin/"
$ mkdir android_4.1.2
$ cd android_4.1.2
$ repo init -u https://android.googlesource.com/platform/manifest OR
$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.1.2_r1
Other android branches are: (https://android.googlesource.com/platform/manifest/)
4.1.1_r1, 2.3.4_r1, 2.3.3_r1, 2.3.2_r1, 2.3.1_r1, 2.3_r1, 2.2.2_r1, 2.2.1_r1, 2.2_r1.1, 2.1_r2, 2.0_r1, 1.6_r2,1.5_r4
To download & extract source from repo objects
$ repo sync
******************* Downloading Android Source ********************
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
To make repo script executable
$ chmod a+x ~/bin/repo
$ export PATH="$PATH:~/bin/"
$ mkdir android_4.1.2
$ cd android_4.1.2
$ repo init -u https://android.googlesource.com/platform/manifest OR
$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.1.2_r1
Other android branches are: (https://android.googlesource.com/platform/manifest/)
4.1.1_r1, 2.3.4_r1, 2.3.3_r1, 2.3.2_r1, 2.3.1_r1, 2.3_r1, 2.2.2_r1, 2.2.1_r1, 2.2_r1.1, 2.1_r2, 2.0_r1, 1.6_r2,1.5_r4
To download & extract source from repo objects
$ repo sync
(If you have repo objects in zip
1. Extract it
2. Execute $repo sync)
******************* Compiling Android Source ********************
$ source build/envsetup.sh
$ choosecombo
Which would you like? [1] 1 (release)
Which product would you like? [full] full
Which would you like? [eng] eng
******************* Compiling Android Source ********************
$ source build/envsetup.sh
$ choosecombo
Which would you like? [1] 1 (release)
Which product would you like? [full] full
Which would you like? [eng] eng
OR use
$lunch full-eng
To build for ARM Target
$ make -j4
To build for x86 Target iso
$ make -j4 iso_img TARGET_PRODUCT=generic_x86
****************** Downloading and Compiling Linux Kernel *********************
To download goldfish kernel source
$ git clone https://android.googlesource.com/kernel/goldfish.git
To print downloaded branch
$ git branch
To list all remote available branches
$ git branch -r
origin/HEAD -> origin/android-2.6.27
origin/android-2.6.25
origin/android-2.6.27
origin/android-2.6.29
origin/android-2.6.32
origin/android-goldfish-2.6.27
origin/android-goldfish-2.6.29
To extract from object
$ git checkout --track -b android-goldfish-2.6.29 origin/android-goldfish-2.6.29
To configure kernel build
$ make O= ~/path_to_kernel_folder/kernel menuconfig
To build for x86 by default
$ make O=~/path_to_kernel_folder/kernel
To install on current system
$ sudo make O=~/path_to_kernel_folder/kernel modules_install install
To select configuration file
$ make ARCH=arm goldfish_defconfig
To build for ARM by default
$ make ARCH=arm CROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-
Kernel Images can be: Image, zImage, bzImage, vmlinuz
Initial Ramdisk can be: initrd.img, ramdisk.img
*************************** To run on Emulator ******************************
Method 1:
$ source build/envsetup.sh
$ lunch full-eng
$ emulator
Method 2:
$ emulator -sysdir ../../../target/product/generic -data ../../../target/product/generic/userdata.img -system ../../../target/product/generic/system.img -kernel ../../../../kernel/arch/arm/boot/zImage -ramdisk ../../../target/product/generic/ramdisk.img -shell -avd vvv -skin 320x480
**************************** To Flash Unlocked Device **********************************
$adb reboot bootloader => Shows Tux image in Homescreen
$sudo fastboot devices => Shows Attached Device
$sudo ./script.sh => Flash Images to Device
###################### script.sh ########################
#!/bin/sh
echo Starting Fastboot.....
##### Fash Modem bootloader & build #####
#fastboot flash sbl1 sbl1.mbn
#fastboot flash sbl2 sbl2.mbn
#fastboot flash sbl3 sbl3.mbn
#fastboot flash rpm rpm.mbn
#fastboot flash tz tz.mbn
#fastboot flash modem NON-HLOS.bin
#fastboot flash mdm fat.bin
$lunch full-eng
To build for ARM Target
$ make -j4
To build for x86 Target iso
$ make -j4 iso_img TARGET_PRODUCT=generic_x86
****************** Downloading and Compiling Linux Kernel *********************
To download goldfish kernel source
$ git clone https://android.googlesource.com/kernel/goldfish.git
To print downloaded branch
$ git branch
To list all remote available branches
$ git branch -r
origin/HEAD -> origin/android-2.6.27
origin/android-2.6.25
origin/android-2.6.27
origin/android-2.6.29
origin/android-2.6.32
origin/android-goldfish-2.6.27
origin/android-goldfish-2.6.29
To extract from object
$ git checkout --track -b android-goldfish-2.6.29 origin/android-goldfish-2.6.29
To configure kernel build
$ make O= ~/path_to_kernel_folder/kernel menuconfig
To build for x86 by default
$ make O=~/path_to_kernel_folder/kernel
To install on current system
$ sudo make O=~/path_to_kernel_folder/kernel modules_install install
To select configuration file
$ make ARCH=arm goldfish_defconfig
To build for ARM by default
$ make ARCH=arm CROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-
Kernel Images can be: Image, zImage, bzImage, vmlinuz
Initial Ramdisk can be: initrd.img, ramdisk.img
*************************** To run on Emulator ******************************
Method 1:
$ source build/envsetup.sh
$ lunch full-eng
$ emulator
Method 2:
$ emulator -sysdir ../../../target/product/generic -data ../../../target/product/generic/userdata.img -system ../../../target/product/generic/system.img -kernel ../../../../kernel/arch/arm/boot/zImage -ramdisk ../../../target/product/generic/ramdisk.img -shell -avd vvv -skin 320x480
**************************** To Flash Unlocked Device **********************************
$adb reboot bootloader => Shows Tux image in Homescreen
$sudo fastboot devices => Shows Attached Device
$sudo ./script.sh => Flash Images to Device
###################### script.sh ########################
#!/bin/sh
echo Starting Fastboot.....
##### Fash Modem bootloader & build #####
#fastboot flash sbl1 sbl1.mbn
#fastboot flash sbl2 sbl2.mbn
#fastboot flash sbl3 sbl3.mbn
#fastboot flash rpm rpm.mbn
#fastboot flash tz tz.mbn
#fastboot flash modem NON-HLOS.bin
#fastboot flash mdm fat.bin
##### Flash Android bootloader & build #####
fastboot flash aboot emmc_appsboot.mbn
fastboot flash userdata userdata.img
fastboot flash system system.img
fastboot flash boot boot.img
fastboot flash cache cache.img
fastboot flash recovery recovery.img
fastboot flash persist persist.img
fastboot flash tombstones tombstones.img
fastboot continue
#################### End of script.sh #######################
******************** USB Debugging Using Hardware Device ********************
$ sudo vi /etc/udev/rules.d/51-android.rules
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", MODE="0666", GROUP="plugdev" => for Samsung Devices
SUBSYSTEM=="usb", ATTR{idVendor}=="05c6", MODE="0666", GROUP="plugdev" => for Qualcomm Devices
$ chmod a+r /etc/udev/rules.d/51-android.rules
$ sudo /etc/init.d/udev restart
$ sudo adb kill-server
$ sudo adb devices
*************************** Setting Path on Linux System ************************
export PATH="$HOME/adt-bundle/sdk/tools:$HOME/adt-bundle/sdk/platform-tools:$PATH"
#echo 'export PATH=/opt/java/64/jdk1.6.0_29/bin:$PATH' >> ~/.bashrc
To get kernel version from kernel source tree:
$ make kernelversion
To restore repo files:
$ repo diff > difference.patch
$ patch -p0 filepath -R < difference.patch
Also you can remove files that don't need to be restored from difference.patch
OR
To reset repo changes
$ git reset --hard
To see git changes:
$ sudo vi /etc/udev/rules.d/51-android.rules
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", MODE="0666", GROUP="plugdev" => for Samsung Devices
SUBSYSTEM=="usb", ATTR{idVendor}=="05c6", MODE="0666", GROUP="plugdev" => for Qualcomm Devices
$ chmod a+r /etc/udev/rules.d/51-android.rules
$ sudo /etc/init.d/udev restart
$ sudo adb kill-server
$ sudo adb devices
*************************** Setting Path on Linux System ************************
export PATH="$HOME/adt-bundle/sdk/tools:$HOME/adt-bundle/sdk/platform-tools:$PATH"
#echo 'export PATH=/opt/java/64/jdk1.6.0_29/bin:$PATH' >> ~/.bashrc
To get kernel version from kernel source tree:
$ make kernelversion
To restore repo files:
$ repo diff > difference.patch
$ patch -p0 filepath -R < difference.patch
Also you can remove files that don't need to be restored from difference.patch
OR
To reset repo changes
$ git reset --hard
To see git changes:
$ git
status
To run device through NFS and TFTP:
To run device through NFS and TFTP:
Once <serverip>, <distro>, <project>, and <machine> variables setup, UBoot will search on the server of
address <serverip>:
- a kernel image uImage in the directory "/srv/tftp/<distro>/<project>/<machine>" accessible by TFTP.
- a rootfs in the directory "/srv/nfs/<distro>/<project>/<machine>" accessible by NFS.
setenv nfs-bootargs 'setenv bootargs ${bootargs-base} root=/dev/nfs nfsroot=${serverip}:/srv/nfs/${distro}/${project}/${machine} ; run addip'
setenv nfs-boot 'if ping ${serverip}; then run nfs-bootargs; tftp 0x80000000 ${distro}/${project}/${machine}/uImage; bootm; fi;'
setenv nfs-boot 'if ping ${serverip}; then run nfs-bootargs; tftp 0x80000000 ${distro}/${project}/${machine}/uImage; bootm; fi;'
No comments:
Post a Comment