Telegram Group & Telegram Channel
AccountManager, или как Google врет в документации

Первый пост в канале был посвящен адовым проблемам шифрования в Android. Но Android SDK не перестает удивлять. На этот раз AccountManager — системное хранилище аккаунтов. В VK внедряли его, чтобы сохранять данные пользователя и восстанавливать в случае, если приложение-чистильщик затрет все данные приложения ==> мы сохраним авторизацию ==> сэкономим деньги на смс.

Реализовать не сложно: вызвать несколько методов по работе с аккаунтом и реализовать Bound Service для взаимодействия с системой. Но нет, Google оставил подляну.

1) В документации четко сказано, что методы можно вызывать на главном потоке. Но нельзя! Вызов методов на главном потоке приводит к ANR. Получали тысячи событий в Firebase. Пруфы в комментах.

2) В документации нигде не написано, как обработать нажатие на кнопку удаление аккаунта из системы. Нигде. И мало того, есть похожие API в AccountManager, которые могли бы подойти: accountChangeListener, метод из Bound сервиса. Пришлось самому дебажить. Дам код в комментах.

3) Гугл говорит, что хранить данные там небезопасно. Окей, шифруем. Но при очистке данных приложения затираются и ключи с alias’ами в Keystore, итого надежного хранения ключа нет. Использовали другие алгоритмы по другим алгоритмам.

4) Гугл утаивает, что аккаунт в системе можно не показывать. Для этого нужно оставить пустым мета-информацию для Bound сервиса.

Google не перестает удивлять.



group-telegram.com/artrblog/29
Create:
Last Update:

AccountManager, или как Google врет в документации

Первый пост в канале был посвящен адовым проблемам шифрования в Android. Но Android SDK не перестает удивлять. На этот раз AccountManager — системное хранилище аккаунтов. В VK внедряли его, чтобы сохранять данные пользователя и восстанавливать в случае, если приложение-чистильщик затрет все данные приложения ==> мы сохраним авторизацию ==> сэкономим деньги на смс.

Реализовать не сложно: вызвать несколько методов по работе с аккаунтом и реализовать Bound Service для взаимодействия с системой. Но нет, Google оставил подляну.

1) В документации четко сказано, что методы можно вызывать на главном потоке. Но нельзя! Вызов методов на главном потоке приводит к ANR. Получали тысячи событий в Firebase. Пруфы в комментах.

2) В документации нигде не написано, как обработать нажатие на кнопку удаление аккаунта из системы. Нигде. И мало того, есть похожие API в AccountManager, которые могли бы подойти: accountChangeListener, метод из Bound сервиса. Пришлось самому дебажить. Дам код в комментах.

3) Гугл говорит, что хранить данные там небезопасно. Окей, шифруем. Но при очистке данных приложения затираются и ключи с alias’ами в Keystore, итого надежного хранения ключа нет. Использовали другие алгоритмы по другим алгоритмам.

4) Гугл утаивает, что аккаунт в системе можно не показывать. Для этого нужно оставить пустым мета-информацию для Bound сервиса.

Google не перестает удивлять.

BY Engineering notes | Артур Илькаев




Share with your friend now:
group-telegram.com/artrblog/29

View MORE
Open in Telegram


Telegram | DID YOU KNOW?

Date: |

"Your messages about the movement of the enemy through the official chatbot … bring new trophies every day," the government agency tweeted. Stocks dropped on Friday afternoon, as gains made earlier in the day on hopes for diplomatic progress between Russia and Ukraine turned to losses. Technology stocks were hit particularly hard by higher bond yields. Some privacy experts say Telegram is not secure enough The regulator took order for the search and seizure operation from Judge Purushottam B Jadhav, Sebi Special Judge / Additional Sessions Judge. 'Wild West'
from no


Telegram Engineering notes | Артур Илькаев
FROM American