Я создал свой собственный ПЗУ AOSP, используя исходники Android 4.4.4. Я хочу сделать приложение в режиме киоска (всегда в полноэкранном режиме - пользователь не может выйти из него или переключиться на другое приложение).
Чтобы иметь режим полного погружения, я следовал этому сообщению SO Включение KioskMode в Android 4.4.2 с root-правами
Я делаю точно так, как они говорят, но это не работает. Системный пользовательский интерфейс не отключен, и у меня нет ошибки.
Поэтому я решил создать файл .sh, который я запускаю из кода Android SDK:
Process proc = Runtime.getRuntime().exec(new String[] { "su", "-c", "/etc/stop-ui.sh" });
Это работает отлично. Но когда я хочу снова запустить системный пользовательский интерфейс: Process proc = Runtime.getRuntime().exec(new String[] { "su", "-c", "/etc/start-ui.sh" });
он возвращает ошибку 1.
Когда я запускаю /etc/start-ui.sh из оболочки adb, он работает.
Вот мой файл stop.sh (с разрешением 555):
#!/system/bin/sh
service call activity 42 s16 com.android.systemui
Вот мой файл start.sh (с разрешением 555):
#!/system/bin/sh
am startservice -n com.android.systemui/.SystemUIService
Мое приложение является системным (я подписал его подписью платформы)
Вывод: я могу перезапустить системный интерфейс из оболочки, но не из приложения программно