• Перейти до основної навігації
  • Перейти до основного матеріалу
  • Перейти до основної врізки
  • Перейти в кінець сторінки

TechLila

Bleeding Edge, завжди

  • Головна
  • Про нас
  • Контакти
  • Акції та пропозиції
Логотип Techlila
Поділитись
чірікать
Поділитись
Pin
42 акції
Анахронія
Вгору Далі

Останні розробки RuneScape 2019 року

Скомпілювати Android ROM з вихідного коду

TechLila Mobile Android

DIY: Скомпілювати Android ROM з вихідного коду

Аватар Шонака Гухарая Шонак Гухарай
Останнє оновлення: Січень 9, 2022

Android є найбільш широко використовуваною мобільною операційною системою у світі. І найкраща частина, це повністю відкритий вихідний код, що, кажучи неспеціалістом, означає, що вихідний код, фактична програма, відкрито доступна для кожного для завантаження, налаштування та створення власних ПЗУ.

Існує багато користувальницьких дистрибутивів Android, серед яких є популярні CyanogenMod, SlimROM, Paranoid Android, AOKP, Liquid Smooth, MIUI, Xylon, Ice Cold Jelly тощо.

Для сьогоднішнього посібника ми зіберемо CyanogenMod 10.2, найпопулярніший ROM для Android. Процедура на 99% однакова для всіх користувальницьких ПЗУ, тому цей посібник можна використовувати як посилання для компіляції інших ПЗУ.

Передумови

  1. Телефон Android із легкодоступним ядром і джерелом пристрою, уже вкорінений та з встановленим спеціальним відновленням.
  2. 64-розрядний дистрибутив Linux (ми віддаємо перевагу Ubuntu).
  3. Принаймні 100 ГБ безкоштовно на вашому жорсткому диску.
  4. Знання роботи з командами терміналу Linux.
  5. Досить швидке підключення до Інтернету.

Зауважте: 64-розрядна ОС Linux є обов’язковою, і це має бути рідна інсталяція, а не віртуальна машина.

Налаштуйте свою машину для складання

1. Встановіть ОС Linux на ваш вибір: 64-розрядна версія, згідно з офіційними інструкціями. (Посібник буде вважати, що ми використовуємо Ubuntu 13.04). Зберігайте розділ розміром щонайменше 100 ГБ за допомогою розділу підкачки 16 ГБ.

2. Встановіть наступний список пакетів: Відкрийте програму Terminal і введіть

[html]sudo apt-get install [/html]

натисніть Enter, і вам буде запропоновано ввести пароль.

список пакетів

[html]
git-core
gnupg
flex
бізон
пітон
ЕОР
оригінальний-awk
гаук
p7zip-повний
gperf
libsdl1.2-dev
libesd0-dev
libwxgtk2.6-dev
сквош-інструменти
будувати-істотне
ZIP
витися
libncurses5-dev
zlib1g-dev
pngcrush
schedtool
libc6-dev
x11proto-core-dev
libx11-dev
libg11-mesa-dev
mingw32
тофродос
python-markdown
libxml2-утиліти
g++-multilib
lib32z1-dev
ia32-libs
lib32ncurses5-dev
lib32readline-gplv2-dev
gcc-multilib
g++-multilib
xsltproc
[/ html]

3. Встановіть Java JDK 1.6 для 64-розрядної Linux: Ім’я файлу має бути jdk-6u##-linux-x64.bin, ## – номери версій. Перемістіть завантажений пакет у свій домашній каталог. Відкрийте програму Terminal і виконайте наступний набір команд:

[html]
sudo apt-get purge openjdk-\* icedtea-\* icedtea6-\*
sudo mkdir –p /opt/java/64/
sudo cp jdk-6u##-linux-x64.bin /opt/java/64
на південь -
компакт-диск /opt/java/64
chmod a+x jdk-6u##-linux-x64.bin
./jdk-6u##-linux-x64.bin
вихід
[/ html]

Тепер ми повинні додати шлях JDK до .bashrc

[html]
sudo gedit ~ / .bashrc
[/ html]

Додайте ці рядки в кінці текстового файлу

[html]
# Шлях Java
експорт JAVA_HOME=/opt/java/64/jdk1.6.0_##
експорт PATH=$PATH:$JAVA_HOME/bin
[/ html]

4. Установіть Android SDK: Відкрийте програму Terminal

[html]
CD ~
mkdir android && cd android
mkdir sdk
[/ html]

Завантажте Android SDK з http://developer.android.com/sdk/index.html. Витягніть вміст пакета в ~/android/sdk. Ми повинні додати шлях Android SDK до .bashrc

[html]
sudo gedit ~ / .bashrc
[/ html]

Додайте ці рядки в кінці текстового файлу:

[html]
# Шлях Android SDK
експорт PATH=$PATH:~/android/sdk
експорт PATH=$PATH:~/android/sdk/platform-tools
експорт PATH=$PATH:~/android/sdk/tools
[/ html]

Тепер встановіть інструменти Android SDK, ввівши

[html]
чоловіча
[/ html]

5. Налаштуйте свій обліковий запис github і віддалене репо: Ви можете пропустити цей крок, якщо CyanogenMod офіційно підтримує ваш телефон. Перейдіть на github.com і створіть обліковий запис для себе. У цьому посібнику я розглядаю ваше ім’я користувача як «користувач».

Відвідайте «github.com/CyanogenMod/android», натисніть «Форк». Віддалений маніфест буде розділений і доступний у вашому особистому репо.

Тепер перейдіть до 'github.com/user/android'. Відкрийте файл default.xml, натисніть Редагувати. Знайдіть цей рядок:

[html]

[/ html]

І замініть це на

[html]

[/ html]

Я думаю, що джерело ядра вашого пристрою, джерело пристрою та бібліотеки постачальника для Android 4.3 будуть на

[html]
github.com/user2/kernel_source
github.com/user2/device_source
github.com/user2/device-common_source
github.com/user2/vendor
[/ html]

Я припускаю, що гілка буде називатися "jb4.3". Ви можете знайти точну назву в фактичному репо. Потім в кінці файлу додайте ці рядки, змінивши їх відповідно до вихідного коду вашого пристрою.

[html]




[/ html]

Зафіксуйте свої зміни. Ваш віддалений маніфест готовий до розгортання.

6. Установіть команду Repo: Відкрийте термінал і введіть

[html]
CD ~
mkdir ~ / bin
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
chmod a + x ~ / bin / repo
[/ html]

Ми повинні додати шлях до .bashrc

[html]
sudo gedit ~ / .bashrc
[/ html]

Додайте цей рядок у кінець текстового файлу

[html]
експорт PATH=$PATH:~/bin
[/ html]

7. Отримайте вихідний код ПЗУ: Відкрийте термінал і введіть

[html]
mkdir ~/android/cm
cd ~/android/cm
[/ html]

Якщо вам потрібен крок 5, введіть

[html]
repo init –u git://github.com/user/android.git –b cm-10.2
[/ html]

Якщо ваш пристрій офіційно підтримує CyanogenMod 10.2, введіть

[html]
repo init –u git://github.com/CyanogenMod/android.git –b cm-10.2
[/ html]

Біжи

[html]
синхронізація репо –j16
[/ html]

Іди випий кави чи поїсти, це займе багато часу. Розмір вихідного коду значно перевищує 10 ГБ, тому це займе досить багато часу.

Отримання джерела

8. Налаштуйте параметри пристрою: Якщо ваш пристрій офіційно підтримує CyanogenMod 10.2, відкрийте термінал і введіть

[html]
cd ~/android/cm
. build/envsetup.sh && сніданок
[/ html]

Це займе деякий час, джерело пристрою має розмір близько 3 Гб. Потім вам потрібно встановити офіційний CM10.2 на вашому телефоні, підключити його до комп’ютера в режимі USB Debugging і виконати такі команди:

[html]
корінь adb
cd ~/android/cm/device/ / /
./extract-files.sh
[/ html]

Якщо ваш пристрій офіційно не підтримує CyanogenMod 10.2, то вам нічого робити на цьому кроці, джерела вже чекають на вас.

9. Завантажте готові матеріали та налаштуйте Toolchain: Відкрийте термінал і введіть

[html]
cd ~/android/cm/vendor/cm
sh ./get-prebuilts
[/ html]

Тепер ми повинні додати шлях до ланцюга інструментів до ./bashrc

[html]
cd ~/android/cm
sudo gedit ~ / .bashrc
[/ html]

Додайте ці рядки в кінець текстового файлу

[html]
# Android Toolchain
експорт ARCH=рука
експорт CCOMPILE=$CROSS_COMPILE
експорт CROSS_COMPILE=arm-eabi-
експорт PATH=$PATH:~/android/cm/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin
[/ html]

10. Створіть свій ROM: Отже, все в порядку і готово. Настав час створити ПЗУ. Відкрийте термінал і введіть

[html]
cd ~/android/cm
. build/envsetup.sh
бранч
[/ html]

Час подрімати. Щоб створити ПЗУ на середньому комп’ютері, знадобиться мільйон років. Що ж, це було перебільшенням, але на моєму домашньому ПК (Core i5 2-го покоління з 8 ГБ оперативної пам’яті) для створення з нуля потрібно більше 3 годин. Сподіваюся, помилок не буде, і збірка завершиться нормально. Ви отримаєте вихідний пакет

[html]
~/android/cm/out/target/product/ /см-10.2-щось-НЕОФІЦІЙНО- .zip
[/ html]

Настав час встановити на телефон нещодавно скомпільований ROM. Завантажте пакет Google Apps із «www.goo.im/gapps» для відповідної версії Android. Помістіть обидва ці пакунки в телефон і прошіть їх у режимі відновлення. Вуаля, ваш власний скомпільований ROM тепер працює на вашому пристрої.

Отже, ви навчилися скомпілювати ROM. Ну і що тепер?

Оновіть вихідний ПЗУ

Щоб отримати нові оновлення вихідного коду вашого локально завантаженого вихідного коду, відкрийте термінал і введіть

[html]
cd ~/android/cm
синхронізація репо –j16
[/ html]

Щоб створити ROM, після оновлення вихідного коду відкрийте термінал і введіть

[html]
cd ~/android/cm
зробити установку чистою
знайти ./out/ -name 'build.prop' | xargs rm
знайти ./out/ -name 'cm_ -target_files-eng.*.zip' | xargs rm
. build/envsetup.sh
бранч
[/ html]

Оскільки ви збираєтеся не з нуля, а перебудовуєте як є, це займе значно менше часу, лише приблизно 15-30 хвилин у більшості випадків. Ви повинні синхронізувати своє локальне джерело щотижня або близько того, щоб локальне джерело залишалося свіжим.

Дивись також
Пристрій рутовано? Що ж тепер робити …

Очистіть свій робочий каталог

Щоб повністю очистити робочий каталог (прочитайте: повернути вихідну папку до вихідного стану), відкрийте термінал і введіть наступні команди.

[html]
cd ~/android/cm
зробити установку чистою
зробити клоббер
[/ html]

Майте на увазі, що після виконання цих команд усі ваші вихідні дані будуть видалені, тому наступна збірка знову займе 3-4 години, оскільки все буде перебудовано з нуля. Якщо ваш розділ жорсткого диска невеликий, скажімо, близько 100 ГБ, вам слід очищати робочий каталог приблизно раз на 4 збірки, інакше у вас закінчиться місце на жорсткому диску.

Прискоріть збірку за допомогою CCACHE

Створення ПЗУ займає багато часу. Але за допомогою CCACHE час можна скоротити приблизно на 30-45%. CCACHE означає кеш компілятора, він кешує вихідні дані компіляції з ваших попередніх збірок, щоб його можна було повторно використовувати в наступних збірках.

Зауважте, що CCACHE потребує багато місця на вашому жорсткому диску для кешування вмісту, тому його рекомендується використовувати тільки тоді, коли ваш розділ жорсткого диска знаходиться десь близько 200 ГБ або більше. Щоб налаштувати CCACHE, відкрийте термінал і введіть:

[html]
cd ~/android/cm
експорт USE_CCACHE=1
експорт CACHE_DIR=~/.ccache
prebuilts/misc/linux-x86/ccache/ccache –M 50G
[/ html]

Ви можете змінити максимальний розмір розподілу для CCACHE з 50 ГБ на будь-який, який забажаєте, але для хороших результатів слід використовувати мінімум близько 30 ГБ.

Отримати коміти з інших ROM

Ви можете вибрати функції з вихідного коду інших ПЗУ. Скажімо, наприклад, я хочу вибрати функцію A з ідентифікатором фіксації «12345» із репозиторію «github.com/user/reporepo».

Ви переходите до пакета у вашому локальному вихідному коді та запускаєте їх у терміналі.

[html]
CD ~/
git отримати https://github.com/user/reporepo
git cherry-pick 12345
[/ html]

Дивись також
10 обов’язкових програм для телефонів Android із рутованим доступом

Посилання на вихідний код відомих дистрибутивів користувацького ПЗУ Android

CyanogenMod – https://github.com/CyanogenMod
SlimROM – https://github.com/SlimRoms
ПараноїдАндроїд – https://github.com/ParanoidAndroid
АОКП – https://github.com/AOKP
LiquidSmooth – https://github.com/liquidsmooth
Xylon ROM -
Крижане желе – https://github.com/IceColdJelly

Отже, хлопці, простий і зрозумілий посібник зі складання практично будь-якого ПЗУ на базі Android AOSP за 10 простих кроків. Хоча мій посібник зосереджується на CyanogenMod, ви можете зібрати майже кожен AOSP ROM, просто змінивши посилання на репозиторій. Або ви можете просто вибрати функції, зафіксувати їх, змінити речі та створити власний персоналізований ROM, можливо, також поділитися своїм ROM онлайн?

Поділитись
чірікать
Поділитись
Pin
42 акції

Розкриття інформації: Вміст, опублікований на TechLila, підтримується читачами. Ми можемо отримувати комісію за покупки, зроблені через наші партнерські посилання, без додаткових витрат для вас. Читайте наш Сторінка відмови від відповідальності щоб дізнатися більше про наше фінансування, редакційну політику та способи нашої підтримки.

Спільний доступ - це турбота

Поділитись
чірікать
Поділитись
Pin
42 акції
Аватар Шонака Гухарая

Шонак Гухарай

Шонак Гухарай Ютубер, конкурентоспроможний програміст і розробник Android з Калькутти. Його інтереси варіюються від будь-якого зв’язку з мобільними телефонами, комп’ютерами та іграми.

Категорія

  • Android

Теги

Android Rom

читач взаємодій

Що люди говорять

  1. Аватар вішваставишваст

    привіт, дякую за цю статтю, сьогодні цей світ Android поширюється як епідемія, тому гарна стаття

    відповісти
  2. Аватар jurie ralesриторики присяжних

    Вражаючі роботи! Я дійсно хочу створити власний код для своїх програм!

    відповісти
  3. Аватар ДжесікиДжессіка

    Мені дуже подобається бачити цей код, але якусь частину цього коду я не можу зрозуміти.

    відповісти
  4. Аватар Шиянтан дебШянтан деб

    привіт Шонак,
    Android дійсно широко поширений у всьому світі. і дякую за цей чудовий пост

    відповісти
  5. Аватар Сьюзі ЛемпманСьюзі Лампман

    Чудово. Тепер, якби я міг зрозуміти ці терміни. Тоді я можу скомпілювати ROM Android

    відповісти

Додайте свій коментар Скасувати відповідь

Ваша електронна адреса не буде опублікований. Обов'язкові поля позначені * *

Первинна бічна панель

популярний

Як збільшити швидкість широкосмугового доступу в Windows

10 найкращих програм для запуску Android 2021 року

Що робити після встановлення Windows 10 – поради та підказки щодо Windows 10

10 найкращих пошукових систем, які можна використовувати для приватного пошуку в Інтернеті

55 цікавих фактів про комп'ютер, які вразять вас

На що звернути увагу при покупці ноутбука – посібник із покупки ноутбука

Fusion Drive проти SSD – те, що вам ніхто не розповідає про Fusion проти SSD

Корисні інструменти

• Граматично – Безкоштовна перевірка граматики
• SemRush – Найкращий інструмент SEO, якому довіряють експерти
• Setapp – Єдина підписка для Mac і iOS

Модні теми

  • Android
  • інтернет
  • iPhone
  • Linux
  • Макінтош
  • безпеки
  • Соціальні мережі
  • Технологія
  • Windows

Варто перевірити

10 найкращих звукових еквалайзерів для Windows 10 (2022 Edition!)

14 найкращих скінів VLC, які настійно рекомендуються та безкоштовні

Логотип колонтитулів Текстовий логотип нижнього колонтитула

Нижній колонтитул

Про нас

Привіт і ласкаво просимо до TechLila, відомого технологічного блогу, де ви можете знайти винахідливі статті для освоєння основ і не тільки.

У TechLila наша головна мета — надати унікальну інформацію, таку як поради та підказки щодо якості, навчальні посібники, інструкції для Windows, Macintosh, Linux, Android, iPhone, безпека та кілька різних підтем, таких як огляди.

зв'язку

  • Про нас
  • Контакти
  • відмова
  • Privacy Policy
  • терміни

слідувати

Спеціальна тема з використанням Genesis Framework

Хмарний хостинг від Cloudways

Language

en English
bg Българскиzh-CN 简体中文nl Nederlandsen Englishtl Filipinofr Françaisde Deutschid Bahasa Indonesiait Italianoja 日本語pl Polskipt Portuguêsro Românăru Русскийsr Српски језикes Españolsv Svenskatr Türkçeuk Українськаvi Tiếng Việt

© Copyright 2012–2022 TechLila. Всі права захищені.