При тестировании Android API 28 я сталкивался с ошибкой: всякий раз, когда приложение, определившее пользовательское разрешение с нормальным уровнем защиты, удаляется, все остальные приложения, которые не определяют это разрешение, но запрашивают его в манифесте, никогда не перезаписываются.-предоставил это разрешение даже после перезагрузки системы (и удивительно, даже если это приложение переопределило такое разрешение!).Опасные разрешения могут быть повторно предоставлены через приглашение пользователя, а разрешения для подписи автоматически предоставляются автоматически, как обычно.Это ожидаемое поведение или оно необычное?
EVENT: Applications installed (in-order) : App1, App2, App3
App1's Manifest: <permission android:name="X"
android:protectionLevel="signature"/>
<permission android:name="Y/>
<permission android:name="Z"
android:protectionLevel="dangerous"/>
<uses-permission android:name="X"/>
<uses-permission android:name="Y"/>
<uses-permission android:name="Z"/>
App1's request: requestPermissions(new String[] "Z"},1);
App1's permissions granted : X,Y & Z are granted (Z after user-prompt)
////////////////////////////////////////////////
App2's Manifest: <permission android:name="X"
android:protectionLevel="signature"/>
<permission android:name="Y/>
<permission android:name="Z"
android:protectionLevel="dangerous"/>
<uses-permission android:name="X"/>
<uses-permission android:name="Y"/>
<uses-permission android:name="Z"/>
App2's request: requestPermissions(new String[]{"Z"},1);
App2's permissions granted: X, Y & Z (Z after user-prompt)
////////////////////////////////////////////////
App3's manifest:
<uses-permission android:name="X"/>
<uses-permission android:name="Y"/>
<uses-permission android:name="Z"/>
App3's request: requestPermissions(new String[]{"Z"},1);
App3's permissions granted: X, Y & Z (Z after user-prompt)
////////////////////////////////////////////////
EVENT: Uninstalled App1
////////////////////////////////////////////////
App2 Permissions Granted: X & Z (Z after user-prompt; permission Y not
granted even if this application re-defines it, and the permission Y exists
on device - checked via "pm list permissions")
////////////////////////////////////////////////
App3 Permissions Granted: X & Z (Z after user-prompt; permission Y not
granted even if the permission Y exists on device - checked via
"pm list permissions")
////////////////////////////////////////////////
Так это ожидаемое поведение от ОС Android?