Есть у меня мой старенький телефон HTC Wildfire, который уже успел повидать огромную кучу самых разных прошивок, начиная от оффициальной 2.1, заканчивая 2.3 CyanogenMOD. Всё, в принципе, нравилось, но в какой-то момент захотел я собрать сам свой андроид, с блекджеком и шлюхами приложениями что мне надо и, может быть, со своими усовершенствованиями в будущем :)
Поскольку начинать надо с чего-нибудь попроще, решил я просто скомпилировать сам последнюю ночнушку CyanogenMOD. О том, как сделать это с нуля, и будет мой пост.
Всё делалось по инструкции с официального сайта http://wiki.cyanogenmod.org/w/Build_for_buzz, инструкция отличная, за что им огромное спасибо.
Эта же статься мой вольный перевод в законспектированном виде.
Итак, по порядку:
Всё делалось на 64-битной Linux Mint 14
Первым делом идём на сайт гугля и качаем SDK:
Теперь надо доустановить необходимые в дальнейшем пакеты:
И ещё, в добавок к 64-битной системе (у меня почему0то не нашёл пакет gcc-4.7-multilib, поэтому я его просто не стал качать):
Далее надо создать 2 дополнительные директории, где будут храниться наши файлы:
Теперь устанавливаем команду repo
Теперь добавляем глобальную переменную, чтобы можно было запускать комманду repo из любой папки, а не только из ~/bin:
По совету из того же оригинального Wiki, чтобы не вводить каждый раз эту команду при открытии консоли, можно добавить её в файл ~/.bashrc.
Введём следующую команду для инициализации репозитория циана:
Надо будет ввести, своё имя (или ник) и e-mail адрес.
Синхронизируем репозиторий с нашим компом:
С помощью этой команды начнут скачиваться исходники на комп, также в дальнейшем исходники будут сверяться с существующими на сервере, и если на сервере появятся новее, скачиваться на комп.
Теперь запасёмся терпения, поскольку качаться всё это дело будет очень долго.
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
После процедуры синхронизации тянем RomManager:
До этого момента процесс был одинаковым для всех устройств одинаковым. Теперь пишу конкретно для своего Огонька. Переходим в директорию ~/android/system:
После ввода последней команды появится список доступных девайсов, там выбираем htc_buzz-userdebug. Жмём цифру, соответствующую девайсу.
Может случиться, что такого девайса нет в списке. Тогда делаем одно из двух:
У меня почему-то начала выскакивать ошибка “device/htc/ace/ace.mk” does not exist
Не знаю в чём была проблема, но пришлось сделать следующий ход:
Залез в директорию ~/android/system/vendor/cyanogen/products и немного отредактировал файл AndroidProducts.mk, в котором удалил все строки, оставив следующее:
После этого всё заработало :)
Теперь подключаем свой мобильник к компу через УСБ кабель и выполняем команду:
У меня сразу выпало 2 ошибки, первой оказалась "command not found", которая решилась простым добавлением строки "export PATH=${PATH}:<sdk>/tools:<sdk>/platform-tools" в файл ~/.bashrc. Вместо SDK надо подставить свой путь до папки с SDK. Вторая ошибка вещала о "error: insufficient permissions for device", решил таким образом:
Ну а теперь остаётся всего лишь скомпилить.
Включаем кэширование для ускорения компиляции:
Собсно, компиляция:
Ждём n-ое количество минут/часов, после чего вводим
Попадаем в папку, где находится наш образ *.img, который прошиваем обычным образом в рекавери.
Вуаля!
Поскольку начинать надо с чего-нибудь попроще, решил я просто скомпилировать сам последнюю ночнушку CyanogenMOD. О том, как сделать это с нуля, и будет мой пост.
Всё делалось по инструкции с официального сайта http://wiki.cyanogenmod.org/w/Build_for_buzz, инструкция отличная, за что им огромное спасибо.
Эта же статься мой вольный перевод в законспектированном виде.
Итак, по порядку:
Всё делалось на 64-битной Linux Mint 14
Первым делом идём на сайт гугля и качаем SDK:
http://developer.android.com/sdk/index.htmlРаспаковываем архив в домашний каталог или куда больше нравится.
Теперь надо доустановить необходимые в дальнейшем пакеты:
$ sudo apt-get install git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.8-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev openjdk-6-jre openjdk-6-jdk pngcrush schedtool
И ещё, в добавок к 64-битной системе (у меня почему0то не нашёл пакет gcc-4.7-multilib, поэтому я его просто не стал качать):
$ sudo apt-get install g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline-gplv2-dev gcc-4.7-multilib g++-4.5-multilib
Далее надо создать 2 дополнительные директории, где будут храниться наши файлы:
$ mkdir -p ~/bin
$ mkdir -p ~/android/system
Теперь устанавливаем команду repo
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
Теперь добавляем глобальную переменную, чтобы можно было запускать комманду repo из любой папки, а не только из ~/bin:
$ export PATH=${PATH}:~/bin
По совету из того же оригинального Wiki, чтобы не вводить каждый раз эту команду при открытии консоли, можно добавить её в файл ~/.bashrc.
Введём следующую команду для инициализации репозитория циана:
$ cd ~/android/system/
$ repo init -u git://github.com/CyanogenMod/android.git -b gingerbread
Надо будет ввести, своё имя (или ник) и e-mail адрес.
Синхронизируем репозиторий с нашим компом:
$ repo sync
С помощью этой команды начнут скачиваться исходники на комп, также в дальнейшем исходники будут сверяться с существующими на сервере, и если на сервере появятся новее, скачиваться на комп.
Теперь запасёмся терпения, поскольку качаться всё это дело будет очень долго.
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
После процедуры синхронизации тянем RomManager:
$ cd ~/android/system/vendor/cyanogen$ ./get-rommanager
До этого момента процесс был одинаковым для всех устройств одинаковым. Теперь пишу конкретно для своего Огонька. Переходим в директорию ~/android/system:
$ . build/envsetup.sh
$ lunch
После ввода последней команды появится список доступных девайсов, там выбираем htc_buzz-userdebug. Жмём цифру, соответствующую девайсу.
Может случиться, что такого девайса нет в списке. Тогда делаем одно из двух:
$ lunch cm_buzz-userdebugили
$ lunch full_buzz-userdebug
У меня почему-то начала выскакивать ошибка “device/htc/ace/ace.mk” does not exist
Не знаю в чём была проблема, но пришлось сделать следующий ход:
Залез в директорию ~/android/system/vendor/cyanogen/products и немного отредактировал файл AndroidProducts.mk, в котором удалил все строки, оставив следующее:
PRODUCT_MAKEFILES := \
$(LOCAL_DIR)/cyanogen_buzz.mk \
После этого всё заработало :)
Теперь подключаем свой мобильник к компу через УСБ кабель и выполняем команду:
$ ./extract-files.sh
У меня сразу выпало 2 ошибки, первой оказалась "command not found", которая решилась простым добавлением строки "export PATH=${PATH}:<sdk>/tools:<sdk>/platform-tools" в файл ~/.bashrc. Вместо SDK надо подставить свой путь до папки с SDK. Вторая ошибка вещала о "error: insufficient permissions for device", решил таким образом:
$ su
$ cd android-sdk-linux-linux/tools
$ ./adb kill-server
$ ./adb start-server
$ ./adb devices
$ exit
Ну а теперь остаётся всего лишь скомпилить.
Включаем кэширование для ускорения компиляции:
$ export USE_CCACHE=1
Собсно, компиляция:
$ croot
$ brunch buzz
Ждём n-ое количество минут/часов, после чего вводим
$ cd $OUT
Попадаем в папку, где находится наш образ *.img, который прошиваем обычным образом в рекавери.
Вуаля!
Полезно. Спасибо огромное прям, то что искал)) кстати желание то же самое только с кит катом) аппарат HTC One X
ОтветитьУдалитьТёмный лес
ОтветитьУдалитьТёмный лес
ОтветитьУдалить