Разработка
Все знают, какие приложения установлены на вашем телефоне
Пожалуйста, помните, что в следующий раз, когда вы случайно установите приложение на свое устройство Android, эта информация будет транслироваться по всему миру.
Еще несколько лет назад любое приложение, установленное на устройстве Android, могло видеть все другие приложения на вашем телефоне без вашего разрешения.
С 2022 года, с Android 11, Google удалил этот доступ для разработчиков приложений. Согласно их новой политике видимости пакетов, приложения должны видеть другие установленные приложения только в том случае, если это необходимо для их основных функций. Разработчики также должны явно указывать эти приложения в файле AndroidManifest.xml — обязательном файле конфигурации для всех Android-приложений.
Для крайне специфических случаев использования, таких как файловые менеджеры, браузеры или антивирусные приложения, Google предоставляет исключение, разрешая разрешение QUERY_ALL_PACKAGES
, которое обеспечивает полную видимость установленных приложений.
Я не использую Android в качестве основного телефона, но у меня есть запасной, и мне было очень любопытно узнать, какие приложения индийских компаний проверяют, какие еще приложения я установил.
Поэтому я скачал несколько десятков индийских приложений, которые только мог вспомнить, и начал читать их манифесты. Они наверняка будут уважать мою конфиденциальность и будут запрашивать информацию только о тех приложениях, которые необходимы для выполнения основных функций их приложения? Верно?
Стоит признать, что существуют некоторые законные причины для проверки приложением того, какие другие приложения установлены на вашем телефоне. Например, приложение может проверять, какие платежные приложения установлены, чтобы показать соответствующие варианты оплаты. Большинство файлов манифеста, которые я исследовал, включали проверки для этих приложений. Некоторые также искали клонирование приложений или приложения для нескольких учетных записей, вероятно, для безопасности и обнаружения мошенничества. Все приемлемые варианты использования.
Но несколько индийских компаний вышли за рамки этих проверок. Начнем со Swiggy (крупнейший в Индии онлайн-сервис по доставке еды на дом). В его файле манифеста указано ошеломляющее количество имен пакетов — 154, что позволяет ему запрашивать информацию о существовании этих приложений на моем телефоне. Вот полный список:
Я даже не знаю, с чего начать изучение этого безумия. Как знание того, установлено ли у меня приложение Xbox или Playstation на телефоне, может быть важным для основных функций их Swiggy? Как знание того, установлено ли у меня приложение Naukri или Upstox, поможет им доставлять продукты на дом?
Широкий спектр категорий приложений в этом списке убедительно свидетельствует о том, что Swiggy собирает данные об установленных приложениях для профилирования пользователей и создания поведенческого профиля своих клиентов. Похоже, это противоречит политике Play Store, которая считает список установленных приложений персональными и конфиденциальными данными пользователя.
Это напомнило мне ту презентацию от Blume Ventures — ту, в которой обсуждаются приложения, используемых в «разных Индиях», разделенных по доходам:
Swiggy запрашивает большинство этих приложений и многое другое на вашем телефоне. Он не только знает, к какой Индии вы принадлежите, но и может точно определить, где именно вы находитесь.
Давайте поговорим о другом приложении, и это обычный подозреваемый, бесспорный чемпион по мудачному дизайну — Zepto (еще одна доставка). Они перечислили 165 приложений для проверки на вашем устройстве.
От Netflix до Bumble и Binance, список включает почти все популярные приложения во всех категориях. Недавно появились сообщения о том, что Zepto отображает разные цены для пользователей iOS и Android. С помощью этих данных они также могут отображать разные цены для разных телефонов Android, что уже видят некоторые клиенты.
Несмотря на то, что Swiggy и Zepto должны объявить эти приложения для запроса в файле манифеста, как пользователь, вы не видите этот список, когда загружаете их приложения из Play Store.
Я также проанализировал приложения курьеров Swiggy и Zepto. Список приложений для запроса отличается от их потребительских приложений. Оба включают проверки, чтобы узнать, в каких еще компаниях работают их курьеры. Вот список Zepto:
Но Swiggy идет еще дальше — он также проверяет приложения для личных кредитов, приложения для учета личных финансов и даже отслеживает такие приложения, как Ludo King или Carrom Pool (игры), на телефонах курьеров.
Разве мы не можем спокойно играть в Ludo, не подвергаясь шпионажу со стороны наших работодателей? Разве Swiggy должен отслеживать даже время простоя? Стыдно, что Swiggy считает нужным включать эти нелепые запросы приложений в телефоны своих курьеров.
Говоря о приложениях для личных кредитов в Индии, их хищнические методы хорошо задокументированы. Пару лет назад были проведены крупные репрессии, которые привели к удалению тысяч таких приложений из Play Store. Я взглянул на некоторые из них, которые все еще существуют.
Kreditbee входит в число лучших приложений в области личных кредитов в Play Store с более чем 50 миллионами загрузок. И можете ли вы поверить, что их приложение проверяет наличие 860 приложений, установленных на вашем телефоне? 860!!! Мне жаль, что вам, возможно, придется приблизиться или немного увеличить масштаб, чтобы просмотреть этот список.
Я только бегло просмотрел этот список — приложений слишком много. Надеюсь, кто-то из читающих это сможет провести тщательный анализ. Возможно, это из-за того, что я живу в пузыре, но я даже не слышал о большинстве из этих приложений. Хотя у большинства из них десятки миллионов загрузок.
Помимо обычных категорий, я вижу, что есть проверки для таких приложений, как Tamil Calendar, Odia Calendar, Qibla Direction Finder, приложений для молитв, астрологических приложений. Они знают, что делают.
Есть «Jodii for Diploma, +2,10 below», приложение для брака для тех, кто не закончил среднюю школу. У него более 10 млн загрузок.
Затем есть еще «गाय भैंस खरीदें बेचें Animall» (рынок купли-продажи коров?), который также имеет более 10 млн загрузок.
Этот список приложений — окно в то, как большая часть Индии использует свои телефоны — их повседневную жизнь, привычки и приоритеты.
Другое ведущее приложение для личных займов, Moneyview, с более чем 50 миллионами загрузок, включило проверки для ошеломляющих 944 приложений в свой файл манифеста — самый высокий показатель среди всех приложений, которые я исследовал. Я не включаю его в этот пост, вы можете прочитать полный список здесь.
Я удивлен, что приложения KreditBee и Moneyview прошли проверку Play Store. Политика Play Store явно ограничивает использование приложениями для личных займов разрешения QUERY_ALL_PACKAGES
. Однако эти приложения обходят это ограничение, отдельно перечисляя каждое приложение, которое они хотят обнаружить, в своем файле манифеста.
Я нашел только один файл манифеста, который имел высокорискованное и чувствительное разрешение QUERY_ALL_PACKAGES
— это был Cred (индийская финтех-компания). Play Store предоставляет «временное исключение» для включения этого разрешения, если приложения имеют «проверяемую основную цель — содействие финансовым транзакциям с использованием финансово регулируемых инструментов».
Но ни одно из других приложений в том же сегменте, что и Cred, которые я анализировал, например PhonePe или PayTM, не имело этого разрешения в своих файлах манифеста. Фактически, Cred также предлагает персональные кредиты, которые, согласно политике Play Store в отношении персональных кредитов, не имеют права на это исключение. Не уверен, как Cred все еще разрешено сохранять это разрешение, которое позволяет ему видеть все приложения на вашем телефоне без каких-либо указания на это.
Я прочитал манифесты около 50 популярных приложений индийских компаний. За исключением Swiggy, Zepto, Cred и пары приложений для личных займов, большинство имели довольно разумные и уважительные списки запросов приложений.
Думаю, я ожидал худшего. Может быть, я слишком циничен по отношению к этим приложениям — могут ли они на самом деле быть хорошими парнями?
Что еще
Когда я собирался завершить это упражнение, я заметил пару интересных строк, когда просматривал файл манифеста одного из приложений:
<queries>
[ ]
<intent>
<action android:name="android.intent.action.MAIN" />
</intent>
[ ]
</queries>
Я не эксперт в Android-разработке, но насколько я понимаю, фильтр ACTION_MAIN
в конфигурации выше позволяет просматривать все установленные приложения, которые, проще говоря, имеют экран.
Поскольку большинство установленных приложений работают на переднем плане и имеют пользовательский интерфейс, этот фильтр предоставляет разработчикам доступ для просмотра всех приложений на вашем телефоне — без необходимости разрешения QUERY_ALL_PACKAGES
!
Чтобы быть уверенным, не могу сказать это без содрогания, я вайб-закодировал базовое приложение для Android и добавил тот же фильтр ACTION_MAIN
в свой файл манифеста. И когда я запросил установленные пакеты, как и ожидалось, этот небольшой хак вернул список всех приложений на моем телефоне!
Это похоже на огромную лазейку в конфиденциальности в Android. Конечно, Play Store отклонит приложения, которые используют этот хак, поскольку это вопиющее нарушение политики их магазина в отношении пользовательских данных?
Из 47 индийских приложений, которые я проанализировал случайным образом, 31 использовали фильтр ACTION_MAIN
, что давало им доступ к просмотру всех приложений на вашем телефоне без какого-либо раскрытия. Это две трети приложений.
Даже у гребаного Ludo King это есть в файле манифеста. Так что большинство индийских компаний на самом деле могут видеть все приложения на вашем телефоне — они просто более скрытны в этом, чем такие, как Swiggy и Zepto. Вот вам и хорошие парни.
На самом деле, у Swiggy тоже есть эта конфигурация, но он все равно предпочитает явно перечислять приложения, которые он запрашивает, хотя он мог бы так же легко сделать это скрытно за закрытыми дверями, как и другие. Но я не жалуюсь. Эта оплошность с их стороны дает представление о методах сбора данных Swiggy. Если бы Google применил эту политику должным образом, у нас, возможно, была бы похожая видимость и в других компаниях.
Все файлы манифеста, которые я прочитал, находятся в моем Github. Большинство из них были загружены 18 или 19 марта.
Этот хак используется не только приложениями индийских компаний. Я проверил файлы манифестов некоторых других популярных приложений. Facebook*, Instagram*, Snapchat, Subway Surfers и Truecaller имеют эту конфигурацию. Между тем, Amazon, Spotify, X, Discord* и WhatsApp этого не сделали. Я не стал больше расследовать это.
Это заставляет меня задуматься, в чем была цель политики видимости пакетов Google? Она должна была защищать пользователей, но большинство приложений, похоже, все равно нашли способы ее обойти.
А данные об установленных приложениях очень конфиденциальны и личные. В 2022 году Vice сообщил, что торговая площадка Narrative продавала данные о пользователях, которые скачали приложения для отслеживания менструального цикла сразу после того, как появились новости о том, что дело Роу против Уэйда (федерально защищенные права на аборт в США) может быть пересмотрено. Об этом даже страшно думать.
Чтение SMS
Данные об установленных приложениях — это одна точка данных. Обширный набор разрешений, которые каждое из этих приложений включило в свои манифесты, часто намного превышающий необходимые, — это еще одна банка червей, которую может открыть кто-то другой.
Я завершу этот пост небольшим примером от Zepto. Они запрашивают разрешение READ_SMS
. Вы можете отклонить его, но это обязательно, если вы регистрируетесь в Zepto Postpaid.
Когда вы предоставляете разрешение, это список идентификаторов отправителей, которые они проверяют в вашем почтовом ящике:
Большинство из них — это идентификаторы отправителей TRAI банков. Вероятно, они считывают их для проверки соответствия требованиям своего Postpaid плана. Они все равно могут это прочитать, даже если вы никогда не выберете его. И посмотрите, как они протащили SMS от Blinkit, Swiggy, Bigbasket, Flipkart.
Их конкуренты, вероятно, делают то же самое, они просто не оставили после себя такого очевидного следа доказательств в самом приложении.
Дело в том, что когда какое-либо приложение получает разрешения, такие как READ_SMS,
мы, как пользователи, не видим, когда и к чему оно получает доступ.
Заключение
Пожалуйста, помните, что в следующий раз, когда вы случайно установите приложение на свое устройство Android, эта информация будет транслироваться по всему миру. Брокеры данных будут использовать ее для составления вашего профиля, сопоставлять ее с данными о вас из других рекламных сетей, и в конечном итоге она будет использована для решения о том, сколько вам придется заплатить в следующий раз, когда вы закажете самсу.
Спасибо за чтение.
-
Новости1 неделя назад
Видео и подкасты о мобильной разработке 2025.14
-
Видео и подкасты для разработчиков3 недели назад
Javascript для бэкенда – отличная идея: Node.js, NPM, Typescript
-
Новости3 недели назад
Видео и подкасты о мобильной разработке 2025.12
-
Разработка3 недели назад
«Давайте просто…»: системные идеи, которые звучат хорошо, но почти никогда не работают