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



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

    Причем создатель iSH уточнил, что приложение будет удалено из App Store уже завтра 10 ноября. По обновленным данным, Apple решила отложить эту процедуру на некоторое время.

    Существование в магазине 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 представляет собой угрозу безопасности. В посте в личном блоге Дюбуа цитирует шутку xkcd, что это уязвимость «атакующий может выполнить вредоносный код на собственной машине».

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

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

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

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

    Подробнее

    Комментарии 78

      +40
      Сарказм:

      Будущее Apple: при покупке пользователь получает всего лишь фотографию устройства в стильной рамочке с закругленными углами, и все. На обратной стороне фотографии написан текст: "Приобретенное Вами реальное устройство в течение всего срока эксплуатации остается в специальном помещении надежно контролируемом компанией Apple, потому что только так мы можем гарантировать подлинную безопасность устройства для потребителя. Покупайте устройства компании Apple — самые безопасные устройства в мире! А еще рамочка для этой фотографии сделана из биоразлагаемого пластика и начнет распадаться через месяц. Apple — на страже безопасности и экологии!"

        0

        Фотография — это уже неэкологично.


        Вспомните "Generation "П"" — вы получите бумажку (самораспадающуюся) с текстом: "Это фотография вашего реального устройства, приобретенного… " (и далее по тексту).

          0

          "Ceci n’est pas une pipe"

          0
          в следующей версии уберут рамочку из коробки и её нужно будет покупать отдельно
            0

            При этом без рамочки бумажка будет разлагатся в 20 раз быстрее

          +2
          Apple отложил удаление приложения, но мне не ясно на какой срок и на каких условиях.

          We got a call this evening from someone who runs App Review. They apologized for the experience we had, then told us they've accepted our appeal and won't be removing iSH from the store tomorrow. We'll stay in contact with them to work out details.

          — iSH (@iSH_app) November 9, 2020
            0

            Вот этот лучший из бесплатных:
            https://apps.apple.com/ru/app/libterm/id1380911705?l=en

              +10
              «Те, кто готов променять свободу на безопасность, не достойны ни свободы, ни безопасности». Выбрал закрученную со всех сторон платформу — страдай.
              +20

              И после этого Apple пытается нам рассказывать, что iPad Pro — это устройство которое может заменить комп. В Google Play есть замечательный Termux, благодаря которому у меня в телефоне есть полноценные git, node.js, typescript и т. д. А iOS — платформа крайне недружественная к разработчикам. Причем ни к тем, кто разрабатывает для iOS, ни к тем, кто использует их девайсы для разработки. И это за наши же деньги.

                +4
                Вроде пока принудительно не заставляют покупать яблочную продукцию.
                  0

                  Иногда это необходимо в профессиональных целях.

                    +3

                    Чтобы разрабатывать под яблочную продукцию нужно купить яблочную продукцию.

                      0
                      Причем желательно самою новую. Чтоб до запланированного превращения в тыкву времени побольше оставалось.
                        +5
                        Яблочная продукция, на которой можно вести разработку, не имеет проблем с терминалами (есть встроенный, возможно есть в сторе и точно можно опубликовать кастомный вне стора). Проблема на устройствах, под которые обычно ведётся разработка.
                          0
                          Помимо разработки непосредственно (я вообще использую Linux), есть еще куча сопутствующих задач. Начиная с тестирования.
                            +1
                            Да, если разработка под айфоны/айпады/часы, отладка и тестирование без них затруднительная (часто вообще невозможна, в симуляторах есть далеко не всё).

                            Но чем может помешать отсутствие терминала в тестируемом устройстве, я не представляю. Если во время тестирования без него реально никак, никто не запрещает накидать самому или найти на гитхабе и запустить из икскода на нужном устройстве. Также, если приложение с терминалом нужно распространять, есть корпоративные приложения, где правила мягче (возможно, этого запрета там нет).
                              0
                              Это был ответ на вопрос зачем эти устройства вообще покупать. И разработка под iOS тут не ключевой момент, тестировать нужно вообще любые универсальные и более-менее сложные веб приложения. Есть куча вещей, которые отловить можно только на живом девайсе. Отсутствие терминала мешает не тестированию, а полноценному использованию устройства разработчиком. И в случае с корпоративными приложениями, там все tеще геморройнее, только немного с другой стороны: developer.apple.com/programs/enterprise
                                0
                                Хм, ну с мобильной разработкой с проблемой столкнётесь всё же только когда мобилы с огрызком. Бэкэнд, десктоп, мобильный андроид — ну там я думаю везде терминал можно найти, разве что админ ограниить мог.
                                А вот с вебом как-то сталкивался — фронтэндер попросил у меня посидеть в сафари на десктопе, чтобы отладить веб-приложение на айфоне. Когда-то Сафари выпускали и под Windows, но оказалось что к тому времени давно уже прекратили. Выходит, что фронт без десктопного Сафари невозможен или по крайней мере затруднён, если нужна поддержка айфонов. За доллар нужно выложить 80 рублей, а рубли-то все у нас! А на десктопе Сафари сейчас есть только в Mac OS.
                                  0
                                  Mac OS вполне хорошо работает в виртуалках, для тестирования фронта в Сафари такого варианта, кмк, будет вполне достаточно
                        +2
                        Вроде пока принудительно не заставляют покупать яблочную продукцию

                        Это как-то оправдывает сложности возникающие при разработке на/под ios?
                        И, тем более, позиционирование ipad как заменителя компьютера.

                        +3

                        Вы будете делать на этом устройстве только то, что вам разрешил Apple.
                        Вы хотите делать что-то другое?
                        Вы опасный для общества девиант. Устройство уже доложило в полицию, ждите, за вами уже выехали.

                        +4
                        Если там можно выполнять код, то это всё пустое. Даже если есть copy-paste, то бесполезно: кодируем в b64 бинарник ftp-клиента, копировать, вставить, cat file | base64 -d > ftp и поехали за утилитами на домашний сервер. Если, конечно, буфер позволяет вместить 70КБ.
                          +1
                          Даже если не позволит — то не проблема копировать-вставить несколько раз и склеить несколько файлов вместе.
                            +2
                            Apple скажет что команда base64 позволяет использовать удаленный код. Все для безопасности. Поэтому надо удалить. И добавить ограничение на размер буфера обмена.
                              +2
                              И добавить ограничение на размер буфера обмена.

                              Ящитаю, буфера обмена длиной в 1 твит хватит всем! (ирония)

                                0
                                Новая единица измерения информации — один твит.
                                (сообщение выше занимает примерно пол-твита)
                                  0

                                  Эх, а было время, когда плюсы и твиты были вещами сугубо негативными и предназначались для совсем уж заколебавших корреспондентов :-)

                                    0

                                    … а началось все с лошадиной задницы.

                                  0
                                  Там жёсткие ограничения на сроки запуска, неделю где-то сертификат работает. Но пересобирать его не надо, внутри .IPA архива сертификаты лежат рядом с приложением, поэтому переподписать можно любое приложение.
                                +7
                                Дюбуа пояснил, что никто из его команды не говорил пользователям, как получить apk, но они все равно разобрались.

                                у него прямо в гитхабе написано как его установить

                                  +2
                                  Всё верно. Они не говорили, а просто написали. Но пользователи, о ужас, прочитали.
                                  0
                                  Кто-нибудь пояснит, почему предлагается качать образ alpine x86?
                                    +1

                                    Потому что в этом приложении на самом деле эмулятор x86 работает, а не исполнение кода напрямую на хостовом процессоре.

                                    +1

                                    А так же было бы интересно узнать, зачем в телефоне терминал?
                                    Я к тому что использую iPhone Max и он все равно маленький для таких вещей (работать в терминале)
                                    Есть макбук про, в нем и работаю с терминалом.
                                    А телефон, ну очень не удобно же (((

                                      0
                                      AppleTV + bluetooth mouse&kb. В iPhone12 такой же процессор, как и на новом маке. Было бы круто иметь возможность заиспользовать это.
                                        0
                                        Иногда бывает надо экстренно выполнить несколько команд на удаленном сервере например.
                                          +7

                                          ssh клиент не равно эмулятор командной строки

                                            0
                                            случаи бывают разные )
                                              +2
                                              Ну например? Можно случай, когда вот прям надо на телефоне срочно что-то сделать в командной строке?
                                                +1
                                                Например, подразнить Apple в плане удаления приложения из магазина.
                                                  0
                                                  Например немного поработать ) бывает так что очень надо а с собой только телефон. Да можно работать на удаленном сервере по ssh, но ведь бывает интернет не але. И это в принципе удобно иметь на телефоне, например можно юзать привычный youtube-dl вместо непонятных приложений с рекламой.

                                                  ведь кушать оно не просит, зато редко но метко упростит жизнь.
                                                    –2
                                                    А пример все же будет? Сейчас это что-то абстрактное, что по факту никогда не нужно оказывается.

                                                    youtube-dl не работает без интернета. К работе он не относится. Это пиратство, логично, что его так просто не пустят.

                                                    Кушать оно как раз просит. Ниже писал про «Мы из службы безопасности, вам надо срочно поставить приложение и выполнить вот этот добрейший код на вашем телефоне».

                                                    Возможность конечно забирают, но вреда от него больше, чем пользы.
                                                      0
                                                      youtube-dl не работает без интернета. К работе он не относится. Это пиратство, логично, что его так просто не пустят.

                                                      Почему между youtube-dl и «пиратство» знак равенства? На Youtube (и не только на нём) много интересных вещей лежит со свободной лицензией (Free Art license и Creative Commons, к примеру).
                                                      Я такую музыку себе на компьютер загружаю. В каком месте я пират?
                                                        –2
                                                        Потому что правила ютуба запрещают скачивать контент (ну только их средствами и по подписке). Вы пользуетесь бесплатным сервисом, который зарабатывает на рекламе. Скачали? Лишили их дохода со всеми вытекающими.
                                                          +3
                                                          У меня оплаченная подписка на Youtube. Он с меня каждый месяц получает деньги.
                                                          > Потому что правила ютуба запрещают скачивать контент
                                                          Но вот законодательство моей страны говорит о том, что я могу делать копии для себя. И что если пункт соглашения противоречит с законом, то данный пункт признаётся ничтожным.
                                                            0
                                                            Вы от меня ждете разрешения что ли? :)
                                                            Напишите в ютуб, спросите что они думают.

                                                            Скорее всего вы не можете делать копии, т.к. видео вы арендуете, берете в займы, оно не ваше и вообще надо смотреть на выключенном мониторе, т.к. никто не читал соглашение на самом деле.
                                                              +1
                                                              Вы от меня ждете разрешения что ли? :)

                                                              Нет, конечно. Я просто написал, что меня удивило как вы лихо приравняли youtube-dl к пиратству.

                                                              берете в займы, оно не ваше

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

                                                              Я только указал, что не всё так просто как вы считаете и не стоит ставить знак равенства между софтом (вещь, инструмент) и пиратством (процесс, деятельность).
                                                                –1
                                                                Я и не ставлю знак равенства. А лишь объясняю причину, почему youtube-dl не любят. Софт под конкретные цели — скачивание того, что гугл не хочет давать скачивать просто так.
                                                                  +1

                                                                  Но заяву написал не гугл, он вроде даже не входит в RIAA.

                                                            +1
                                                            «правила ютуба» в лице всех их хотелок и запретов, применимы для США.
                                                            Но они не являются «абсолютной истиной» где-бы ни было в мире.

                                                            Потому, не надо кого-то в чем-то обвинять( особенно, подобным образом ) только на основании того, что человек, находясь в одном государстве, может, «о, ужас», не соответствовать всем законам другого государства и основанным на них котелкам отдельных контор( которые, тем более, любят откровенно плевать на законодательство и законные требования других государств )
                                                      0

                                                      Я обновляю все свои конфиги используя термукс, гит и баш скрипт.

                                              +4
                                              Предлагаю Apple пойти дальше и запретить javascript в своём Safari, ведь он позволяет сайтам выполнять код.
                                              +2
                                              Ничего нового, вся ситуация соответствует определению до смешного точно.
                                                +4

                                                "Если бы браузеры не существовали к моменту появления App Store, то его правила запретили бы их изобретения"


                                                Браузер может скачивать и выполнять произвольный код, доколе будем делать для них исключение?!

                                                  –2
                                                  Для ИТшников это конечно дико. Но посмотрите на обычного пользователя: его можно по телефону попросить поставить нужное приложение «для ваше безопасности» и запустить там произвольный код. Мало ли что там можно сделать.

                                                  «В массе» это действительно нафиг не нужно. Да даже ИТшникам далеко не всем нужен эмулятор на телефоне.
                                                    +2
                                                    Программист Саагар Джа (Saagar Jha) из команды iSH отметил, что несмотря на кажущуюся мощь сред этих двух эмуляторов терминала, они изолированы, как и любое другое приложение iOS.
                                                      0
                                                      Не совсем произвольный. Он всё равно в песочнице будет (также как можно попросить пользователя поставить приложение из стора, которое тоже будет выполнять «произвольный» код).

                                                      Другими словами, Apple не добавили всякой безопасности своими требованиями. Да, формально пользователь может скачать приложение, которое будет ему в песочнице показывать на экран рекламу в обход каналов Apple, и просить денег в обход его каналов, и показывать детскую порнографию. Да, безопасно с точки зрения системного окружения, но опасно в плане user-story. Парадокс, но как раз этим и занимается браузер — и рекламу показывает, и порнографию может. А именно с точки зрения песочницы браузер с WASM, в котором есть busybox, имеет примерно тот же уровень безопасности/опасности.
                                                        +3
                                                        Я думаю было бы «можно», Эпл и браузеры бы сторонние выпилила с радостью. Но это уже будет перебор.

                                                        Формально я тоже против этих запретов, но вот знаете, все их моих знакомых с айфонами — пользуются не нарадуются, потому что «работает просто так». И никаких проблем у людей нет. И чем меньше у них будет возможности шагнуть влево, те меньше проблем появится. Эпл к этому и идет.

                                                        Сейчас они жертвуют удобством единичных людей, которым эта функция нужна (хотя мне еще никто не дал конкретных кейсов), ради остальной толпы. И для толпы это будет плюс.
                                                          +1
                                                          Сейчас они жертвуют удобством единичных людей, которым эта функция нужна (хотя мне еще никто не дал конкретных кейсов), ради остальной толпы.
                                                          Точнее, жертвуют свободой пользователей ради толпы идиотов.
                                                            –1
                                                            Как и тысячу раз до этого — ни у кого свободу не отбирают. Делайте свое устройство и ставьте туда любые эмуляторы. Но есть нюанс.

                                                            Тут тонкая грань между идиотами и безопасностью.
                                                            0
                                                            Я думаю было бы «можно», Эпл и браузеры бы сторонние выпилила с радостью. Но это уже будет перебор.

                                                            Формально оно так и есть. Все браузеры там на движке сафари.

                                                              +2
                                                              > Эпл к этому и идет.
                                                              Точнее — Эпл из этого исходит. В биографии Стива Джобса Айзексона описан процесс создания первого компьютера, Возняк хотел добавить в него дополнительных портов, чтобы пользователь имел возможность расширять его функции, Джобс был против, его позицией было: полностью контролировать user experience. Вся история Apple — последовательное следование этой концепции.
                                                              Поэтому возмущения, на мой взгляд, выглядят несколько забавно.
                                                                0
                                                                Когда у меня был андроид, я пробовал кодить на телефоне, мне не понравилось. Сейчас хожу с айфоном (купил его для тестирования как раз и он как-то у меня задержался), но понимаю, что у него функционал — примерно как у нокии 3310, только можно веб и медиа смотреть еще. Для остального ноут в рюкзаке лежит, совсем не скучаю по возможности делать что-то айтишное на телефоне, хотя помню свой восторг, когда на андроиде оказалось, что можно делать всё, правда, оказалось, что это просто такая ачивка, практического смысла не увидел.
                                                            +1
                                                            Но посмотрите на обычного пользователя: его можно по телефону попросить поставить нужное приложение «для ваше безопасности» и запустить там произвольный код. Мало ли что там можно сделать.


                                                            «Здравствуйте, я монгольский вирус...»

                                                            upd.
                                                            Блин, мимо ветки промахнулся.
                                                              –2
                                                              Нет. Здравствуйте, я из службы безопасности сбербанка. Повторюсь. Меньше шагов влево — больше безопасность. Вариант с картонкой вместо телефона из комментов выше — утопия для Эпл, без шуток.
                                                                +1
                                                                «Здравствуйте, я из службы безопасности сбербанка. Продиктуйте номер из СМС, пожалуйста.»
                                                                И без единой строчки кода.
                                                              0
                                                              Специалисты компании не поняли, что в этом приложении wget просто загружает файлы, причем Safari разрешено скачивать файлы, а wget — нет.

                                                              Ну то есть ребятам надо научиться запускать код скачанный сафари и всячески это пиарить.

                                                                +1

                                                                Хорошая поддержка разработчиков за 30% налог

                                                                  –3
                                                                  А Тим Кук не хочет себе анус удалить для предотвращения несанкционированного входа?
                                                                  –1
                                                                  если разработчики перестанут писать по iOS свои приложения то продажи резко начнут падать, и как следствие этого эпл пойдет на уступки. так что все в руках разработчиков. сама по себе эпл без стороннего софта долго не протянет.
                                                                    +1

                                                                    Забавно это на фоне рекламного слогана для iPad Pro: «Your next computer isn't a computer»

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

                                                                    Самое читаемое