Ubuntu Debian GentOS на Android-устройстве





Здравствуйте.

У меня в кладовке долго валялся «китайский» клон смартфона HTC ONE. Помимо того, что у него умерла батарейка, дык ещё и экран расколот. Показывать то он показывает, а вот тачскрин работает только частично — небольшая область в левом углу. Однако не смотря на все неприятности, такому девайсу можно найти применение, например, запилить на нём домашний сайт, и/или запустить телеграм-бота.


Если экран совсем ничего не показывает, тогда я не знаю что делать.


Итак, нужно чтобы была включена отладка по USB и получены права root. Отладка у меня была включена давно, а root я сделал с помощью программы Superuser.

Чтобы скачать с 4pda, надо зарегистрироваться. Иначе будет говорить, что файла нет.



ADB

Если у Вас так же как и у меня не работает тач, тогда понадобиться ADB-сервер. С его помощью можно с компьютера управлять телефоном, имитировать нажатия на экран, вводить текст и т.д.

Установка adb и работа с ним под   описана по ссылке, под  (я буду делать все на Ubuntu) устанавливаем так…

sudo apt install android-tools-adb

(… ну, а поклонники BSD лучше меня знают, что и как...)


Подключаем телефон к компу и останавливаем сервер:

adb kill-server


Запускаем под root'ом:

sudo adb start-server


Проверяем коннект с аппаратом:

adb devices





Далее перечислены команды для различных действий.

Кликнуть по экрану:

adb shell input tap 300 1200

Где цифры — это координаты, первая по горизонтали (X), вторая по вертикали (Y) (от верхнего левого угла).

Для удобства, можно на телефоне сделать скриншот (в большинстве случаев это одновременное удержание кнопок вкл/откл и громкость вниз), сбросить картинку на комп и открыть её в граф. редакторе типа Gimp или Photoshop.


Свайп:

adb shell input swipe 100 500 1000 145

Снизу вверх маханёт.


Отправить текст:

adb shell input text bla-bla

Отправит «bla-bla».


Отправить код кнопки, например HOME:

adb shell input keyevent 3

Другие коды
0 --> «KEYCODE_0»
1 --> «KEYCODE_SOFT_LEFT»
2 --> «KEYCODE_SOFT_RIGHT»
3 --> «KEYCODE_HOME»
4 --> «KEYCODE_BACK»
5 --> «KEYCODE_CALL»
6 --> «KEYCODE_ENDCALL»
7 --> «KEYCODE_0»
8 --> «KEYCODE_1»
9 --> «KEYCODE_2»
10 --> «KEYCODE_3»
11 --> «KEYCODE_4»
12 --> «KEYCODE_5»
13 --> «KEYCODE_6»
14 --> «KEYCODE_7»
15 --> «KEYCODE_8»
16 --> «KEYCODE_9»
17 --> «KEYCODE_STAR»
18 --> «KEYCODE_POUND»
19 --> «KEYCODE_DPAD_UP»
20 --> «KEYCODE_DPAD_DOWN»
21 --> «KEYCODE_DPAD_LEFT»
22 --> «KEYCODE_DPAD_RIGHT»
23 --> «KEYCODE_DPAD_CENTER»
24 --> «KEYCODE_VOLUME_UP»
25 --> «KEYCODE_VOLUME_DOWN»
26 --> «KEYCODE_POWER»
27 --> «KEYCODE_CAMERA»
28 --> «KEYCODE_CLEAR»
29 --> «KEYCODE_A»
30 --> «KEYCODE_B»
31 --> «KEYCODE_C»
32 --> «KEYCODE_D»
33 --> «KEYCODE_E»
34 --> «KEYCODE_F»
35 --> «KEYCODE_G»
36 --> «KEYCODE_H»
37 --> «KEYCODE_I»
38 --> «KEYCODE_J»
39 --> «KEYCODE_K»
40 --> «KEYCODE_L»
41 --> «KEYCODE_M»
42 --> «KEYCODE_N»
43 --> «KEYCODE_O»
44 --> «KEYCODE_P»
45 --> «KEYCODE_Q»
46 --> «KEYCODE_R»
47 --> «KEYCODE_S»
48 --> «KEYCODE_T»
49 --> «KEYCODE_U»
50 --> «KEYCODE_V»
51 --> «KEYCODE_W»
52 --> «KEYCODE_X»
53 --> «KEYCODE_Y»
54 --> «KEYCODE_Z»
55 --> «KEYCODE_COMMA»
56 --> «KEYCODE_PERIOD»
57 --> «KEYCODE_ALT_LEFT»
58 --> «KEYCODE_ALT_RIGHT»
59 --> «KEYCODE_SHIFT_LEFT»
60 --> «KEYCODE_SHIFT_RIGHT»
61 --> «KEYCODE_TAB»
62 --> «KEYCODE_SPACE»
63 --> «KEYCODE_SYM»
64 --> «KEYCODE_EXPLORER»
65 --> «KEYCODE_ENVELOPE»
66 --> «KEYCODE_ENTER»
67 --> «KEYCODE_DEL»
68 --> «KEYCODE_GRAVE»
69 --> «KEYCODE_MINUS»
70 --> «KEYCODE_EQUALS»
71 --> «KEYCODE_LEFT_BRACKET»
72 --> «KEYCODE_RIGHT_BRACKET»
73 --> «KEYCODE_BACKSLASH»
74 --> «KEYCODE_SEMICOLON»
75 --> «KEYCODE_APOSTROPHE»
76 --> «KEYCODE_SLASH»
77 --> «KEYCODE_AT»
78 --> «KEYCODE_NUM»
79 --> «KEYCODE_HEADSETHOOK»
80 --> «KEYCODE_FOCUS»
81 --> «KEYCODE_PLUS»
82 --> «KEYCODE_MENU»
83 --> «KEYCODE_NOTIFICATION»
84 --> «KEYCODE_SEARCH»
85 --> «KEYCODE_MEDIA_PLAY_PAUSE»
86 --> «KEYCODE_MEDIA_STOP»
87 --> «KEYCODE_MEDIA_NEXT»
88 --> «KEYCODE_MEDIA_PREVIOUS»
89 --> «KEYCODE_MEDIA_REWIND»
90 --> «KEYCODE_MEDIA_FAST_FORWARD»
91 --> «KEYCODE_MUTE»
92 --> «KEYCODE_PAGE_UP»
93 --> «KEYCODE_PAGE_DOWN»
94 --> «KEYCODE_PICTSYMBOLS»

122 --> «KEYCODE_MOVE_HOME»
123 --> «KEYCODE_MOVE_END»

Вместо цифры можно отправить текстовый код:

adb shell input keyevent KEYCODE_HOME



Установка приложения:

adb install Superuser.apk



Ребут аппарата:

adb reboot



Этого вполне хватит для дальнейших действий. Посмотреть другие команды можно через adb --help либо почитать по ссылке в начале статьи.



Linux Deploy

Пришло время перейти к основной задаче. Нужно установить на телефон приложение Linux Deploy, которое позволяет разворачивать образы различных дистрибутивов Linux — Debian, Ubuntu, Kali Linux, Arch Linux, Fedora, CentOS, Gentoo, Slackware.

Скачать приложение можно как по ссылке, так и из Google Play. Если экран не рабочий, то качаем приложение на комп и устанавливаем через adb.

На 4pda, в инструкции по установке говорится о том, что «в редких случаях может понадобится использование системного BusyBox», я его не ставил и нужды в нем не испытывал.


Запускаем Linux Deploy и видим следующую картинку…



Если первые два пункта выполнены, тогда нажимаем кнопку



Здесь настраиваются основные параметры будущей ОС.

Дистрибутив — у меня это будет Debian.
Версия дистрибутива — я буду ставить jessie (Debian 8).
Имя пользователя — это имя будет использоваться для входа через ssh.
Пароль пользователя — запишите на бумажку (чтоб не лазать сюда) или можете задать свой.
Разрешить запуск SSH сервера — поставьте галку.
Параметры SSH — тут я изменил порт на 2224-й.

Больше ничего не менял.

Графику не запускаю, мне она не нужна, но если хотите, то поставьте соответствующую галочку («Разрешить запуск графической среды»). По умолчанию будет запущен VNC-сервер.
Для тех кто не понимает о чем речь, поясню: на телефоне никакого рабочего стола вы не увидите, это всё находится внутри контейнера. Подключится к нему можно с помощью соответствующего клиента, либо удалённо, либо непосредственно на телефоне, предварительно установив какой-нибудь клиент, например XServer XSDL.


Почитать про остальные параметры можно здесь.



Возвращаемся на предыдущий экран, жмём   и выбираем «Настройки».






Здесь я ничего не менял, но Вы можете поэкспериментировать, включить доступ к командной строке контейнера через браузер, доступ по telnet, автозапуск контейнера после перезагрузки аппарата и т.д.

Так же здесь находятся два важных пункта:

Удалить окружение — удаляет контейнер.
Обновить окружение — для подтверждения внесенных изменений в эти настройки.

Подробное описание можно почитать на 4pda.


Возвращаемся на предыдущий экран и жмем




Установить — создает контейнер.
Конфигурировать — это нужно будет нажать после создания контейнера.
Экспортировать — экспортирует готовый контейнер в систему. Готовые контейнеры можно где-то скачать, но я этим не интересовался.
Состояние — выведет некоторую инфу.
Очистить — очищает экран.


Жмём Установить и набираемся терпения, у меня установка длилась минут 30. Если всё прошло успешно, то мы должны увидеть следующее…



Контейнер установлен.



Жмем   и Конфигурировать





Далее кнопкой  стартуем наш контейнер…






Ну вот, наконец можно зайти в контейнер по ssh:

ssh -p2224 android@192.168.5.212

Как Вы помните, я менял порт. Пароль записан на бумажке.


Вуаля…




Далее всё стандартно…

sudo apt update
sudo apt upgrade




Для остановки контейнера нужно нажать



На этом всё.


  • 0
  • 4731
Поддержать автора


Telegram-чат istarik

Задать вопрос по статье
Telegram-канал istarik

Известит Вас о новых публикациях






Комментарии (0)

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.