У чому різниця між Linux та Android. Встановлюємо Linux-програми на смартфон під керуванням Android Операційна система linux та андроїд

Жарознижувальні засоби для дітей призначаються педіатром. Але бувають ситуації невідкладної допомоги за лихоманки, коли дитині потрібно дати ліки негайно. Тоді батьки беруть на себе відповідальність і застосовують жарознижувальні препарати. Що можна давати дітям грудного віку? Чим можна збити температуру у старших дітей? Які ліки найбезпечніші?

Ті з вас, хто використовує ОС Linux на своїх комп'ютерах, знають, що вона сильно відрізняється від ОС Android, яка зазвичай використовується на мобільному телефонічи планшеті. Одна з очевидних відмінностей, яку можна помітити в двох ОС, полягає в тому, що Android значною мірою орієнтований на сенсорні операції, тоді як Linux обмежений операціями з клавіатурою та мишею. Однак обидві операційні системи мають загальне походження і використовують одне ядро.

Linux найкраще визначити як операційну систему, що підходить для роботи на пристрої з фіксованою або обмеженою функціональністю– наприклад, вбудований Linux на інтелектуальному холодильнику чи тостері. Це дозволяє пристрою повною мірою використовувати величезну обчислювальну потужність Linux та максимально використовувати периферійні пристрої. При використанні на пристрої з фіксованою функціональністю вбудований Linux має безпрецедентну операційну ефективність та продуктивність, використовує мінімальні обсяги пам'яті та потужність, забезпечуючи при цьому користувачеві максимальну простоту використання пристрою за призначенням.

Сайт networkcenter.ru. Інструкції та лайфаки для людей. Статті про гаджити, програми, залізо, авторські статті.

Смартфони та планшети, хоч і є вбудованими пристроями, безумовно не мають фіксованої функції (різні моделі з безліччю функцій). Величезний обсяг цих пристроїв має тенденцію спотворювати традиційне визначення вбудованого Linux. Зі збільшенням можливостей апаратного забезпечення визначення вбудованого Linux також зазнає змін, особливо щодо обмежень щодо можливостей зберігання і процесора.

З іншого боку, Android, хоч і є настільною мобільною операційною системою та платформою Linux, дозволяє користувачам (виробникам) визначати свої власні схеми використання. Це також дозволяє постачальникам динамічно оновлювати платформу. Однак деякі програми стирають різницю між Android і вбудованим Linux.

Один із прикладів такого типу програм можна побачити у телевізійній приставці. Раніше це був пристрій із фіксованою функцією, що працює на вбудованому Linux. Завдяки збільшенню функціональності та динамічності телевізора в приставці тепер можна завантажувати програми та оновлювати програмне забезпечення, аналогічно до пристроїв Android. Більш того, в Android відбуваються зміни, аналогічні до тих, з якими стикається вбудований Linux. Це не просто операційна система для планшета або мобільного зв'язку.

Багато людей не знають, що Android і Linux використовують те саме ядро. Тим не менш, Android фокусується на вертикальній інтеграції своїх компонентів простору користувача з самим ядром Linux. У більшості випадків Android можна розглядати як ще один варіант вбудованого Linux - точно так, як кожен вбудований Linux адаптований до архітектури процесора, периферійних пристроїв, підтримки SoC і призначення пристрою, на якому передбачається працювати.

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

З Android у вас є велика кількістьфункціональність. Останнім часом деякі з провідних розробок для підтримки нових графічних прискорювачів та SoC вперше з'являються у середовищі Android. Потім їх підштовхують до інших проектів, пов'язаних із ядром Linux.

ТБ давно перестали бути простим екраномдля трансляції зображення з антени. Тепер вони являють собою пристрій досить складний та багатофункціональний. Вже давно на ТБ можна переглядати різні сайти, включати відео в відкритому доступіі навіть грати в ігри. Для цього майже на всіх сучасних телевізорах є технологія Smart TV.Ця технологія заснована на існуючих ОС. Це може бути як вже існуючі операційні системи, і власні розробки виробників. З найпопулярніших ОС можна виділити два: Linux та Android.

ОС Linux

Ця операційна система Smart TV є переробкою однойменної ОС для ПК. Розробка компанії Sony дозволяє здійснювати перегляд відео та якісний серфінг в інтернеті.Також існує можливість встановлення додаткових програм із доступного каталогу. Мінусом є те, що на відміну від аналогічної системи на ПК дана ОС не має такої ж гнучкості. На такому Смарт ТБ не можна встановлювати сторонні програми та різні розширення, не передбачені розробником. Також виникає проблема з оновленням програм. Однак, це може бути плюсом, оскільки закритий код дозволяє убезпечити користувачів від різноманітних втручань і ризиків несумісності та некоректної роботи.

ОС Android

Дана система є найбільш популярною, тому що вона проста в освоєнні та універсальна. На ТБ з даної ОС можна встановити практично будь-який додаток і запускати багато ігор. Список додатків такий самий, як і на сучасних смартфонах. Обидві операційні системи майже не відрізняються та взаємозамінні.

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

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

Що краще?

Обидві системи як лінукс так і андроїд надають користувачеві безліч можливостей, перетворюючи телевізор на подобу комп'ютера з масою опцій. При виборі ОС телевізора, користувачеві варто вирішити, що для нього важливіше: багатофункціональність або надійність.

ОС Android надає власнику набагато більше можливостей, ніж Linux, однак, ці можливості супроводжуються ризиками, особливо для користувачів малознайомих зі світом технологій. Linux на телевізорі, у свою чергу, дозволяє господареві насолодитися всіма основними перевагами Смарт ТВ, без ризиків підхопити шкідливу програмуабо пошкодити телевізор. Однак безліч функцій обмежуються розробниками, і деякі опції недоступні для користувачів саме цієї операційної системи.

Нудить від Android? Чи не хочете бути в приватній екосистемі? Безпека та конфіденційність стають все більш важливими для користувачів смартфонів, але якою є відповідь?

Чи можна відмовитися від Android та iOS на користь іншої мобільної операційної системи?

Якщо вам потрібна альтернативна операційна система, Linux зазвичай є відповіддю. Але які операційні системи Linux для смартфонів доступні для встановлення сьогодні?

1. Ubuntu Touch

Ubuntu Touch

Спочатку випущений розробниками Canonical, Ubuntu Touch зараз підтримується UBports. Це означає, що покинута мобільна операційна система Ubuntu Touch продовжує жити.

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

Все це добре працює, хоча завжди є брак потрібних додатків.

Найбільшою силою Ubuntu Touch є конвергенція.

Це система дуже схожа на Microsoft Continuum і , в якій мобільний пристрій підключено до монітора, клавіатури і миші і використовується як настільний комп'ютер. Єдина реальна різниця між цим і настільними пристроями Linux полягає в тому, що телефон має процесор ARM.

В даний час підтримувані пристрої включають телефони, на яких Ubuntu Touch був попередньо встановлений, а також OnePlus One, Fairphone 2 і Nexus 5 (Hammerhead). Багато інших перебувають у активній розробці, такі як OnePlus 2 та OnePlus 3.

2. Sailfish OS


Sailfish OS

Спільно розроблений Jolla, Mer (розробник стека проміжного шару), Sailfish Alliance (група корпорацій) та членів спільноти, Sailfish OS є продовженням занедбаної операційної системи MeeGo, заснованої на Maemo та Moblin.

Остання версія Sailfish OS відома як Sailfish X, яка працює на пристроях Sony Xperia X. На жаль, Sailfish OS не має відкритий вихідний код, а безкоштовна версіяє обмеженою за часом.

Повна версія Sailfish X поверне вам близько 50 доларів США, і вона доступна лише у країнах Європейського Союзу, Норвегії та Швейцарії. Як зазначається на веб-сайті:

«… використання нашого веб-сайту та послуг із придбання Sailfish X за межами Уповноважених країн заборонено».

Sailfish OS має підтримку Android-додатків, тому, якщо ці заклики, ця ОС варто спробувати.

3. Plasma Mobile

Plasma Mobile

Одним із найкращих варіантом є Plasma Mobile, орієнтований на смартфони. Сама Plasma, вважається однією з найкращих настільних середовищ Linux.

Отримавши багато уваги протягом 2017 року (в основному через відмову Ubuntu від Ubuntu Touch), мета Plasma Mobile — стати «повноцінною та відкритою програмною системоюдля мобільних пристроїв.

В даний час сумісна з Nexus 5 (Hammerhead) і OnePlus One, Plasma Mobile (заснована на Kubuntu) також доступний для ПК та планшетів на базі Intel завдяки версії на базі Arch Linux.

Існує також підтримка multiROM для Nexus 5 (Hammerhead), що дозволяє запускати Plasma Mobile разом з вашим кращим користувальницьким Android ROM.

Можливо, найкраще в проекті Plasma Mobile полягає в тому, що ви можете запускати настільні програми та віджети Plasma, а також програми Ubuntu Touch. Це дає проекту ширший вибір програм, ніж Ubuntu Touch.

Інші мобільні Linux проекти

На момент написання цієї статті можна відзначити три інші помітні мобільні проекти Linux:

Halium

Мета Halium, задумана як система для покращення майбутніх мобільних проектів Linux, «уніфікувати рівень апаратної абстракції для проектів, що працюють під управлінням GNU/Linux на мобільних пристрояхз встановленим Android.»

Існує також намір стандартизувати інше програмне забезпечення та покращити доступ Linux до аудіо, камери, GPS та іншого обладнання.

У разі успіху даного проекту, значно спроститься встановлення Linux на смартфони.

PureOS

Більш повний проект приходить у формі мобільної версії PureOS, дистрибутива Linux від Purism орієнтованого на конфіденційність та безпеку.

В даний час немає можливості завантажити PureOS для мобільних пристроїв, але перший телефон Purism - Librem 5 буде випущений в 2019 році. Це буде найбезпечніший і найчастіший мобільний пристрій, більша частина цього залежатиме від операційної системи PureOS.

postmarketOS

Описуючи себе як справжній дистрибутив Linux на телефоні postmarketOS (pmOS) - це версія Alpine Linux для смартфонів.

В даний час в ранній стадії розробки, pmOS метою є створення стійкої мобільної ОС, з довгостроковою підтримкою.

pmOS може запускати велику кількість пристроїв, включаючи Amazon Fire HDX, пристрої Google Nexus та телефони та планшети Samsung Galaxy.

Однак на цьому ранньому етапі розробки pmOS деякі з цих пристроїв мають повний набір функцій. Проте, пропонуючи кілька настільних середовищ, проект pmOS виглядає досить добре, щоб виконати своє завдання створення довгострокової стійкої мобільної операційної системи на базі Linux.

Програми, що встановлюють Linux на Android

Якщо ви відчайдушно хочете мати Linux у кишені, але не маєте жодного з перерахованих вище пристроїв, є альтернативи.

Вони дозволяють запускати Linux (або надавати зовнішній вигляд Linux), не виходячи з вашого Android пристрою як додаток. В основному, дані програми пропонують емуляцію.

KBOX

Інструмент, який не вимагає root прав, KBOX описується як «проект створення мініатюрного дистрибутива Linux для Android пристроїв, що надає Linux-подібне середовище — консоль.»

Таким чином, він має багато утиліт командного рядка, але недоступний у Google Play. Натомість вам доведеться відвідати веб-сайт, щоб завантажити та встановити APK. Перш ніж продовжити, переконайтеся, що ви розумієте підводні камені установки додатків із сторонніх сайтів за межами Google Play.

Завантажити: KBOX (безкоштовно)

Linux Deploy

Замість середовища командного рядка з деякими інструментами Linux ви можете віддати перевагу щось на зразок Linux Deploy з Google Play. Ця програма з відкритим вихідним кодом для простої та швидкої установки операційної системи GNU/Linux на Android пристрій. Linux Deploy дозволяє вибирати з кількох різних дистрибутивів. Вони встановлюються образ диска в сховище пристрою.

Після встановлення ви зможете отримати доступ до середовища робочого столу Linux на вашому телефоні або планшеті.

Завантажити: Linux Deploy (безкоштовно)

Ваш смартфон заслуговує на Linux

Коротше кажучи, Linux вже доступний для багатьох смартфонів. Але попереду ще довгий шлях. Дистрибутиви Linux на мобільних пристроях зустрічаються рідко і всі вони потребують вашої підтримки.

Якщо у вас є один із згаданих вище пристроїв, спробуйте використати сумісний дистрибутив Linux.

Проведіть кілька днів із ним, щоб побачити, як це працює для вас. Потім, повідомте спільноти про те, як все пройшло. Дайте їм знати, що спрацювало, а що ні.

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

Багато власників Android-фонів зазнають труднощів із запуском справжнього Linux-софту на своїх девайсах. За всіма законами він начебто має тут працювати, та ось тільки для його встановлення чомусь потрібні права root, сам він поширюється на якихось саморобних інсталяторах, а вибір програм дуже обмежений. Ця стаття запропонує відповідь на питання, чому так вийшло, і підкаже рішення – зручний спосіб встановлення та запуску майже будь-якого Linux-софту в Android.

Linux чи Linux?

Як відомо, андроїд заснований на ядрі Linuxі включає набір стандартних бібліотек і утиліт командного рядка, властивих звичайному Linux-дистрибутиву. Однак запуск класичного Linux-софту тут дуже утруднений через безліч причин, серед яких несумісність ABI, відсутність менеджера пакетів, власна системабезпеки та відсутність багатьох компонентів стандартної Linux-системи.

Так, незважаючи на наявність у Android стандартноїбібліотеки libc та інших, їх реалізація здебільшого несумісна з бібліотеками від проекту GNU і сильно урізана за функціоналом. Тому Linux-софт потрібно як мінімум перезбирати спеціально під Android і ARM-процесор, а в багатьох випадках ще й патчити, додаючи функціонал, який відсутній у бібліотеках.

BotBrew: список підтримуваних пристроїв

BotBrew був протестований на наступних пристроях: Barnes & Noble NOOK Color, LG P970 Optimus Black, Huawei Ascend M860, HTC Desire, HTC Evo 4G, HTC Evo 3D, HTC Inspire 4G, HTC Droid Eris, HTC Hero, Samsung Galaxy S2 (GT-I9100), Samsung Galaxy Y (GT-S5360), Motorola Atrix 4 Motorola Droid/Milestone, Sony Ericsson Xperia X8, Asus EeePad Transformer TF101.

Система безпеки Android, що обрізає програми у привілеях за повною програмою і не дозволяє їм виходити за рамки власного каталогу, також серйозно перешкоджає роботі стандартного софта Linux. Тому часто потрібно отримувати права root, які ці обмеження знімають. Відсутність менеджера пакетів, який би дозволяв встановлювати звичайний Linux-софт, а не лише Java-додатки, змушує розробників писати додатки, потрібні лише для того, щоб інсталювати інші додатки. Так з'являються всі ці кастомні інсталятори.

Ну і довершує картину те, що Android просто немає багатьох стандартних компонентів Linux, включаючи, наприклад, навіть такі невід'ємні, як графічний стек X Window або бібліотека GTK +. Деякі спроби все це сюди принести, звичайно, робляться, але далі напівробочих альфа-версій справа не рухається.

Проте можливість перенести в Android функціонал повноцінної Linux-системи занадто приваблива ідея, щоб ентузіасти не спробували вирішити проблеми, що виникають у процесі, і дати нам повноцінне універсальне рішення. Найочевидніший і найпростіший шлях – це запустити «віртуалізовану» версію повноцінного Linux-дистрибутива, про що ми вже докладно писали. Спосіб цей цікавий, але страждає від проблеми поділу системи на дві області, кожна з яких працює незалежно від іншої.

Набагато цікавішим виглядає проект BotBrew - у його рамках розробляється цілком звичайний для Linux-систем менеджер пакетів і репозиторій, за допомогою якого можна встановлювати Linux-софт окремо взятий каталог всередині Android. Також свого часу було вигадано безліч різних скриптів, які дозволяють легко та без зайвих проблем збирати придатний для роботи всередині Android Linux-софт на великому браті. Цим двом проектам і буде присвячена частина статті, що залишилася.

BotBrew

Проект BotBrew покликаний вирішити багато проблем із встановленням Linux-софту, які тільки можуть виникнути у користувача, та підготувати систему Androidдо прийняття сторонніх нею додатків. По суті система складається з чотирьох компонентів:
  • репозиторій із прекомпільованими для Android додатками, використовуючи який можна встановити багато Linux-додатків за допомогою однієї команди;
  • менеджер пакетів, як який використовується легковагий Opkg або dpkg разом з apt-get в експериментальній версії BotBrew Bazil;
  • менеджер процесів runit, необхідний для того, щоб правильно запускати та підтримувати роботу демонів, якщо такі будуть встановлені;
  • власна система складання, яка містить у собі всі інструменти, необхідні для крос-компіляції програм за допомогою будь-якого настільного Linux-дистрибутива.
Для роботи це диво програмістської думки вимагає всього нічого: права root і трохи вільного простору в внутрішньої пам'ятісмартфон або картку пам'яті. Причому перший варіант краще, тому що у випадку з SD файли будуть звалені на віртуальний дискробота з яким підтримується далеко не всіма ядрами.


Початкова ініціалізація

На даний момент класична версія BotBrew, що використовує власний репозиторій, дозволяє встановлювати такий софт, як dcron, GCC, Git, SSH-сервер dropbear, консольний браузер Lynx, сканер безпеки Nmap, інструмент бекапу rsync, редактор Vim, веб-сервер lighttpd, с Python та Ruby, а також кілька десятків інших пакетів. Встановлюється це все, до речі, у виділений каталог у внутрішній пам'яті смартфона/планшета і не захаращує основну систему. Іншими словами, позбутися BotBrew і всього, що ти встановив, можна буде, просто видаливши один каталог.

Ставимо софт

Отже, як використовувати BotBrew для установки Linux-софта? Для початку нам знадобиться пакет із самою програмою. Він є в Google Play (зазначу, що потрібний BotBrew root, а не експериментальний Bazil) і важить менше за мегабайт. Після встановлення запускаємо та натискаємо кнопку «Proceed» внизу екрана, щоб софтина викачала всі необхідні для її роботи компоненти, такі як консольний менеджер пакетів та інші утиліти (у термінах Debian Linux - bootstrap). Важать вони лише кілька мегабайт, тому чекати доведеться недовго. Після закінчення установки BotBrew виведе на екран вікно з офіційною веб-сторінкою проекту, яке можна сміливо закривати.

Тепер на екрані ти маєш побачити список пакетів, доступних до установки. Їх досить багато, але графічних програм з описаних вище причин ти серед них не знайдеш. Зате є різномасні сервери, компілятори та інтерпретатори, тому всім, хто хоче серйозно «погратися» зі смартфоном, буде де розвернутися. Для встановлення пакета достатньо тапнути по його імені та на наступному екрані, що містить інформацію про програму, натиснути кнопку «Install».

Танці з бубнами

Якщо під час bootstrap'у BotBrew виникли проблеми, ти можеш спробувати встановити його вручну за допомогою наступної команди:

Wget http://repo.botbrew.com/anise/bootstrap/install.sh -O - | su
Якщо це не допомогло, можна спробувати видалити всі установки («Remove BotBrew» у налаштуваннях) і потім спробувати запустити цю команду.

Після цього пакет з'явиться на вкладці «Installed», однак кнопки «Run» або чогось подібного ти не побачиш. Програму доведеться самостійно запускати з консолі, що, втім, логічно. Сама програма встановлюється всередину каталогової структури /data/botbrew, в якому "емулюється" реальне оточення Linux-дистрибутива з каталогами /etc, /usr та іншими. Щоб не мучити користувачів необхідністю набирати повний шлях до команди, розробники BotBrew передбачили однойменну команду-враппер. Щоб запустити, наприклад, встановлений консольний браузер Lynx, слід набрати таку команду:

$ botbrew lynx http://xakep.ru
Як варіант - каталог /data/botbrew/bin можна додати до змінну оточення PATH, але це доведеться робити після кожного запуску терміналу:

$ export PATH="$PATH:/data/botbrew/bin"
З демонами і різними мережевими сервісами, до речі, справи набагато кращі. Після старту демони відразу будуть запущені, а керувати їх включенням можна через графічний інтерфейс, доступний натисканням на кнопку «Play» в нижній частині інтерфейсу BotBrew. Деякі програми можуть вимагати створення додаткових користувачів та зміни їх параметрів, це можна зробити так само, як у звичайній Linux-системі:

  1. Створення користувача:
    $ botbrew adduser vasya
  2. Відкриття користувачеві доступу до Інтернету:
    $ botbrew addgroup vasya inet
  3. Переключення BotBrew на іншого користувача:
    $ botbrew su vasya
Зверніть увагу, що всі ці зміни стосуватимуться лише віртуального оточення BotBrew і ніяк не позначаться на основній системі. Консоль можна використовувати також для встановлення програм в обхід графічного інтерфейсу. Для цього слід використовувати консольний менеджер пакетів Opkg, синтаксис команд якого повністю сумісний з apt-get:

$ botbrew opkg install dropbear
Зворотня операція:

$ botbrew opkg remove dropbear
Щоб залишатися «вістря прогресу», репозиторій BotBrew потрібно час від часу оновлювати, натиснувши на відповідну кнопку в графічному інтерфейсі (її ні з чим не сплутаєш). Нові версії пакетів відображатимуться на вкладці «Upgradable». Достатньо тапнути по його імені та натиснути «Upgrade».

BotBrew Basil

У маркеті можна знайти також додаток під назвою BotBrew Basil, позначений як експериментальний. По суті, це все той же BotBrew, але з однією дуже важливою відмінністю. Замість власних репозиторіїв та менеджера пакетів Opkg він використовує ARM-репозиторії Debian Linux та менеджер пакетів apt-get. Це означає, що кількість софту, яку можна встановити за допомогою бразильської версії програми, набагато більше. У десятки разів більше.

Крім використання дебіанівських репозиторіїв, Basil відрізняється також трохи зміненим інтерфейсом. Наприклад, одразу після запуску він пропонує вибрати каталог установки. За замовчуванням використовується /data/botbrew-basil, що, на мій погляд, цілком логічно, проте ти можеш вибрати будь-який інший, у тому числі на ext2-розділ карти пам'яті (FAT не підійде).

Друга важлива відмінність - це можливість вибрати спосіб використання програми, яка з'являється відразу після натискання Proceed. Варіантів тут чотири:

  1. Use BotBrew on the command line - по суті аналог встановлення в стилі звичайного BotBrew.
  2. Use the dpkg/APT system - установка разом з apt-get та репозиторіями Debian. Рекомендований варіант встановлення.
  3. Run Python programs - аналог першого варіанта з автоматичною установкою Python.
  4. Install a minimal Debian - мінімалістична установка Debian.
Поясню другий та четвертий пункти. Перший BotBrew і перший пункт у цьому списку роблять не що інше, як установку мінімалістичної Linux-системи (що складається всього з кількох команд і бібліотек), всередині якої саме відбувається запуск Linux-софту. Проте apt-get, на відміну мінімалістичного Opkg, вимагає більш-менш повноцінної установки Linux. Тому, обравши другий пункт, ти отримаєш у себе на смартфоні такий собі мікро-Linux. А якщо ми можемо встановити мікроверсію, то чому б не встановити більш-менш повноцінний дистрибутив. Для цього існує четвертий пункт.

Після bootstrap'а BotBrew Basil на екрані з'явиться той самий інтерфейс керування установкою додатків, знайомий нам за класичною версією програми, а в системі з'явиться команда botbrew2, за допомогою якої можна запускати софт. Якихось суттєвих відмінностей в управлінні тут немає, крім хіба що команди apt-get замість opkg та можливості підключення додаткових репозиторіїв (у тому числі репозиторія першого BotBrew) прямо через інтерфейс встановлення додатків.

Беремо справу у свої руки

Прекомпільовані програми та репозиторії з готовими пакетами - це чудово, але що, якщо необхідної програми немає серед доступних для встановлення? Адже навіть той же BotBrew Basil, що дозволяє підключати репозиторії Debian з величезною кількістю софту, через свій експериментальний характер запрацює далеко не на кожному смартфоні.

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

Тим не менш, ми можемо скористатися напрацюваннями інших людей, щоб автоматизувати процес складання софту. Одне з найбільш розвинених та цікавих рішеньз цієї області - набір скриптів SCRIPTSET, розроблений користувачем smitna із XDA Developers. Він дозволяє буквально в пару команд зібрати безліч різних програм, серед яких htop, ImageMagick, iptables, ELinks, Screen, mc, node.js, Samba, strace, QEMU, Parted, SANE (його можна використовувати для прямого друку на принтері з телефону!) та безліч інших. Скрипт сам викачає крос-компілятор, всі необхідні залежності та програми, накладе патчі, де це необхідно, і згенерує готовий для розпакування на телефон архів.

SCRIPTSET працює тільки в Linux, але якщо у тебе Windows, ти можеш встановити Ubuntu в віртуальній машині. Далі слід відкрити термінал та встановити необхідні для збирання крос-компілятора інструменти:

$ sudo apt-get install build-essential cmake autoconf2.13 scons
Після цього можна отримати сам SCRIPTSET та розпакувати його:

$ cd ~ $ wget http://goo.gl/zvnom -O scriptset-2.6.zip $ unzip scriptset-2.6.zip
В результаті розпакування ми отримаємо ще один архів: scriptset-2.6.tar.bz2. Але це ще не все, архів запакований без традиційного для tar кореневого каталогу, тому його необхідно створити самостійно. І вже в нього розпаковувати:

$ mkdir scriptset $ cd scriptset $ tar -xjf ../scriptset-2.6.tar.bz2

Після розпакування в каталозі з'явиться кілька скриптів, конфігів, а також значних розмірів файл README, що містить інструкції з використання скриптів. На скриптах не варто бити виконання (що не дивує, враховуючи попередні проблеми), тому його треба поставити самостійно:

$ chmod 755 *.sh

# vi ~/scriptset/configuration.conf // Каталог інсталяції програм на смартфоні TARGET_SYSROOT="/data/sysroot" // Цільовий процесор TARGET_MARCH="armv7-a" TARGET_MTUNE="cortex-a9" TARGET_MFPU="neon" TARGET_MFAT softfp"

Цього буде достатньо для коректного складання будь-якої програми; цільовим процесором буде стандартний ARMv7 із додатковим набором інструкцій NEON. Такий встановлений у будь-якому смартфоні, випущеному за останні три-чотири роки. Каталог /data/sysroot буде використаний для встановлення програм на смартфоні, проте, як це не дивно, його доведеться також створити і на настільній машині:

$ sudo mkdir -p /data/sysroot $ sudo chown user:users /data/sysroot $ sudo chmod 777 /data/sysroot
Як пояснює автор скриптів, така дія необхідна тому, що шляхи для ключових каталогів деякі додатки вшиваються на етапі складання. Тому, якби ми зібрали додаток, використовуючи як кореневий поточний та будь-який інший каталог, він би просто не запрацював на смартфоні через відмінності в шляхах. Я впевнений, що коректніше було б вирішити цю проблему за допомогою chroot, але простіше і швидше створити потрібний каталог, а по закінченні робіт видалити його.

Далі ми маємо вказати список додатків, які плануємо збирати. Для цього відкриваємо файл package_selection.conf та змінюємо no на yes у ​​потрібних опціях. Наприклад, щоб зібрати bash, ImageMagick та Screen, потрібно поміняти три наступні рядки:

# vi ~/scriptset/package_selection.conf BASH=yes IMAGEMAGICK=yes SCREEN=yes
Майте на увазі, що налаштування між рядками # ALWAYS NEEDED не можна змінювати. Ці програми та бібліотеки потрібні завжди, і без них інші програми просто не збираються. Тепер можна скомпілювати програми. Для цього достатньо запустити скрипт build.sh без аргументів:

$./build.sh
Якщо всі необхідні пакети були встановлені і компілятор під час збирання не видав жодних помилок, в результаті збирання в поточному каталозі з'являться два архіви: cs-sysroot.tar.bz2 і android-mysysroot.tar.bz2. Перший - це оточення, необхідне запуску додатків, створене крос-компілятором, а друге - сам набір додатків. Обидва ці архіви необхідно скинути на карту пам'яті смартфона, а потім, запустивши на ньому емулятор терміналу або підключившись по ADB, виконати дві команди:

$tar xjf /sdcard/cs-sysroot.tar.bz2 $tar xjf /sdcard/android-mysysroot.tar.bz2
В результаті у внутрішній пам'яті смартфона з'явиться каталог /data/sysroot, в якому будуть розміщені програми. Запускати їх слід із того ж терміналу, вказуючи повний шлях. Наприклад:

$ /data/sysroot/usr/bin/bash
Ну або після запуску терміналу додати /data/sysroot/usr/bin до PATH:

$ export PATH="$PATH:/data/sysroot/usr/bin"

Висновки

Незважаючи на досить серйозні відмінності між Android і типовим Linux-дистрибутивом, встановити консольні Linux-програми на смартфон не так вже й складно. На жаль, про графічні програми мови поки не йдеться, але проекти портування бібліотеки Qt і графічного сервера Wayland в Android вже є, і незабаром, сподіваюся, ми отримаємо робоче рішення.


Вперше опубліковано у журналі «Хакер» від 08/2013.

Підтримайте проект - поділіться посиланням, дякую!
Читайте також
Як встановити безкоштовний антивірус аваст Як встановити безкоштовний антивірус аваст Як очистити комп'ютер від вірусів самостійно Як очистити комп'ютер від вірусів самостійно Як повністю очистити комп'ютер від вірусів Як повністю очистити комп'ютер від вірусів