Вопрос решен. Эксплойт закрыт.
Мы будем закрывать эту ошибку, поскольку вы вошли в предварительную версию Android. Если проблема по-прежнему актуальна и воспроизводима в последней общедоступной версии (Android Q), сделайте отчет об ошибке и зарегистрируйте ошибку на странице https://source.android.com/setup/contribute/report-bugs . Если ответ не будет получен в течение следующих 14 дней, этот вопрос будет закрыт. Спасибо за Ваше понимание.
Последнее обновление:
Это ошибка, и Google исправит ее в следующем обновлении.
Мы отложили эту проблему для рассмотрения в следующем выпуске. Спасибо, что нашли время сделать Android лучше
Этот ответ превратился в конгломерат идей и был отредактирован, чтобы включить информацию из обсуждения в комментарии.
androidmarket
Апи, был бы настроен апи написанный разработчиком. Это недоступно для публики.
Чтобы ответить на ваши вопросы в комментариях. Разработчик использовал бы текущий API, доступный через Android Developer и Google, чтобы создать проект, который управляет всем этим.
Что касается доступа Full Account Access
, я не совсем уверен, как эти разработчики этого добились.
Я бы рекомендовал использовать AccountManager , который является частью android.accounts, имеет доступ к учетным данным и методу getUserData . Менеджер учетных записей имеет доступ к паролям и может создавать и удалять учетные записи. Это, возможно, используется с Content Provider
См. Проверка подлинности Udinic / SyncAdapter .
Чтобы ответить на ваш комментарий:
Этот блог должен помочь вам начать работу. Напишите свой собственный Android Authenticator .
Я не могу вам сказать, как на самом деле работают эти приложения. У них также могут быть разные реализации (если они не являются совместными усилиями за кулисами, они наверняка будут разными).
Одно предположение. Сначала используйте GoogleSignInAccount с com.google.android.gms.auth.api.signin .
Существует определение области , чтобы определить объем разрешений, предоставляемых приложению.
Используя requestScopes () ,
публичный статический окончательный строковый ПРОФИЛЬ
... / Это позволяет вашему веб-приложению получать доступ к установкам приложений Android по беспроводной сети.
Для примера :
GoogleSignInOptions gso =
new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail().
.requestScopes(new Scope("https://www.googleapis.com/auth/contacts.readonly"))
.build();
Если можно получить полный доступ, можно найти список всех приложений, используемых владельцем учетной записи, и сравнить их с тем, что находится на устройстве.
Диспетчер пакетов получит список всех приложений, установленных в данный момент на устройстве.
PackageInfo предоставляет подробную информацию о приложении.
INSTALL_REASON_USER также отфильтрует приложения, которые были активно установлены пользователем.
Вы можете посмотреть com.google.firebase.appindexing и Log User Actions . Можно отслеживать различные действия .
Историю учетной записи пользователя можно найти по адресу https://myactivity.google.com/myactivity .
Полезная ссылка - площадка OAuth 2.0 .
Этот репозиторий github node-google-play , использующий node, является текущим и будет вызывать API Google Play. Как и архив, который использовался как «неофициальный» api, android-market-api , для запроса рынка.
Приложение 1
Приложение требует использовать следующие разрешения:
Версия 2.1.8 может получить доступ:
$ Покупки в приложении
Другой
- получать данные из Интернета
- просмотр сетевых подключений
- полный доступ к сети
- использовать учетные записи на устройстве
- предотвратить переход устройства в спящий режим
- прочитать конфигурацию службы Google
Примечательно, что приложение не устанавливает никаких разрешений при базовой установке. Мне не удалось воспользоваться ни одной из функций, так как у меня нет платных приложений. Итак, для первоначального поиска не требовалось разрешений, что означало бы, что у приложения нет доступа к моей учетной записи.
Я проверил разрешения - их не было. Поэтому единственное, что требовалось, - это принять всплывающее окно, как показано в вашем вопросе.
Приложение 2
Другое приложение, на которое вы ссылаетесь, которое делает то же самое, более открыто говорит о том, к чему осуществляется доступ.
Мои платные приложения
УВЕДОМЛЕНИЕ
О БЕЗОПАСНОСТИ / КОНФИДЕНЦИАЛЬНОСТИ При первом запуске этого приложения оно запросит полное разрешение для вашей учетной записи Google. К сожалению, это единственный способ получить доступ к необходимой информации. Никакая личная информация не сохраняется, никакая информация о ваших приложениях не передается разработчику этого приложения и не передается третьим лицам. Все хранится только на вашем телефоне.
Я подробно рассказал об этих приложениях в этом сообщении в блоге , который был посвящен университетскому проекту (без денежной выгоды). Я склонен думать, что это эксплойт в API, а не статус по дизайну Google, поскольку нет вызовов API для получения покупок приложений, кроме собственного приложения разработчика. Я предполагаю, что это эксплойт нулевого дня, и в этом случае нет законного способа получить доступ к этой информации.