Регистрация программ Google на устройстве Android

Я искал решение этой проблемы какое-то время (дни, а не минуты), но это ускользает от меня довольно эффективно.

Обратите внимание, что это НЕ вопрос о начале процедуры регистрации. Это должно происходить автоматически без какого-либо взаимодействия с пользователем.

Я хотел бы добавить аккаунт Google на свое пользовательское устройство (1000 из них). Аккаунт будет использоваться главным образом для активации магазина Google Play на устройстве, чтобы приложение могло обновляться, когда доступны новые версии.

Мой существующий код (самый короткий фрагмент из тех, что я пробовал):

AccountManager mgr = AccountManager.get(this); Account acc = new Account("email@gmail.com", "com.google"); mgr.addAccountExplicitly(acc, "password", new Bundle())); 

Естественно, дает

 java.lang.SecurityException: caller uid 10047 is different than the authenticator's uid 

Так как же я могу это сделать? Мое устройство укоренено так, что это не препятствие, если это единственный способ.

Ну, как оказалось, это не так легко решить. Я закончил регистрацию одного устройства, а затем вытащил из него файл пользователей. Расположение файла users: /data/system/users/0/accounts.db (если на устройстве имеется несколько профилей пользователей, последний каталог может отличаться в зависимости от профиля).

Я сохранил этот файл в активах моего приложения (gzipped, убедитесь, что расширение не является чем-то.gz, потому что оно потерялось во время упаковки – не потрудилось проверить, почему).

Сначала я проверяю, существует ли мой пользователь:

 AccountManager mgr = AccountManager.get(this); for (Account acc: mgr.getAccountsByType("com.google")) { if (acc.name.equalsIgnoreCase("email@gmail.com")) return; } 

Если это произойдет, я просто пропущу шаг. В противном случае я распакую файл пользователя и перезаписываю существующий (используя su ). Затем я также перезагружаюсь, чтобы убедиться, что изменения зарегистрированы.

Невозможно добавить / создать учетную запись Google, используя addAccountExplicitly (). Вы можете добавлять аккаунты только для своих собственных услуг. Даже ваше устройство внедрено, потому что оно будет отклонено веб-сервером Google. Подробнее см. Ссылку

Intereting Posts
Разрешение получателя биллинга в приложении Редактировать текст внутри прокрутки не прокручивается AdjustResize не работает с CoordinatorLayout Smack 4.1 Нет ответа в течение времени ответа Наблюдаемый против Flowable rxJava2 Instagram от Android открыта для определенного пользователя и добавляет подпись к загруженному изображению DrawerLayout предотвращает вызов MainActivity.onTouchEvent () Как получить результаты от намерения, запущенного с экрана предпочтений? Проблема обнаружения жестов и ScrollView OnUpdate не вызывается в виджетах, хотя я вижу, что android.appwidget.action.APPWIDGET_UPDATE намерен в onreceive Android: как программно определить точные пропорции пикселей устройства? Сохранение данных датчиков в файл в android Android Развернуть локальную справочную таблицу JNI Интеграция Smack с проектом Android Studio для чата Как показать диалоговое окно запроса разрешения на размещение в Google выше / через блокировку экрана?