рдзреНрдпрд╛рди (!) рдпрд╣ рдирд┐рд░реНрджреЗрд╢ рдЖрдкрдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдлрд░реНрдорд╡реЗрдпрд░ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдЖрдкрдХреЛ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рджреЗрдЧрд╛редрдиреЛрдЯ: рд╕реНрд░реЛрдд рд▓рдЧрднрдЧ 6 рдЬреАрдмреА рд╣реИрдВред рдкреВрд░реНрдг рдмрд┐рд▓реНрдб рдХрд┐рдЯ рдХреЗ рд▓рд┐рдП 1 рдмрд┐рд▓реНрдб рдФрд░ 80 GB (рдпрд╛ рдЕрдзрд┐рдХ) рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рд▓рдЧрднрдЧ 25 GB рдЦрд╛рд▓реА рд╕реНрдерд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИредрдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЖрдк рдЙрдмрдВрдЯреВ рдкрд░ рдЬреЗрд▓реА рдмреАрди рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ, рдЖрдкрдХреЛ рдПрдХ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдЯреВрд▓ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдЪрд░рдгреЛрдВ рд╕реЗ рдЧреБрдЬрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдирд┐рд░реНрджреЗрд╢:1) рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
-JDK 6 рдпрджрд┐ рдЖрдк рдЬреЗрд▓реА рдмреАрди рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЖрдк рдЗрд╕реЗ
java.sun.com рдпрд╛ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
$ sudo add-apt-repository "deb archive.canonical.com lucid partner"
$ sudo apt-get update
$ sudo apt-get install sun-java6-jdk
-рдкреАрдереЙрди 2.4 - 2.7, рдЬрд┐рд╕реЗ
python.org рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛:
$ sudo apt-get install python
-Get 1.7 рдпрд╛ рдмрд╛рдж рдореЗрдВред рдЖрдк рдЗрд╕реЗ
Git-scm.com рдпрд╛:
$ sudo apt-get install git-core
2) рдЖрд╡рд╢реНрдпрдХ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред 64-рдмрд┐рдЯ (рдЕрдиреБрд╢рдВрд╕рд┐рдд)
$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \
x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \
libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \
libxml2-utils
Ubuntu рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ, рдЬреИрд╕реЗ рдХрд┐ 11.10, рдЖрдкрдХреЛ рдирд┐рдореНрди рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ:
$ sudo ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so
рдЙрдмрдВрдЯреВ 12.04 рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреЗрд╡рд▓ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд╕рдорд░реНрдерди рд╣реИ рдФрд░ рдорд╛рд╕реНрдЯрд░ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдиреНрдп рд╢рд╛рдЦрд╛рдУрдВ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рд╣реИред
$ sudo apt-get install git-core 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 openjdk-6-jdk 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
3) USB рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ
$ gksudo gedit /etc/udev/rules.d/51-android.rules
рдЗрд╕реЗ рдЦрд╛рд▓реА рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрджрд░ рдкреЗрд╕реНрдЯ рдХрд░реЗрдВ
#Acer
SUBSYSTEM=="usb", ATTR{idVendor}=="0502", MODE="0666"
#ASUS
SUBSYSTEM=="usb", ATTR{idVendor}=="0b05", MODE="0666"
#Dell
SUBSYSTEM=="usb", ATTR{idVendor}=="413c", MODE="0666"
#Foxconn
SUBSYSTEM=="usb", ATTR{idVendor}=="0489", MODE="0666"
#Garmin-Asus
SUBSYSTEM=="usb", ATTR{idVendor}=="091E", MODE="0666"
#Google
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666"
#HTC
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", MODE="0666"
#Huawei
SUBSYSTEM=="usb", ATTR{idVendor}=="12d1", MODE="0666"
#K-Touch
SUBSYSTEM=="usb", ATTR{idVendor}=="24e3", MODE="0666"
#KT Tech
SUBSYSTEM=="usb", ATTR{idVendor}=="2116", MODE="0666"
#Kyocera
SUBSYSTEM=="usb", ATTR{idVendor}=="0482", MODE="0666"
#Lenevo
SUBSYSTEM=="usb", ATTR{idVendor}=="17EF", MODE="0666"
#LG
SUBSYSTEM=="usb", ATTR{idVendor}=="1004", MODE="0666"
#Motorola
SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", MODE="0666"
#NEC
SUBSYSTEM=="usb", ATTR{idVendor}=="0409", MODE="0666"
#Nook
SUBSYSTEM=="usb", ATTR{idVendor}=="2080", MODE="0666"
#Nvidia
SUBSYSTEM=="usb", ATTR{idVendor}=="0955", MODE="0666"
#OTGV
SUBSYSTEM=="usb", ATTR{idVendor}=="2257", MODE="0666"
#Pantech
SUBSYSTEM=="usb", ATTR{idVendor}=="10A9", MODE="0666"
#Philips
SUBSYSTEM=="usb", ATTR{idVendor}=="0471", MODE="0666"
#PMC-Sierra
SUBSYSTEM=="usb", ATTR{idVendor}=="04da", MODE="0666"
#Qualcomm
SUBSYSTEM=="usb", ATTR{idVendor}=="05c6", MODE="0666"
#SK Telesys
SUBSYSTEM=="usb", ATTR{idVendor}=="1f53", MODE="0666"
#Samsung
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", MODE="0666"
#Sharp
SUBSYSTEM=="usb", ATTR{idVendor}=="04dd", MODE="0666"
#Sony Ericsson
SUBSYSTEM=="usb", ATTR{idVendor}=="0fce", MODE="0666"
#Toshiba
SUBSYSTEM=="usb", ATTR{idVendor}=="0930", MODE="0666"
#ZTE
SUBSYSTEM=="usb", ATTR{idVendor}=="19D2", MODE="0666"
4) рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╣реЗрдЬреЗрдВ рдФрд░ рдЗрд╕реЗ рдмрдВрдж рдХрд░реЗрдВ, рдФрд░ рдлрд┐рд░ рдирд┐рдореНрди рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБ:
$ sudo chmod a+r /etc/udev/rules.d/51-android.rules
5) рд░реЗрдкреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:
$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
6) рднрд╛рдЧреЛ рд░реЗрдкреЛ:
$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY
$ repo init -u android.googlesource.com/platform/manifest -b android-4.1.1_r1
6.1) рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рддреИрдпрд╛рд░ рд░реЗрдкреЛ рд╣реИрдВ:
$ cd WORKING_DIRECTORY
$ repo init -b android-4.1.1_r1
$ repo sync
7) рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдЕрдкрдирд╛ рдирд╛рдо рдФрд░ рдИрдореЗрд▓ рдкрддрд╛ рджрд░реНрдЬ рдХрд░реЗрдВред
8) рдлрд╛рдЗрд▓реЗрдВ рдЬрдорд╛ рдХрд░реЗрдВ:
$ repo sync
9) рд╕рдВрдХрд▓рди:
$ source build/envsetup.sh
рдпрд╛
$ . build/envsetup.sh
10) рд▓реЙрдиреНрдЪ:
$ lunch
11) рдЕрдкрдирд╛ рдбрд┐рд╡рд╛рдЗрд╕ рдЪреБрдиреЗрдВ
12) рдЕрдм рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ ('#' рдпрд╣ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛрд░ рдкреНрд▓рд╕ 1 рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореЗрд░реЗ рдкрд╛рд╕ 2 рдХреЛрд░ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╣реИ, рдлрд┐рд░ рдореИрдВ 'рдореЗрдХ -j3' рд▓рд┐рдЦрддрд╛ рд╣реВрдВ)
$ make -j#
~ рд╕реВрдЪреА рдореЗрдВ рдбрд┐рд╡рд╛рдЗрд╕ рдХреИрд╕реЗ рдЬреЛрдбрд╝реЗрдВ ~1) рдЙрди рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдЧрд┐рддреБрдм рдкрд░ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред (рдореЗрд░реЗ рд▓рд┐рдП, рдпрд╣ рдПрдЪрдЯреАрд╕реА рдИрд╡реЛ 3 рдбреА-рд╕реАрдбреАрдПрдордП рд╣реИ)
2) рдЕрдм рдЙрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдкрд░ рдЬрд╛рдПрдВ рдЬрд╣рд╛рдВ рдЖрдк рдбрд┐рд╡рд╛рдЗрд╕ рдЯреНрд░реА рдХреЛ рдХреНрд▓реЛрди рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ:
$ cd WORKING_DIRECTORY/device
$ mkdir htc
3) рд░рд┐рдореЛрдЯ рд╕реЗ рд▓реЛрдХрд▓ рддрдХ рдЧреАрдерд╣рдм рд╕реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдЯреНрд░реА рдХреА рдХреНрд▓реЛрдирд┐рдВрдЧ:
(рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рдЖрдкрдХреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдорд╛рдирдХ рдирд╛рдо рдХреЗ рд╕рдорд╛рди рдирд╛рдо рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: Nexus One [рдкреИрд╢рди], Nexus S [crespo] Motorola Droid [sholes], HTC рдЕрддреБрд▓реНрдп [inc], рдЖрджрд┐)
$ git clone git://github.com/CyanogenMod/android_device_htc_shooter.git shooter
4) рдЕрдм рдлреЛрд▓реНрдбрд░ рдкрд░ рдЬрд╛рдПрдВ:
$ cd shooter
5) рдлреЛрди рдХреЛ рдХрдВрдкреНрдпреВрдЯрд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ USB рдХреЗ рд▓рд┐рдП рдбрд┐рдмрдЧрд┐рдВрдЧ рдЪрд╛рд▓реВ рд╣реИ рдФрд░ adb рдареАрдХ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред
6) рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рдЕрдкрдиреА рдлрд╛рдЗрд▓реЗрдВ рдирд┐рдХрд╛рд▓реЗрдВ:
$ ./extract-files.sh
7) рдЕрдкрдиреЗ рдШрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкрд░ рд▓реМрдЯреЗрдВ
$ cd ~/WORKING_DIRECTORY
8) рд╕рдВрдХрд▓рди рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░:
$ source build/envsetup.sh
рдпрд╛
$ . build/envsetup.sh
9) рдЕрдкрдиреЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:
$ lunch
10) рдЕрдкрдирд╛ рдбрд┐рд╡рд╛рдЗрд╕ рдЪреБрдиреЗрдВ
11) рд╕рдВрдХрд▓рди:
$ make -j#
рдпрд╛ рдлрд╝рд░реНрдорд╡реЗрдпрд░ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдк рд╕рдВрдЧреНрд░рд╣ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП:
$ make -j# otapackage
рдирддреАрдЬрддрди, рд╣рдореЗрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХрд▓рд┐рдд рдЬреЗрдмреА рдорд┐рд▓рддрд╛ рд╣реИ, рдЕрдм рдЖрдк рдЗрд╕реЗ рдЕрдкрдиреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреНрдпрд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдлрд┐рд░ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдХрд░реЗрдВ, рдПрдУрдПрд╕рдкреА рдЖрджрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрдкрдирд╛ рдлрд░реНрдорд╡реЗрдпрд░ рдмрдирд╛рдПрдВред