Pull to refresh

Как выкачать исходники Android под Windows

Development for Android
В недавнем посте о восстановлении работы git-репозитория Android многие жаловались, что пока нет веб-интерфейса доступа к исходникам из Windows тоже нет. Это не так, git под Windows есть и их можно легко забрать. Единственное что не работает без пинка — это repo, который весьма удобен для выкачивания сырцов. Однако пинок требуется минимальный, имя пинку — Cygwin. Этот пост о том, как поставить Cygwin с нуля, какие пакеты выбрать для работоспособности repo и как всё выкачать пользователям Windows. Для понимания поста требуется умение работать с консолью на базовом уровне, понимать что такое приглашение, уметь печатать текст и жать Enter.



Cygwin — это реализация POSIX юзерленда для Windows с кучей привычных утилит на все случаи жизни. Инсталлятор бесплатно доступен для скачивания на домашней странице проекта — www.cygwin.com/install.html, называется просто setup.exe и выполняет роль графического пакетного менеджера. Скачав инсталлятор, запускаем его. Сначала куча стандартных вопросов: куда ставить, куда качать архивы, выбор ближайшего к вам зеркала и так далее. После указания всех опций надо выбрать нужные пакеты. Для работы repo требуется минимальный набор, поэтому спокойно оставляем дефолты и выбираем следующие бинарные пакеты: python, git, curl, gnupg и openssl. Все дополнительные зависимости в виде библиотек и вспомогательных бинариков будут добавлены в набор автоматически, поэтому о них можно не беспокоиться. Жмём Next, нам покажут список дополнительных зависимостей, соглашаемся и ждём завершения прогресса. Не сложно, правда ли? Но для полноценной работы надо подкрутить несколько болтиков.

Первым делом надо починить релокацию бинариков, почему-то она побитая. Для этого открываем обычную виндовую консольку (Win+R, cmd, Enter), топаем в папку с бинариками cygwin (например, C:\cygwin\bin) и запускаем ash. Теперь запускаем процесс релокации: /bin/rebaseall. Закончится он быстро, но ничего не напишет. Вобщем, увидели приглашение консольки снова — процесс завершился. Виндовую консольку можно закрыть. Теперь вся работа будет вестись в bash, запускаем его (Start -> Cygwin -> Cygwin Bash Shell) и читаем дальше.

Далее надо установить корневые сертификаты, cygwin поставляется без них. Работаем в баше, не забыли? И так:

$ mkdir -p /usr/ssl/certs
$ cd /usr/ssl/certs
$ curl http://curl.haxx.se/ca/cacert.pem | awk 'split_after==1{n++;split_after=0} /-----END CERTIFICATE-----/ {split_after=1} {print > "cert" n ".pem"}'
$ c_rehash


Знак доллара печатать не надо, если что. Теперь можно следовать оффициальной документации Google. Создаём папку для repo и настраиваем окружение:

$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod a+x ~/bin/repo


Отмечу, что при каждом новом открытии bash строчку $ PATH=~/bin:$PATH придётся вводить заново. Чтобы этого не делать, отредактируйте файл .bash_profile (C:\cygwin\home\%USERNAME%\.bash_profile), там уже всё есть, надо только раскомментировать (убрать символ # в начале строк) чтобы получилось:

# Set PATH so it includes user's private bin if it exists
if [ -d "${HOME}/bin" ] ; then
PATH="${HOME}/bin:${PATH}"
fi


Теперь создадим папку для исходников, проинициализируем репозиторий ветки master и выкачаем исходники:

$ cd ~/
$ mkdir android
$ cd android
$ repo init -u https://android.googlesource.com/platform/manifest
$ repo sync


Если вам необходимо выкачать исходники из другой ветки, то в доках всё написано. Так же в доках гугла есть информация про проверку исходников и куча всего интересного, но эта информация уже к теме поста не относится.

Вывод: выкачать исходники Android под Windows также просто, как и под Linux. Устанавливать дополнительные пакеты придётся в обоих случаях, а под виндой есть всего два маленьких дополнительных шага — релокация адресов бинариков и установка корневых сертификатов для cygwin.

А теперь — ДИСКОТЕКА!

Tags:androidwindowssdkopen sourcecygwingitrepo
Hubs: Development for Android
Total votes 27: ↑18 and ↓9 +9
Views7.7K

Popular right now

Android developer
from 130,000 ₽СберЛогистикаRemote job
Android developer
from 120,000 to 230,000 ₽EmphasoftRemote job
Android Developer
from 250,000 to 350,000 ₽AvatarifyRemote job
Android developer (Kotlin)
from 180,000 to 300,000 ₽MercuryoRemote job
Senior Android-developer
from 200,000 ₽KRITСанкт-ПетербургRemote job