I'm facing an issue with HyperOS where my app doesn't appear in the "Settings -> Accounts & Sync -> Add account" list.
Device details: Xiaomi 23078PND5G
Technical details:
The app works perfectly on other Android devices (Samsung, Google Pixel).
adb shell dumpsys account shows that my AuthenticatorDescription is correctly registered and visible to the system.
I have already granted "Autostart" and "No restrictions" in battery settings. "Display pop-up windows while running in the background" is also allowed.
Interestingly, only major apps like Google, WhatsApp, and Telegram are visible in the "Add account" menu. Most other third-party apps are filtered out.
authenticator.xml
<?xml version="1.0" encoding="utf-8"?>
<account-authenticator xmlns:android="http://schemas.android.com/apk/res/android"
android:accountType="@string/account_type"
android:icon="@mipmap/ic_launcher"
android:smallIcon="@mipmap/ic_launcher"
android:label="@string/app_name" />
AndroidManifest.xml
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<application>
<service
android:name=".AuthenticatorService"
android:exported="true"
android:permission="android.permission.AUTHENTICATE_ACCOUNTS">
<intent-filter>
<action android:name="android.accounts.AccountAuthenticator" />
</intent-filter>
<meta-data
android:name="android.accounts.AccountAuthenticator"
android:resource="@xml/authenticator" />
</service>
<!-- call Authenticator -->
<activity
android:name=".ui.AuthenticatorActivity"
android:exported="true"
android:process=":auth"
android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize"></activity>
</application>
Is there a specific whitelist for the "Add account" UI in HyperOS? Are there any undocumented manifest requirements or security policies that prevent sideloaded apps from appearing in this list?
Any help or pointers to official developer documentation regarding this behavior would be appreciated.