This section is first about making a fully-informed decision about which of the various Kiosk Modes you want to use, and then implementing that decision if you decide on "Full Kiosk" mode.
If you've tried the other Kiosk Modes (as described here) and they don't work for you, then you can proceed as described in this section. If you haven't tried the other modes, they are worth considering because setting up Full Kiosk mode is considerably more work than the other modes. In theory Full Kiosk is more effective than the other modes, but as a practical matter you may never encounter the difference.
If you expect to install the Aesop Player on multiple devices, much of the effort of setting up Full Kiosk is one-time setup or learning, so Full Kiosk may be more attractive.
Below is a description of the various choices of Kiosk Mode, with trade-off information. You can use that to decide if Full Kiosk is worth the effort. If you choose not to use Full Kiosk, and change your mind later, it may require starting over, but it's not an irrevocable decision.
As noted in the main section on dedicated players, the goal of a dedicated player is to prevent accidentally pushing the system buttons. To prevent that, we provide three choices, each with advantages and disadvantages that fit different circumstances.
All three Kiosk Modes protect against accidental button presses, work nicely with Maintenance Mode, and if the device shuts down while displaying or playing a book (for example if the battery dies), it will return to Aesop when restarted.Simple mode is the only choice for There isn't a kiosk-like solution for really early versions of Android, although Aesop will run on API 17 and up. older devices. On newer devices where Full Kiosk mode or Application Pinning is available, that is strongly preferred. Simple Kiosk can be useful when the device cannot be dedicated to a single use full-time, and for some reason Application Pinning We currently know of no reason that Application Pinning would not work well. Please contact us if you run into any problems. is a problem.
Application pinning is preferred if you have an appropriate device unless actual use shows you need Full Kiosk mode for its stricter controls.
To make Full Kiosk work, you must use the BIND_DEVICE_ADMIN privilege to enable the Aesop Player as the "Device Owner". This is a very strong privilege, and the folks at Google want us to be sure you can't do that unknowingly, so we're telling you about that here, with a some more details below. The actual step that does it is either the 'adb' command below, or in a slightly different way if you install using 'QR provisioning', also discussed below. You can stop using the privilege either by choosing another Kiosk Mode or using Maintenance Mode. If you don't use Full Kiosk mode, the privilege will remain unused and you can safely ignore its existence.
There is a Settings option on the Kiosk Mode selection screen to "Drop the privilege required for the Full Kiosk mode", which is only available if Aesop Player is the device owner. This is for expert use, clicking it will require completely redoing the Full Kiosk process to restore the permission.
Caution: Normal use and automatic app and system upgrades will be fine with Full Kiosk mode, but if you will be doing anything unusual with the Aesop Player (specifically, running any private versions of the player), be sure to both disable Full Kiosk mode and also click on "Drop the privilege required for the full kiosk mode" before changing the software. And at that there is a slight risk that you will be stuck in a halfway state that can only be fixed by a factory reset.
Full Kiosk Mode and Application Pinning are What's really going on here is that when the Lock Screen permission is held, Android treats the operations to lock the device as full kiosk mode requests. Without the permission, it's treated as an application pinning request. closely related in Android. The consequence of that to Aesop is that only one of the two is possible at any given time. If you have the privilege for Full Kiosk Mode, you cannot use Application Pinning; if you don't, then of course you can't use Full mode. If you are using Full Kiosk Mode, Application Pinning offers no additional benefit.If you have not chosen Full Kiosk mode (at this time), you need not read further here. Continue with Kiosk Mode to install without Full Kiosk.
If your device is:
The 'adb' method requires that you remove all accounts from the device, and you have to use a PC and a cable (which you may already have). It does NOT require you to do a Factory Reset, but removing all accounts is similar in effect.
QR provisioning doesn't require any cables but cannot be done without doing a Factory Reset, per Google.
If you can't use QR code provisioning, or don't want to do the required Factory Reset, then proceed with the 'adb' method below. Otherwise follow the steps for QR code provisioning here.
You will need:
In order for step 4 to succeed, you need to remove all the accounts registered in the system. Google requires this. If you've recently done a factory reset or are using a brand new device, and have not created any accounts, that's already done and you can skip to step 2.
Go to Settings → Accounts and remove all the accounts.
Since at this point you've decided to use the device as a completely dedicated player, if you have correctly set up your device there should be no personally identifiable information on it.
You need to enable USB debugging on the device so that it accepts commands from your computer.
You are a hacker now ;)
The adb
command is needed on your computer to perform the next
step. The software installed here can be uninstalled later.
Download and install the (unofficial) package from this post.
If you prefer, you can of course install the Android SDK Tools or even Android Studio but it's a bigger download and more work.
Install adb
with the following command:
sudo apt-get install android-tools-adb
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
adb
command:
brew cask install android-platform-tools
In order for Aesop Player to take full control of the UI it needs to be given special privilege — it needs to be made a so-called device owner. This uses the BIND_DEVICE_ADMIN privilege discussed above. This doesn't change the software in any way, it does not void the warranty and it can be easily reversed or temporarily suspended.
adb shell dpm set-device-owner github.io.donnKey.aesopPlayer/com.donnKey.aesopPlayer.AesopPlayerDeviceAdmin
You should On recent (Android 9 and above) devices, if you go to Android Settings->Security&location->Device Admin Apps you'll find a long and scary-sounding message about what Aesop Player could in theory do to the system. We only use the privilege for this one purpose. see:
Success: Device owner set to package com.donnKey.aesopPlayer
If Aesop was set to Application Pinning Kiosk Mode, it will be changed to None.
In case of errors see troubleshooting.
Now you can enable and disable the full kiosk mode at will.
You can give up the permission completely by tapping
Drop the privilege required for the full kiosk mode;
you would need to repeat the step using adb
above to
restore it.
Dropping the privilege while in Full Kiosk Mode will cause the Kiosk Mode to be changed to None.
If you want to temporarily leave Full Kiosk mode to do other work on the device, put Aesop into Maintenance Mode.