Как установить deb файл на андроид
Чтобы начать создавать deb пакеты, нужно установить несколько пакетов:
Подготовка папки с исходниками
Для того, чтобы dh_make и другие утилиты могли работать с папкой с исходниками, нужно привести ее в специфичный вид.
Папка должна называться имяпакета-версия. Т.е. если у меня есть папка Plugins с программой версии 0.1, то я создаю папку с именем plugins-0.1.
Теперь нужно создать архив с этой папкой. Архив должен содержать в имени *.orig.tar.gz, т.е.:
Последний подготовительный шаг, это создание в папке с исходниками папки debian со множеством служебных файлов. Чтобы это сделать, нужно выполнить команду:
В процессе выполнения этой команды будет задан вопрос о том, какой тип архива мы создаем, самый простой это single.
Настройка пакета
Вся настройка пакета происходит путем редактирования файлов в каталоге debian. Рассмотрим те файлы, которые будем использовать:
- changelog — история пакета.
- control — главный конфиг пакета;
- rules — аналог Makefile для пакета;
changelog
Данный файл содержит историю изменения пакета и текущую версию пакета. Посмотрим на его содержимое:
В начале идет название пакета — libvksplugins, затем его версия. Версия делиться на две части символом «-». Первая часть показывает версию программы в пакете, вторая «ревизию» пакета. Ревизия это версия пакета, т.е. если раньше такого пакета не было, то ревизия равна 1. Если же пакет с такой версией программы уже был, но в нем произошли изменения, то ревизия увеличивается.
Слово unstable показывает, что пакет является не стабильным, т.е. он не был протестирован должным образом на машинах пользователей.
Надпись urgency=low показывает срочность изменения. Т.к. срочности нет, то значение равно low. Если бы, мы делали пакет для исправления серьезной уязвимости или ошибки, то значение можно было бы установить в high.
После первой строки идет пустая строка, а за ней первая запись:
В Debian, changelog используется для автоматического закрытия ошибок в системах отслеживания ошибок в программных продуктах. Т.к. в данном случае, я не использую такую систему, то эта строка принимает вид:
Последняя строка является подписью человека, сделавшего запись. В ней содержится имя и адрес, а также дата изменения.
После установки deb пакета, файл changelog устанавливается в
control
Файл debian/control является главным конфигом, при создании deb пакета. Вот пример такого файла:
Видно, что файл разбит на секции при помощи пустых строк. Каждая секция описывает один пакет, создаваемый из папки с исходниками. Рассмотрим их по порядку:
Source Данная секция говорит о том, что нужно создать пакет исходных кодов. Параметром указано libvksplugins, это значит, что пакет исходных кодов будет называться libvksplugins.
Priority Эта секция устанавливает приоритет пакета. Т.к. система может прекрасно обойтись без нового пакета, то значение секции установлено в optional. Т.е. этот пакет не обязателен для установки. Подробнее о приоритетах написано здесь.
Maintainer Эта секция описывает контакты человека, создающего пакет. Ее формат довольно прост и дополнительного описание не требует.
Build-Depends Одна из самых важных секций, устанавливающая зависимости пакета. Зависимости, указанные в данной секции должны быть выполнены, чтобы можно было собрать пакет. Т.е. список зависимостей для сборки и установки могут отличаться.
Видно, что в зависимостях стоят debhelper (>= 9), cmake. Зависимость debhelper (>= 9) ставиться для всех пакетов по умолчанию. Она нужна для корректной работы программ вида dh_*.
Второй элемент cmake был добавлен потому, что папка с исходниками содержала файл CMakeLists.txt, т.е. для сборки используется система сборки CMake. Для того, чтобы узнать, какие зависимости есть у программы, можно почитать ее документацию. Кроме этого, можно воспользоваться командой dpkg-depcheck. Данная команда должна запускаться так:
Но, т.к. при использовании CMake нет скрипта конфигурирования, то я использую ее так:
Из примечательных тут можно отметить:
cmake
qt4-qmake
libqt4-dev
Остальные являются зависимостями данных. Причем, cmake уже есть в списке зависимостей сборки. В принципе, можно его оставить как есть или указать используемую версию:
При этом в CMakeLists.txt указана версия cmake, которую нужно использовать:
Я думаю, что разработчику виднее, и поэтому указываю версию из CMakeLists.txt. Для Qt 4 все понятно с номерами версий, но для очистки совести проверим и их версии:
Т.е. для Qt 4 указываем версию 4.8.6:
Standards-Version Версия стандарта, в соответствии с которым создан файл. Это значение не нужно менять.
Section. Секция для пакета, т.е. группа пакетов, выполняющая одну задачу. В Политике Debian разделе 2.4 этот вопрос описан более подробно.
Homepage Домашняя страница проекта. Т.к. данный код писал я и у него нет страницы, просто удаляю эту строку.
Vcs-* Ссылки на репозитории проекта. Их у меня тоже нет, поэтому удаляю эти строки.
Другие пакеты После секции файла, где описывается пакет с исходниками, идут секции, которые описывают другие пакеты, создаваемые из пакета с исходниками. Схема создания пакетов:
Из схемы видно, что из исходников программы, я хочу получить 4 пакета:
- пакет с исходными кодами;
- пакет с бинарником (самой библиотекой);
- пакет для разработки (заголовочные файлы);
- пакет с документацией.
Мой персональный ответ на данный вопрос, заключается в том, что такое разбиение помогает структурировать программу по тому, как я хочу с ней работать. Для разработки я поставлю dev пакет, а для использования нет.
Кроме описанных выше пакетов, можно создать dbg пакет с отладочной сборкой программы. Это может пригодиться, если программа падает и у Вас есть под рукой отладчик. Однако, я так и не смог понять как это делать. Документация не дает ответа на этот вопрос. Если делать так как описано в ней, то я либо получаю пустой пакет либо получаю кучу ошибок при сборке.
Схема на рисунке выше показывает, что пакет с исходниками называется libvksplugins_source, однако, в файле control указано, что пакет с исходниками будет называться libvksplugins. На самом деле, он действительно будет называться libvksplugins, а пакет с бинарниками, будет называться libvksplugins… deb. Суть этой путаницы в том, что пакет с исходниками представляет собой tar архив и служебные файлы, тогда как пакет бинарников это архив с расширение deb.
Настройка пакета библиотеки Посмотрим внимательно на описание пакета библиотеки:
Для пакетов, содержащих скрипты или тексты, нужно указывать значение как all.
Третья строка, описывает зависимости создаваемого пакета. Вот как она описана в 4й главе Руководства начинающего разработчика Debian:
Утилита dh_shlibdeps вычисляет зависимости двоичного пакета от общих библиотек. Она генерирует список исполняемых файлов ELF и общих библиотек, которые находит для каждого двоичного пакета. Этот список подставляется вместо $ .
Утилита dh_perl вычисляет зависимости Perl. Она генерирует список зависимостей от perl или perlapi для каждого двоичного пакета. Этот список подставляется вместо $ .
Некоторые команды пакета debhelper могут добавлять зависимости к вашему генерируемому пакету. Каждая команда генерирует список необходимых пакетов для каждого двоичного пакета. Этот список подставляется вместо
$ .
Утилита dh_gencontrol генерирует файл DEBIAN/control для каждого двоичного пакета, заменяя $ , $ , $ и т.д на полученные значения.
Т.е. эта строка говорит о том, что сборщик пакета сам определит зависимости.
Последний раздел данной секции это описание пакета. Первая строка содержит кратное описание, последующие строки содержат более подробное описание. Подробное описание, должно иметь определенный формат:
- строка должна начинаться с пробела;
- строка не должна быть длиннее 80 символов;
- пустая строка должна начинаться с пробела и состоять из символа точки.
Настройка пакета документации Вместе с библиотекой поставляется документация, чтобы она была в отдельном пакете, добавляем его описание:
rules
Данный файл является аналогом Makefile для сборки пакетов. По умолчанию, он создается в таком виде:
Видно, что это bash скрипт с синтаксисом Makefile. Единственная интересная конструкция здесь это
Это шаблон, который для всех целей вызывает dh команду с передачей аргументов ей. Для сборки пакета важно, чтобы текст dh $@ начитался с символа табуляции. Т.е. отступ это не пробелы, а табуляция.
Т.к. исходники используют систему сборки CMake, то нужно изменить эту запись следующим образом:
Содержимое пакетов
После того, как мы указали в debian/control какие пакеты мы хотим получить, нужно указать какие файлы в какой пакет помещать. Для этого, для каждого названия пакета из файла control, нужно создать в папке debian два файла. Первый должен называться пакет.dirs, а второй пакет.install. Суть файлов в том, что первый указывает, какие папки нужно создать для пакета, а второй, какие файлы включить в пакет.
Посмотрим на их содержимое:
Важный момент, отсутствие начальной дроби в путях и отсутствие дроби в конце пути к папке. Проверив, куда CMake устанавливает файлы библиотеки, можно сформировать такие файлы:
Завершение настройки
Т.к. исходники мои, то никаких дополнительных описаний и ограничений copyright у меня нет, поэтому я удаляю все лишние файлы из каталога debian.
Сборка пакетов
После настройки, сборка пакетов происходит довольно просто, нужно в папке проекта (которая включает подпапку debian) выполнить команду:
Параметры -us -uc говорят о том, что не нужно подписывать gpg ключом созданные пакеты. Их можно не использовать, если настроен ключ подписи gpg по умолчанию. Как указать ключ подписи по умолчанию, я тоже не понял. Если все прошло хорошо, то у нас поваляется набор пакетов в папке выше:
Заключение
Если вы дочитали до сюда — значит вы любите читать.
Этот текст является результатом моего опыта внедрения deb пакетов на работе. Опыт показал, что наличие сетевого репозитория (reprepro) и внимательное отслеживание версий, позволяют без проблем обновлять и тестировать различные версии ПО на парке из 30 машин с системами Astra Linux 1.3, 1.4 и Эльбрус ОС.
Многие владельцы Android-фонов испытывают трудности с запуском настоящего Linux-софта на своих девайсах. По всем законам он вроде должен здесь работать, да вот только для его установки почему-то нужны права root, сам он распространяется в каких-то самодельных инсталляторах, а выбор программ сильно ограничен. Эта статья предложит ответ на вопрос, почему так получилось, и подскажет решение — удобный способ установки и запуска почти любого Linux-софта в Android.
Как известно, андроид основан на ядре Linux и включает в себя набор стандартных библиотек и утилит командной строки, свойственных обычному Linux-дистрибутиву. Однако запуск классического Linux-софта здесь сильно затруднен из-за множества причин, в числе которых несовместимость ABI, отсутствие менеджера пакетов, собственная система безопасности и отсутствие многих компонентов стандартной Linux-системы.
Так, несмотря на наличие в Android стандартной библиотеки libc и других, их реализация в большинстве случаев несовместима с библиотеками от проекта GNU и сильно урезана по функционалу. По этой причине Linux-софт нужно как минимум пересобирать специально под Android и ARM-процессор, а во многих случаях еще и патчить, добавляя функционал, отсутствующий в библиотеках.
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 Nexus, Samsung Galaxy S2 (GT-I9100), Samsung Galaxy Y (GT-S5360), Motorola Atrix 4G, 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 призван решить многие проблемы с установкой Linux-софта, которые только могут возникнуть у пользователя, и подготовить систему Android к принятию инородных для нее приложений. По сути, система состоит из четырех компонентов:
- репозиторий с прекомпилированными для Android приложениями, используя который можно установить многие Linux-приложения с помощью одной команды;
- менеджер пакетов, в качестве которого используется легковесный Opkg или dpkg вместе с apt-get в экспериментальной версии BotBrew Bazil;
- менеджер процессов runit, необходимый для того, чтобы правильно запускать и поддерживать работу демонов, если таковые будут установлены;
- собственная система сборки, которая содержит в себе все инструменты, необходимые для кросс-компиляции приложений с помощью любого настольного Linux-дистрибутива.
Начальная инициализация
Список установленных приложений
Итак, как же использовать BotBrew для установки Linux-софта? Для начала нам понадобится пакет с самой программой. Он есть в Google Play (отмечу, что нужен BotBrew root, а не экспериментальный Bazil) и весит меньше мегабайта. После установки запускаем и нажимаем кнопку «Proceed» внизу экрана, чтобы софтина выкачала все необходимые для ее работы компоненты, такие как консольный менеджер пакетов, и другие утилиты (в терминах Debian Linux — bootstrap). Весят они всего несколько мегабайт, поэтому ждать придется недолго. По окончании установки BotBrew выведет на экран окно с официальной интернет-страницей проекта, которое можно смело закрывать.
Теперь на экране ты должен увидеть список пакетов, доступных к установке. Их довольно много, но графических приложений по описанным выше причинам ты среди них не найдешь. Зато есть разномастные серверы, компиляторы и интерпретаторы, так что всем, кто хочет серьезно «поиграться» со смартфоном, будет где развернуться. Для установки пакета достаточно тапнуть по его имени и на следующем экране, содержащем информацию о приложении, нажать кнопку «Install».
Если во время bootstrap’а BotBrew возникли проблемы, ты можешь попробовать установить его вручную с помощью следующей команды:
Если и это не помогло, можно попробовать удалить все установки («Remove BotBrew» в настройках) и затем попробовать запустить эту команду.
После этого пакет появится на вкладке «Installed», однако никакой кнопки «Run» или чего-то подобного ты не увидишь. Приложение придется самостоятельно запускать из консоли, что, впрочем, логично. Само приложение устанавливается внутрь каталоговой структуры /data/botbrew, в котором «эмулируется» реальное окружение Linux-дистрибутива с каталогами /etc, /usr и другими. А чтобы не мучить пользователей необходимостью набирать полный путь до команды, разработчики BotBrew предусмотрели одноименную команду-враппер. Чтобы с ее помощью запустить, например, установленный консольный браузер Lynx, следует набрать такую команду:
Как вариант — каталог /data/botbrew/bin можно добавить в переменную окружения PATH, но это придется делать после каждого запуска терминала:
Сайт журнала в консольном браузере Lynx
Процесс установки пакета
С демонами и разными сетевыми сервисами, кстати, дела обстоят намного лучше. После старта демоны сразу будут запущены, а управлять их включением можно через графический интерфейс, доступный по нажатию на кнопку «Play» в нижней части интерфейса BotBrew. Некоторые приложения могут потребовать создания дополнительных пользователей и изменения их параметров, это можно сделать так же, как в обычной Linux-системе:
- Создание пользователя:
$ botbrew adduser vasya - Открытие пользователю доступа в интернет:
$ botbrew addgroup vasya inet - Переключение BotBrew на другого пользователя:
$ botbrew su vasya
Чтобы оставаться «на острие прогресса», репозиторий BotBrew нужно время от времени обновлять, нажав на соответствующую кнопку в графическом интерфейсе (ее ни с чем не спутаешь). Новые версии пакетов будут отображаться на вкладке «Upgradable». Достаточно тапнуть по его имени и нажать «Upgrade».
Управлять сервисами в BotBrew действительно просто
В маркете можно найти также приложение под названием BotBrew Basil, помеченное как экспериментальное. По сути, это все тот же BotBrew, но с одним весьма важным отличием. Вместо собственных репозиториев и менеджера пакетов Opkg он использует ARM-репозитории Debian Linux и менеджер пакетов apt-get. Это значит, что количество софта, которое можно установить с помощью «бразильской версии» приложения, намного больше. В десятки раз больше.
Кроме использования дебиановских репозиториев, Basil отличается также слегка измененным интерфейсом. Например, сразу после запуска он предлагает выбрать каталог установки. По умолчанию используется /data/botbrew-basil, что, на мой взгляд, вполне логично, однако ты можешь выбрать любой другой, в том числе на ext2-разделе карты памяти (FAT не подойдет).
Второе важное отличие — это возможность выбрать способ использования приложения, которая появляется сразу после нажатия «Proceed». Вариантов здесь четыре:
- Use BotBrew on the command line — по сути, аналог установки в стиле обычного BotBrew.
- Use the dpkg/APT system — установка вместе с apt-get и репозиториями Debian. Рекомендуемый вариант установки.
- Run Python programs — аналог первого варианта с автоматической установкой Python.
- Install a minimal Debian — минималистичная установка Debian.
После bootstrap’а BotBrew Basil на экране появится все тот же интерфейс управления установкой приложений, знакомый нам по классической версии приложения, а в системе появится команда botbrew2, с помощью которой можно запускать софт. Каких-то существенных отличий в управлении здесь нет, кроме разве что команды apt-get вместо opkg и возможности подключения дополнительных репозиториев (в том числе репозитория первого BotBrew) прямо через интерфейс установки приложений.
BotBrew Basil предлагает несколько вариантов установки
Прекомпилированные приложения и репозитории с готовыми пакетами — это прекрасно, но что, если необходимого приложения нет среди доступных для установки? Ведь даже тот же BotBrew Basil, позволяющий подключать репозитории Debian с огромным количеством софта, в силу своего экспериментального характера заработает далеко не на каждом смартфоне.
В этом случае мы можем попробовать собрать приложение самостоятельно. Однако здесь нас ждет сразу несколько трудностей: дело в том, что для сборки софта для смартфона придется подготовить необходимый инструментарий кросс-компиляции, затем учесть все зависимости собираемого приложения и, наконец, в некоторых случаях внести необходимые изменения в код. Все это довольно хлопотные дела, которые вряд ли стоят того, чтобы тратить на них время.
Тем не менее мы можем воспользоваться наработками других людей, чтобы автоматизировать процесс сборки софта. Одно из наиболее развитых и интересных решений из этой области — набор скриптов SCRIPTSET, разработанный пользователем smitna с XDA Developers. Он позволяет буквально в пару команд собрать множество самых разных приложений, в числе которых htop, ImageMagick, iptables, ELinks, Screen, mc, node.js, Samba, strace, QEMU, Parted, SANE (его можно использовать для прямой печати на принтере с телефона!) и множество других. Скрипт сам выкачает кросс-компилятор, все необходимые зависимости и приложения, наложит патчи, где это необходимо, и сгенерирует готовый для распаковки на телефон архив.
SCRIPTSET работает только в Linux, но, если у тебя Windows, ты можешь установить Ubuntu в виртуальной машине. Далее следует открыть терминал и установить необходимые для сборки кросс-компилятора инструменты:
После этого можно получить сам SCRIPTSET и распаковать его:
В результате распаковки мы получим… еще один архив: scriptset-2.6.tar.bz2. Но и это еще не все, архив запакован без традиционного для tar корневого каталога, поэтому его необходимо создать самостоятельно. И уже в него производить распаковку:
После распаковки в каталоге появится несколько скриптов, конфигов, а также внушительных размеров файл README, содержащий инструкции по использованию скриптов. На скриптах не стоит бит исполнения (что не удивляет, учитывая предыдущие заморочки), поэтому его надо поставить самостоятельно:
Запуск сборки приложений
Далее открываем файл configuration.conf на редактирование и меняем в нем следующие строки:
Этого будет достаточно для корректной сборки любого приложения; целевым процессором будет стандартный ARMv7 с дополнительным набором инструкций NEON. Такой установлен в любом смартфоне, выпущенном за последние три-четыре года. Каталог /data/sysroot будет использован для установки приложений на смартфоне, однако, как это ни странно, его придется также создать и на настольной машине:
Как объясняет автор скриптов, такое действие необходимо потому, что пути для ключевых каталогов в некоторые приложения вшиваются на этапе сборки. Поэтому, если бы мы собрали приложение, используя в качестве корневого текущий и любой другой каталог, оно бы просто не заработало на смартфоне из-за различия в путях. Я уверен, что корректнее было бы решить эту проблему с помощью chroot, но проще и быстрее создать нужный каталог, а по окончании работ — удалить его.
Далее мы должны указать список приложений, которые планируем собирать. Для этого открываем файл package_selection.conf и меняем no на yes в нужных опциях. Например, чтобы собрать bash, ImageMagick и Screen, нужно поменять три следующих строки:
Если все необходимые пакеты были установлены и компилятор в ходе сборки не выдал никаких ошибок, в результате сборки в текущем каталоге появятся два архива: cs-sysroot.tar.bz2 и android-mysysroot.tar.bz2. Первый — это окружение, необходимое для запуска приложений, созданное кросс-компилятором, а второе — сам набор приложений. Оба этих архива необходимо скинуть на карту памяти смартфона, а затем, запустив на нем эмулятор терминала или подключившись по ADB, выполнить две команды:
В результате во внутренней памяти смартфона появится каталог /data/sysroot, в котором и будут размещены приложения. Запускать их следует из того же терминала, указывая полный путь. Например:
Ну или после запуска терминала добавить /data/sysroot/usr/bin в PATH:
Несмотря на довольно серьезные различия между Android и типичным Linux-дистрибутивом, установить консольные Linux-приложения на смартфон не так уж и сложно. К сожалению, о графических приложениях речи пока не идет, но проекты портирования библиотеки Qt и графического сервера Wayland в Android уже есть, и в скором времени, надеюсь, мы получим рабочее решение.
Впервые опубликовано в журнале «Хакер» от 08/2013.
App Store — не единственный способ установки приложений для iOS. Раньше люди специально делали джейлбрейк, чтобы установить каталог Cydia. Но в последнее время появилось несколько сторонних каталогов, которые работают вообще без джейлбрейка. Удивительно, но Apple пока не ставит им палки в колёса.
Эти каталоги приносят реальную пользу, ведь здесь независимые разработчики свободно распространяют свои программы без комиссий и цензуры. Apple не может произвольно отзывать со смартфонов такие приложения. А люди получают более широкий выбор программ, включая эмуляторы Linux, независимость от производителя и реальное право владения.
Кроме альтернативных каталогов, «бегство из тюрьмы» Apple идёт и другим путём — через платформы внутри других приложений. Например, такие платформы создаются на базе популярных мессенджеров, которые хотят запустить свои внутренние каталоги мини-приложений и свои платёжные системы.
Типичный пример — каталог китайского технологического гиганта Tencent внутри мессенджера WeChat. Это отдельная платформа с мини-приложениями на HTML5 размером меньше 10 мегабайт. То есть неважно, у вас Android, iOS или другая операционная система. Всё равно мини-программы WeChat можно скачать и запустить стандартным способом в едином интерфейсе. По сути, это полноценная платформа, открытая для независимых разработчиков — в каком-то смысле конкурент Google Play и App Store.
Мини-приложения WeChat
Tencent договорилась с Apple, что будет принимать в свой каталог только мини-приложения, соответствующие правилам App Store. Это один из вариантов, как разработчики получают доступ к пользователям iOS в обход Apple.
Сама Apple тоже видит потенциал мини-приложений. В последней версии iOS 14 она представила App Clips — фрагменты приложений, которые запускаются на телефоне без установки полной версии программы.
Каталог AltStore запустился в 2019 году. В нём можно найти программы, которые Apple не допускает в App Store по разным причинам.
Как вообще работает AltStore? Дело в том, что Apple разрешает разработчикам для тестирования устанавливать на iOS свои приложения через Xcode для тестирования, а AltStore просто автоматизирует этот процесс и обновляет семидневные таймеры Apple на работу приложений, установленных в обход App Store. То есть каждое приложение пользователь устанавливает как программу якобы личной разработки.
Чтобы загрузить программы из каталога, нужно сначала установить AltServer под macOS 10.14.4+ или Windows 10+. На компьютере должен стоять iTunes, где надо включить синхронизацию со смартфоном по WiFi.
Cинхронизация по WiFi
Затем подключить устройство — и установить туда клиент AltStore через десктопный сервер.
Для работы придётся ввести Apple ID и пароль. Можно зарегистрировать отдельный Apple ID для этих целей.
Чтобы AltStore заработал, требуется установить доверие к новому Apple ID в настройках iOS. После этого можно залогиниться в приложение на смартфоне под тем же Apple ID, что и на десктопе — клиент и сервер работают в связке, словно вы тестируете на смартфоне приложения своей разработки, как программист. То есть установить приложения на смартфон можно только при подключении смартфона к десктопу. Кроме того, у каждого приложения установлен счётчик на 7 дней, а AltStore постоянно обновляет его (тоже требуется соединение с сервером). По этой причине желательно запускать сервер при каждой загрузке ОС на десктопе.
Внутри мобильного AltStore доступен список приложений для установки. Другой вариант — отправлять их с десктопа.
Кстати, можно зайти на unc0ver.dev, скачать и спокойно установить приложение Unc0ver для джейлбрейка, если есть такое желание. Это самый простой способ поставить каталог Cydia с десятками программ, которых нет в App Store.
Каталог Cydia
Но это не особо требуется, потому что без всякого джейлбрейка через AltStore на iOS ставится любое приложение в формате *.ipa. Несколько полезных приложений собрано в каталоге AppMarket. Просто скачиваем zip-архив, извлекаем .ipa — и устанавливаем через AltStore.
Одно из интересных приложений iOS — UTM для запуска виртуальных машин. По понятным причинам это и подобные приложения запрещены в App Store. Но это очень крутой инструмент, который эмулирует любой процессор и запускает любую операционную систему. Без проблем на планшете запускается Debian Linux или Windows 7.
Процессор в последних iPad Pro мощнее, чем во многих современных ноутбуках, так что эта идея не лишена смысла.
UTM ставится через AltStore без джейлбрейка, как и сотни других свободных программ, не проходящих цензуру «яблочной компании».
Ещё одно полезное приложение в AltStore (и запрещённое в App Store) — это DolphiniOS, популярный кросс-платформенный эмулятор для запуска любых игр GameCube или Wii с продвинутыми опциями типа повышения разрешения до 1080p и больше (для игры на Apple TV). Как известно, в App Store запрещены любые эмуляторы и консольные приложения (и многое другое).
Также запрещён iSH — полноценный шелл, через который запускаются реальные приложения Linux в нативной консоли.
Консоль iSH — одна из многочисленных программ, запрещённых в App Store
Автор AltStore — американский программист Райли Тестут (Riley Testut). Вообще, это приложение появилось в каком-то смысле случайно. Сначала Райли разработал эмулятор Delta для запуска на iOS классических видеоигр Game Boy Advance, Nintendo 64 и Nintendo DS.
Эмулятор Delta
Цензура App Store не пропустила его приложение в официальный каталог — и тогда Райли нашёл способ обойти этот запрет через AltStore. К удивлению многих, Apple не предприняла никаких действий против этого хака.
Airport — ещё один альтернативный каталог, куда принимают независимые программы (форма заявки). Он работает через сервис Apple TestFlight, который предназначен для бета-тестирования программ на широкой аудитории до их официальной публикации.
Каталог Airport
По условиям Apple TestFlight, количество бета-тестеров приложения не может превышать 10 000 человек. Вряд ли Airport представляет конкуренцию App Store в нынешнем виде, но это всё равно важный эксперимент. Он даёт разработчикам ещё один способ выйти на аудиторию iOS в обход корпорации Apple, которая контролирует все подступы, считая пользователей как бы своей «собственностью». В июне 2021 года компания опубликовала программный документ "Building a Trusted Ecosystem for Millions of Apps", в котором объясняет запрет на свободную установку программ из сторонних источников (sideloading) заботой о пользователях. Сомнительно, что такое объяснение убедит европейскую антимонопольную комиссию ЕС.
Год назад Apple забанила Fortnite за нарушение правил каталога. В ответ Epic Games подала в суд, обвинив Apple в злоупотреблении монопольным положением (речь о завышенной комиссии 30%). Этот пример показывает, что некоторые разработчики недовольны текущими условиями App Store. Но Apple может ответить: не нравится — не пользуйтесь. Распространяйте свои приложения через альтернативные каталоги, ведь такие действительно существуют.
Если суд примет эти аргументы Apple, то компанию могут заставить поддерживать альтернативные каталоги на своей платформе, как в своё время Microsoft запретили навязывать пользователям свой браузер Internet Explorer, во избежание злоупотребления монопольным положением. Так что судьба альтернативных каталогов во многом зависит от исхода судебного процесса Epic Games v. Apple.
Интересно, что та же Cydia позволяла устанавливать приложения на iPhone ещё до появления App Store в 2008 году. Сейчас она присоединилась к иску против Apple, обвиняя её в злоупотреблении монопольным положением в части запрета свободной установки программ на смартфоны пользователей. Разбирательства по этому вопросу идут также в Европе.
Альтернативные каталоги — это реальный способ распространять свои приложения в экосистеме Apple в обход App Store. Файлы приложений iOS уже сейчас можно спокойно выкладывать на любом хостинге, любом сайте. Возможно, антимонопольные разбирательства против Apple в Европе и США окончательно узаконят такую практику.
На вашем компьютере может быть файл какого-либо типа с расширением .DEB , и вы не можете открыть его, потому что не знаете об этом и не знаете, какую программу использовать для уметь просматривать все содержимое, хранящееся в пакете Debian .
Обычно эти типы стандартных форматов DEB содержат два типа файлов bzip или gzip , первый из которых используется для управляющей информации установка и другая для получения реальных данных . В основном .DEB используется для пакетов установки программного обеспечения и считается расширением системы операционной системы Linux . > включая Kubuntu, Ubuntu, Edubuntu и PCLinuxOS.
Если у вас возникли проблемы с открытием этого типа формата, мы объясним различные существующие методы , чтобы вы могли приступить к выполнению этого с вашего компьютера или мобильного телефона . >.
Что это такое и для чего используются файлы с расширением .DEB?
Эти пакеты DEB являются двоичными файлами , которые содержат записи двух типов, один из которых отвечает за информацию, контролируемую в хранилище, > тогда как другой отвечает за управление всеми реальными данными программы для этого пакета.
Другими словами, программные пакеты Debian представляют собой сжатые файлы, которые обычно используются в системе Linux и ее различных версиях . где они в основном используются для выполнения установки в этих операционных системах.
Как открыть и установить файлы .DEB на смартфоны или компьютеры?
Поскольку это не очень распространенный формат для большинства пользователей, могут возникнуть проблемы во время открытия , поскольку неизвестно, как это сделать или какой используют для этого.
Таким образом, здесь мы объясняем, как очень просто и быстро открыть эти пакеты в Windows, Mac, Linux, Android и iPhone , следуя каждому из методов. Мы покажем вам следующее:
В Linux
Возможность открывать эти пакеты Debian в Linux -это простой и быстрый процесс, который мы научим вас, как делать дальше:
- Помните, что Debian-это простой текстовый формат, поэтому мы просто выбираем важный-двоичный файл-файл •.
- , чтобы подтвердить тип файла. нажмите клавишу «Y». Таким образом, вы сможете проверить содержание.
Загрузите Asql_1.6-1_all.deb
На ПК с Windows
- Для начала вам потребуется загрузить на компьютер программное обеспечение Zipware (ссылка ниже) .
- После загрузки вам потребуется открыть его. и установите его, принимая значения по умолчанию по ходу процесса.
- По завершении установки вы увидите значок программы в рабочий стол.
- Ниже будет запустить его , дважды щелкните значок на рабочем столе.
- Внутри системы В приложении нажмите «Открыть» , расположенный на панели инструментов , и выберите файл .deb , который хотите открыть.
- Когда он открыт, вы можете видеть все папки, хранящиеся в нем.
- Вы можете открыть любой из них, просто дважды щелкнув или перетащив его на рабочий стол.
Загрузить Zipware
На компьютерах Mac
Для компьютеров Mac этот процесс очень похож на Linux, касается вставки некоторых команд , которые позволяют извлечь информацию, содержащуюся в эти форматы. Для этого выполните следующие действия:
- Первым делом будет использовать команду ar, эта утилита уже по умолчанию найдена в MacOS и может использоваться следующим образом : ar –x your_debian.deb.
- Другой способ-использовать команду dpkg , она недоступна в MacOS , поэтому по умолчанию. Поэтому его необходимо получить с помощью macports или brew.
- Чтобы установить dpkg через brew , у вас есть чтобы использовать эту команду: brew install dpkg.
- Когда у вас есть dpkg , вы можете запустить его, чтобы извлечь информацию из файла: dpkg –x your_debian.dep/output/folder
На мобильных телефонах Android
.deb форматы являются пакетами Linux , поэтому вы не можете установить пакет Linux на Android с учетом это две разные операционные системы, в которых они используют только ядро . Поскольку они используют одно и то же ядро, Android может установить систему Linux и запустить ее одновременно с вашей . Однако это не позволяет разрабатывать все функции.
На устройствах iPhone с iOS
В устройствах iOS этот формат можно открыть, если в idevice установлены iFiles. Чтобы установить его в смартфоне просто перейдите в /var/root/Media/Cydia/AutoInstall , а затем вставьте содержимое iFile.rar и перезапустите терминал. Когда мобильный телефон снова включается, мы выполняем следующие действия:
- Первым делом откройте iTools.
- Когда вы вошли, перейдите в /var/mobile и добавьте файл . deb с помощью кнопки Загрузить.
- Теперь вы входите в свой смартфон и выбираете, чтобы открыть iFile, там вы идете по маршруту /var/mobile/.
- , когда Вы находитесь на этом маршруте, вам просто нужно нажать на документ .deb , чтобы установить и успешно открыть его.
Список лучших приложений и альтернативных программ для запуска файла с расширением .Deb
В настоящее время существуют различные программы, способные открывать и выполнять расширения . Deb в разных операционных системах . Таким образом, здесь мы представляем лучшие приложения и программы для этого:
Читайте также: