Share This
Связаться со мной
Крути в низ
Categories
//Apple запрещает приложения эмулятора терминала на iPhone: в текущих версиях через них можно скачивать код

Apple запрещает приложения эмулятора терминала на iPhone: в текущих версиях через них можно скачивать код

09.11.2020Category : My Habr

apple zapreshhaet prilozhenija emuljatora terminala na iphone v tekushhih versijah cherez nih mozhno skachivat kod 844ae48 - Apple запрещает приложения эмулятора терминала на iPhone: в текущих версиях через них можно скачивать код

В начале ноября 2020 года сразу два разработчика эмуляторов терминала под iOS заявили (1, 2), что Apple собирается удалить их мобильные приложения iSH и a-Shell из магазина приложений App Store.

Причем создатель iSH уточнил, что приложение будет удалено из App Store уже завтра 10 ноября. Существование в магазине Apple приложения a-Shell также под угрозой, если разработчики срочно не выпустят обновление с удалением из программы команд curl, pip и wasm. Разработчики a-Shell подали апелляцию по этому требованию Apple.

Автор Linux терминала iSH Теодор Дюбуа (Theodore Dubois) пояснил, что Apple совсем недавно одобрила его приложение, а затем сообщила, что собирается его удалить. Разработчик пытался в течение двух недель понять, что там нужно исправить, но так и не смог понять претензии и логику системы App Review.

Ранее в мае этого года при первой попытке отправить iSH на рассмотрение был получен отказ. Apple отклонила приложение в соответствии с пунктом 2.5.2 руководства App Store Review Guidelines, в ответе также говорилось: «В частности, ваше приложение позволяет пользователю устанавливать исполняемый код Linux…». Чуть позже Apple пояснила — в данном случае недопустимым является «управление пакетами или загрузка любого кода из локальных или удаленных источников». Обнаружилось, что у Apple существует неписаное правило, касающееся функций управления пакетами.

В июне этого года Дюбуа решил выяснить детали этого запрета на конференции для разработчиков WWDC 2020. Apple позволила в онлайн-чатах общаться со своими сотрудниками в рамках этого мероприятия. И в одной из таких встреч Дюбуа смог пообщаться напрямую с разработчиком компании. Он пояснил, что Apple не нужны приложения, которое могут изменять свои функции после утверждения. Также не разрешен удаленный импорт пакетов, хотя в App Store есть популярные приложения, где запускается код на Python и поддерживается графический интерфейс для pip.

Дюбуа тогда спросил Боба (так назвался сотрудник Apple) — если он удалит apk из iSH, то поможет ли такое действие в его случае. На что Боб ушел от ответа, но посоветовал отправить исправленное приложение на одобрение.

Через пару месяцев Дюбуа удалил apk из iSH и отправил приложение 20 октября, на следующий день его одобрила Apple, а 22 октября оно появилось в App Store. Спустя четыре дня Apple без предупреждения позвонила разработчику и Майкл (так назвался сотрудник Apple) рассказал, что wget также является формой управления пакетами и эту функцию нужно убрать.

Оказалось, что за несколько дней в магазине App Store пользователи оценили приложение, а некоторые из них успешно попробовали его усовершенствовать — с помощью wget смогли установить apk. Причем разными способами.

cd wget http://dl-cdn.alpinelinux.org/alpine/latest-stable/main/x86/apk-tools-static-2.10.5-r1.apk cd / tar xvzf ~/apk-tools-static-2.10.5-r1.apk ln -s /sbin/apk.static /sbin/apk cd apk

Или таким:

wget -qO- http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86/apk-tools-static-2.10.5-r1.apk | tar -xz sbin/apk.static && ./sbin/apk.static add apk-tools && rm sbin/apk.static && rmdir sbin 2> /dev/null

Тем более, что исходный код эмулятора терминала для iOS iSH выложен на GitHub.

Дюбуа пояснил, что никто из его команды не говорил пользователям, как получить apk, но они все равно разобрались. Природа разработки iSH означала, что эта проблема была фундаментальной, поскольку пользователи всегда могут добавить обратно функцию, которую удалял автор. Дальше пользователи бы смогли придумать способ вернуть обратно wget, точно так же, как они смогли так легко добавить обратно apk.

Разговор с Apple ни к чему не привел. Специалисты компании не поняли, что в этом приложении wget просто загружает файлы, причем Safari разрешено скачивать файлы, а wget — нет. Apple стояла на своем — запрещен удаленный и локальный импорт кода. Специалист компании позже пояснил — можно выполнять код, который пользователь вводит в приложении, но не код, полученный из внешних источников. Хотя это не логично, так как никто не может помешать пользователю скопировать и вставить код из внешних источников в приложение.

Закончив читать пункты в списке отказа специалист Apple прояснил главную проблему — это приложение терминал Linux на iOS представляет собой угрозу безопасности. Непонятно как, но похоже, что злоумышленникпользователь сможет запустить вредоносный код на своем устройстве.

Дальнейшие апелляции Дюбуа в App Review не сыграли никакой роли — Apple собралось удалить его приложение из App Store.

Автор iSH подытожил, что его команда потеряла две недели на попытки договориться с Apple, но в итоге все равно это общение привело к нулевым результатам. Похоже, что процесс общения разработчиков и прохождения App Review был разработан компанией для максимального удобства Apple без особого внимания к тому, насколько это неудобно для сторонних авторов приложений. Apple может и должна давать больше возможностей, а не просто так отфутболивать разработчиков.

Разработчики a-Shell столкнулись с такой же проблемой. Их приложение может быть тоже удалено, если апелляция будет отклонена. Сейчас приложение a-Shel проходит тщательную проверку в Apple. Оказалось, что пользователи используют в нем pip install для добавления пакетов Python. Это также запрещено в пункте 2.5.2 в Руководстве App Store Review Guidelines: «Приложения должны быть автономными в своих пакетах и ​​не могут читать или записывать данные за пределами обозначенной области контейнера, а также они не должны загружать, устанавливать или выполнять код, который представляет или изменяет функции или возможности приложения, включая другие приложения". Apple делает исключение этого пункта для «образовательных приложений, предназначенных для обучения, разработки или предоставления студентам возможности тестировать исполняемый код».

Программист Саагар Джа (Saagar Jha) из команды iSH отметил, что несмотря на кажущуюся мощь сред этих двух эмуляторов терминала, они изолированы, как и любое другое приложение iOS.

  • 0 views
  • 0 Comment

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Связаться со мной
Close