У меня есть Android-приложение «владелец устройства», которое автоматически устанавливает APK с помощью PackageInstaller (см. Код, например, здесь).
Этот код отлично работает на всех устройствах Android 7+, кроме Xiaomi Redmi 7A (с MIUI 11). Установка не удалась, вот соответствующий вывод logcat:
01-16 00:43:21.494 1488 2892 I InstallationStatistic: beginInstallSession: 417086238
01-16 00:43:21.600 1488 1658 D com.android.server.pm.PackageManagerServiceInjector: Package verify start
01-16 00:43:21.601 1488 1538 D CompatibilityInfo: mCompatibilityFlags - 0
01-16 00:43:21.601 1488 1538 D CompatibilityInfo: applicationDensity - 320
01-16 00:43:21.601 1488 1538 D CompatibilityInfo: applicationScale - 1.0
01-16 00:43:21.611 24382 24395 D GuardProvider: start parse apk : /data/app/vmdl417086238.tmp
01-16 00:43:21.618 24382 24395 E i.guardprovide: Invalid ID 0x00000000.
01-16 00:43:21.638 4434 24418 D PackageVerifyedRecevier: verify package /data/app/vmdl417086238.tmp info: PackageInfo{45d0d6b com.hmdm.sendphoto}
01-16 00:43:21.638 4434 24418 D PackageVerifyedRecevier: verify package /data/app/vmdl417086238.tmp finish true
01-16 00:43:21.639 1488 1658 I com.android.server.pm.PackageManagerServiceInjector: MIUILOG- Install Reject uid: 10161 pkg : com.hmdm.launcher
01-16 00:43:21.639 1488 1658 E PackageInstaller: Commit of session 417086238 failed: Permission Denied
Идентификатор пакета установщика (владельца устройства): com.hmdm.launcher. Идентификатор пакета устанавливаемого приложения - com.hmdm.sendphoto.
Я пытался добавить разрешение «Установить неизвестные приложения», но это не помогло.
Похоже, что приложение должно запрашивать у ОС MIUI какие-то особые (недокументированные) разрешения?
Права владельца устройства были предоставлены приложению посредством регистрации на основе QR-кода.