Google Removes Password Storage from Chromium for Android, Causing Issues for Third-Party Software
According to feedback from users of the open-source browser project Cromite, starting with Chromium for Android M132, the browser's saved passwords have been appearing blank.
Although the settings indicate that passwords are saved, in reality, both newly saved and previously saved passwords are lost. This issue is not a bug; rather, Google has removed the password storage feature from Chromium.
What is surprising is that this significant change has not been mentioned in the official Chromium blog. From the source code, it is evident that Google planned to remove this feature by November 2024.
Cromite developer @UAZO supports Google's decision, citing that the existing password storage feature in Chromium on the Android platform was provided in an unencrypted form, meaning that other apps could potentially read the saved passwords, leading to data breaches and other issues.
However, the developer is equally surprised that Google made this change without an official announcement, impacting downstream browsers and projects since users might perceive this as a bug.
At present, there is no good solution to this problem. Developers recommend that users temporarily use software like KeePassDX, an open-source password manager project for Android platforms, to save their passwords.
Below is the explanation mentioned by Google in the source code:
# Copyright 2024 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import("//build/config/android/config.gni") import("//build/config/chrome_build.gni") declare_args() { # The legacy password store backend is supported on android but usually disabled # in favor of a downstream implementation. Important: the support for this flag # is planned to be removed in November 2024. use_login_database_as_backend = !is_android } # Drawables from the downstream clank/ repository are # used for branded builds. password_manager_use_internal_android_resources = is_android && enable_chrome_android_internal && is_chrome_branded