Писал для 4pda.ru для телефона Samsung GT-I9001 Galaxy S Plus, может, кому будет полезно.
Данное руководство предполагает, что читающий обладает базовыми навыками использования linux (использование консоли, получение прав рута, установка программ, создание/редактирование системных файлов)
Зависимости и UDEV
Сначала нужно установить sun-jdk. Стоит отметить, что оракл недавно менял лицензию, поэтому в основном репозитории его может не быть. Для ubuntu достаточно установить sun-java6-jdk, но, если планирутся пересобирать ядро, то нужно будет установить дополнительные зависимости.
Для 32/64 битной ubuntu нужно выполнить следующее:
Дополнительно, если у вас 64 бита, нужно установить 32х битные библиотеки
Теперь, чтобы у обычных пользователей были права на использование adb, нужно создать соответствующее правило udev
После этого жмём Ctrl+D, чтобы выйти из рутовской сессии.
Создаём своё ядро
Качаем гугловский sdk. Для этого идём на http://developer.android.com/sdk/index.html и качаем версию под linux http://dl.google.com/android/android-sdk_r16-linux.tgz
После этого распаковываем файл
Идём в папку android-sdk-linux/tools и запускаем файл android
И устанавливаем Android SDK Platform tools
После этого появится папка android-sdk-linux/platform-tools, где и находится adb. Для удобства, есть смысл добавить эту папку в PATH, чтобы иметь быстрый доступ к adb (замените путь на свой).
Теперь можно подключать телефон в режиме отладки USB (Настройки - приложения - разработка - включить отладку USB) к компьютеру.
По команде adb devices должен показаться ваш телефон.
Теперь возьмём с телефона текущий конфиг ядра.
Теперь распаковываем его при помощи gunzip и переименовываем в .config (стоит обратить внимание, что файл, начинающийся с точки - скрытый)
Идём на http://opensource.samsung.com и качаем исходники ядра, либо пользуемся git для получения. После этого распаковываем скачанный архив и копируем туда наш файл .config.
Теперь нам нужен тулчейн для сборки под arm. Для ubuntu можно скачать отсюда, затем распаковать.
В gentoo можно воспользоваться командой crossdev --target arm-none-linux-gnueabi.
Открываем Makefile и ищем там переменную CROSS_COMPILE и заменяем значение на тот путь, где находится наш распакованный (или установленный тулчейн). У меня этот путь
Теперь обычным make -jX, где X - число процессоров(ядер)+1 собираем ядро. Если собралось, то Вы — молодец. Можно накладывать патчи и что-то менять в ядре.
После сборки ядро находится Kernel/arch/arm/boot/zImage.
Модификация прошивки.
Сначала при помощи CWM нужно сделать бэкап прошивки.
После этого идём на https://github.com/dsixda/Android-Kitchen/archives/master и качаем кухню. Samsung GT-I9001 поддерживается с версии 0.182.
Качаем, распаковываем.
Копируем файлы, полученные при бэкапе из CWM в папку original_update.
Запускаем кухню
Выбор осуществляется вводом цифр/букв, которые написаны в начале строки.
Устанавливаем рабочий каталог, добавляем busybox. Затем жмём 0 и заходим в advanced options — тут можно сделать деодекс прошивки. Это нужно для того, чтобы можно было изменять файлы прошивки. Также стоит включить поддержку /etc/init.d.
После всего этого можно заняться кастомизацией интерфейса. Это делается очень просто - идём на http://uot.dakra.lt/kitchen/, выбираем, что нам нужно сделать и через некоторое время получаем готовую прошивку. Единственное, на что стоит обратить внимание — в пункте File Upload нужно выбрать:
update-binary — Type Galaxy
Upload system files — заливаем framework-res.apk, SystemUI.apk, twframework-res.apk.
После этого жмём submit и ждём, когда модификации будут готовы.
На выходе мы получаем zip-файл, который можно прошить через CWM. Но можно вынуть файлы из архива и скопировать их в нашу распакованную прошивку. Она находится в папке WORKING_число_число.
Установка нового ядра
Выбираем 20 - Tools for boot image (unpack/re-pack/etc.), затем распаковываем boot.img. У нас появится папка BOOT-EXTRACTED, где находится ядро и распакованный рамдиск, где можно подредактировать загрузочные скрипты и параметры. Делаем Build boot.img from BOOT-EXTRACTED folder (for working folder) и после этого можно собирать прошивку.
В результате у нас готов подписанный архив, который можно ставить из recovery.
Примечание 1. У меня нету под руками ubuntu, поэтому с именами пакетов мог ошибиться. Все остальные действия не сильно зависят от используемого linux.
Данное руководство предполагает, что читающий обладает базовыми навыками использования linux (использование консоли, получение прав рута, установка программ, создание/редактирование системных файлов)
Зависимости и UDEV
Сначала нужно установить sun-jdk. Стоит отметить, что оракл недавно менял лицензию, поэтому в основном репозитории его может не быть. Для ubuntu достаточно установить sun-java6-jdk, но, если планирутся пересобирать ядро, то нужно будет установить дополнительные зависимости.
Для 32/64 битной ubuntu нужно выполнить следующее:
sudo -s
apt-get install git-core gnupg sun-java6-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev
Дополнительно, если у вас 64 бита, нужно установить 32х битные библиотеки
ia32-libs lib32z1-dev lib32ncurses5-dev gcc-multilib g++-multilib
Теперь, чтобы у обычных пользователей были права на использование adb, нужно создать соответствующее правило udev
echo 'SUBSYSTEM=="usb", SYSFS{idVendor}=="04e8", MODE="0666"' > /etc/udev/rules.d/90-adb.rules
После этого жмём Ctrl+D, чтобы выйти из рутовской сессии.
Создаём своё ядро
Качаем гугловский sdk. Для этого идём на http://developer.android.com/sdk/index.html и качаем версию под linux http://dl.google.com/android/android-sdk_r16-linux.tgz
После этого распаковываем файл
tar xzf android-sdk*
Идём в папку android-sdk-linux/tools и запускаем файл android
./android
И устанавливаем Android SDK Platform tools
После этого появится папка android-sdk-linux/platform-tools, где и находится adb. Для удобства, есть смысл добавить эту папку в PATH, чтобы иметь быстрый доступ к adb (замените путь на свой).
echo 'PATH="/home/shtsh/phone/android-sdk-linux/platform-tools:${PATH}"' >> ~/.bashrc
Теперь можно подключать телефон в режиме отладки USB (Настройки - приложения - разработка - включить отладку USB) к компьютеру.
По команде adb devices должен показаться ваш телефон.
Теперь возьмём с телефона текущий конфиг ядра.
adb pull /proc/config.gz
Теперь распаковываем его при помощи gunzip и переименовываем в .config (стоит обратить внимание, что файл, начинающийся с точки - скрытый)
Идём на http://opensource.samsung.com и качаем исходники ядра, либо пользуемся git для получения. После этого распаковываем скачанный архив и копируем туда наш файл .config.
Теперь нам нужен тулчейн для сборки под arm. Для ubuntu можно скачать отсюда, затем распаковать.
В gentoo можно воспользоваться командой crossdev --target arm-none-linux-gnueabi.
Открываем Makefile и ищем там переменную CROSS_COMPILE и заменяем значение на тот путь, где находится наш распакованный (или установленный тулчейн). У меня этот путь
CROSS_COMPILE ?= /usr/bin/arm-none-linux-gnueabi-
Теперь обычным make -jX, где X - число процессоров(ядер)+1 собираем ядро. Если собралось, то Вы — молодец. Можно накладывать патчи и что-то менять в ядре.
После сборки ядро находится Kernel/arch/arm/boot/zImage.
Модификация прошивки.
Сначала при помощи CWM нужно сделать бэкап прошивки.
После этого идём на https://github.com/dsixda/Android-Kitchen/archives/master и качаем кухню. Samsung GT-I9001 поддерживается с версии 0.182.
Качаем, распаковываем.
Копируем файлы, полученные при бэкапе из CWM в папку original_update.
Запускаем кухню
./menu
Выбор осуществляется вводом цифр/букв, которые написаны в начале строки.
Устанавливаем рабочий каталог, добавляем busybox. Затем жмём 0 и заходим в advanced options — тут можно сделать деодекс прошивки. Это нужно для того, чтобы можно было изменять файлы прошивки. Также стоит включить поддержку /etc/init.d.
После всего этого можно заняться кастомизацией интерфейса. Это делается очень просто - идём на http://uot.dakra.lt/kitchen/, выбираем, что нам нужно сделать и через некоторое время получаем готовую прошивку. Единственное, на что стоит обратить внимание — в пункте File Upload нужно выбрать:
update-binary — Type Galaxy
Upload system files — заливаем framework-res.apk, SystemUI.apk, twframework-res.apk.
После этого жмём submit и ждём, когда модификации будут готовы.
На выходе мы получаем zip-файл, который можно прошить через CWM. Но можно вынуть файлы из архива и скопировать их в нашу распакованную прошивку. Она находится в папке WORKING_число_число.
Установка нового ядра
Выбираем 20 - Tools for boot image (unpack/re-pack/etc.), затем распаковываем boot.img. У нас появится папка BOOT-EXTRACTED, где находится ядро и распакованный рамдиск, где можно подредактировать загрузочные скрипты и параметры. Делаем Build boot.img from BOOT-EXTRACTED folder (for working folder) и после этого можно собирать прошивку.
В результате у нас готов подписанный архив, который можно ставить из recovery.
Примечание 1. У меня нету под руками ubuntu, поэтому с именами пакетов мог ошибиться. Все остальные действия не сильно зависят от используемого linux.
Комментариев нет:
Отправить комментарий