Fully Kiosk Browser & App Lockdown Help

Fully Kiosk Browser is a secure and flexible Android Kiosk Browser and App Launcher. Restrict and adjust the functionality of your websites and lockdown other apps in Kiosk Mode. Fully Kiosk provides fullscreen mode, motion detection, remote admin and a lot of other features for your digital signages, interactive kiosk systems, information panels and all kinds of unattended AndroidTM devices. From just a fullscreen browser to full mobile device management (MDM) solution,  you decide what you get. Device rooting is not required.

Fully Single App Kiosk is our app for the fast lockdown of the device to one selected app. Please get this kiosk app from Google Play or get an APK file from the download box.

Fully Video Kiosk is our app for playing video, image and websites shows on Android devices with full kiosk protection. Also available on Google Play and as APK file.

Fully Exam Kiosk is our app for device lockdown to the exam website during the online examination. Fully Exam Kiosk browser supports all learning management systems (LMS) that support Safe Exam Browser (SEB) including Moodle.

With Fully Cloud EMM you can organize, monitor and remote configure your Fully Kiosk devices from everywhere. You can also make fast Device Provisioning and manage apps with Enterprises


The intent of most people setting up kiosk mode is to prevent the user from running anything other than the browser based content in the full screen browser window or running the selected apps. Fully Kiosk app will help you to run the selected websites or apps in the kiosk mode. Users will also be restricted from making changes to any device settings. On many devices the admin can even restrict the use of hardware keys like the volume, power and home buttons on the Android device in the Kiosk mode. Fully Kiosk locks a device to intended use while preventing personal use by employees or customers. You can use the Kiosk mode on smartphones, tablets and other Android devices.

Some good examples of using devices in Android Kiosk mode:

  • Touchscreen corporate devices for ordering menu items at a restaurant
  • Entertainment, service and advertising panel in the taxi, bus, train or other public transportation
  • Hospital devices with information, monitoring and health services
  • Ticketing, baggage tag and other interactive kiosks at an airport or harbor
  • Digital signages, doorsigns and way signs in any indoor and outdoor situation
  • Museum guides or second screens to lend
  • Store directories and maps at large retail shopping centers
  • Self-service payment kiosks for purchasing products or renting items
  • Survey kiosk for street or fair surveys by employees and volunteers
  • Process check-ins, polls or leads-capturing at sport, music, business or science events
  • Dedicated school or university devices for self-learning and exams by students
  • Scan tickets or QR codes for access to restaurants, shops and event areas
  • Corporate devices in logistics and industry to scan pieces, control processes etc.
  • Restrict bring your own device (BYOD) to company tasks during working hours
  • Much much more…

For many use cases the remote device management and monitoring (MDM) provided by Fully Cloud is very efficient way to maintain the devices and contents.


The most features of Fully Kiosk Browser are configurable according to your needs.

  • Show websites
    • Full HTML, CSS and JavaScript support as provided by the available Android Webview
    • Load URLs on multiple tabs
    • Load websites from HTTP, HTTPS or FILE protocols
    • Fullscreen and autoplay for HTML5 videos
    • Basic HTTP authentication (username+password)
    • Client certificate authentication
    • WebRTC support (Android 5+)
    • Integrated barcode scanner
    • Support barcode scanner integration (check FAQ)
    • Web Automation (PLUS)
  • Lockdown or configure numerous web content features
    • Allow Third Party Cookies
    • Form Autocomplete (not in Android 8+)
    • Disable all JavaScript alert, prompt and confirm boxes
    • Scale page view or scale font size
    • Autoplay HTML5 video/audio
    • Clear Cache after each page loaded
    • URL Whitelist and URL Blacklist
    • Web filter based on host list (ver. 1.33+)
    • Load local files using http/https URL (ver. 1.33+)
    • Custom error URL (PLUS)
    • Upload files (PLUS, Android 5+)
    • Upload camera/video/audio capture (PLUS, Android 5+)
    • Access webcam by HTML5 (PLUS, Android 5+)
    • Access microphone by HTML5 (PLUS, Android 5+)
    • Access geolocation by HTML5 (PLUS)
    • Support popups and open links in new frame (PLUS)
    • Disable long clicks in the website
    • Disable website scrolling or dragging
    • Disable hardware acceleration (experimental)
    • Ignore SSL errors (optional, of cause)
    • Fake browser User Agent String
  • Handle PDF, Videos and other contents
    • Show PDF files in Fully (PLUS)
    • Play videos supported by Android and videos supported by Exoplayer incl. many RTSP streams (depends on Android version, RTSP format/codec) fullscreen in the built-in viewer (PLUS)
    • Open links by other apps for other contents
    • Handle URL scheme intent:
    • Load and sync contents from ZIP file URL to local storage (ver. 1.33+)
  • Universal Launcher
    • Seamlessly mix apps, web bookmarks and file shortcuts on Fully’s universal launcher
    • Customize the launcher as simple and flexible as a web page
    • Launch other apps with full kiosk protection
    • Auto-start an app (single app kiosk mode)
    • read more
  • Customizable Toolbars and Appearance
    • Show/hide status, navigation, action, progress and address bar
    • Show/hide browser tabs
    • Real fullscreen mode (immersive sticky with Android 4.4+)
    • Custom colors for all bars and tabs
    • Customize the button set on the action bar with home, back, forward, refresh, print, share, QR scan and custom action buttons
    • Custom Action Bar Icon and Background Image
  • Configurable browsing controls
    • Back button makes history back
    • Pull to refresh the current page
    • Play tap/click sound
    • Add website links to the home screen
    • Support zoom in the web pages
    • Wait for Network connection (instead of loading error pages)
    • Navigate back/forward by swiping over the screen (PLUS)
    • Animated page transitions make a real app-feeling for your web-app (PLUS)
    • Change tabs by swiping (PLUS)
    • Tap home button for Start URL (PLUS, requires Kiosk Mode)
    • Use Fully as standard web browser in Android
    • Open URLs from NFC tags (PLUS)
  • Auto reload website on different events
    • Auto reload on idle, on page load errors (with optional delay)
    • Auto reload when screen goes on, screensaver starts, network reconnects
    • Auto reload when Internet becomes available
    • Remove cookies, history, cache or webstorage on reload
  • Configure your device for the best user experience
    • Remove system bars and use full screen (read FAQ)
    • Keep screen on, set screen brightness and orientation
    • Force Wifi/Bluetooth enable/disable (ver. 1.33+)
    • Autostart on boot
    • Bypass the lockscreen
    • Sleep on power disconnect
    • Set wakelocks
    • Show battery warning on low battery (PLUS)
    • Schedule times to hibernate and wakeup the device on day of week base (PLUS)
    • Switch screen off on idle (PLUS)
    • Pre-configure Wifi Access by SSID and Keyphrase (PLUS)
  • Screensaver (PLUS)
    • Configure Screensaver  Playlist containing URLs, media files or whole folders and play it when device is idle
    • Video Screensaver Support
    • Set custom Screensaver wallpaper and screen brightness
    • Use Android Screen Saver (Daydream) instead Fully’s Screensaver
    • Start Fully’s Screensaver as Android Screen Saver (Daydream)
  • Kiosk Mode (PLUS)
    • Lockdown device with selected exit gesture and defined PIN
    • Disable access to other apps and Android settings for unattended tablets with Android Kiosk Mode
    • Define a separate PIN only for Wifi or other settings access
    • Lock Android system bars in Kiosk mode
    • Block home button, power button, volume buttons
    • Block notifications, incoming/outgoing calls, context menus
    • Disable camera
    • Lock safe mode
    • App whitelist and blacklist
    • Lockdown device to a single app (single app mode)
    • read more
  • Motion Detection using front cam or microphone (PLUS)
    • Get more attention by switching screen on or stopping screensaver on motion
    • Adjustable motion detection sensitivity and sample rate
    • Recognize darkness
    • Detect faces (ver. 1.48+)
    • Acoustic motion detection works even in the dark
    • read more
  • Device Movement Detection (PLUS)
    • Detect device movement by accelerometer, compass sensors or iBeacons
    • Detect movement when unplugged (ver. 1.33+)
    • Switch screen on or stop screensaver on movement
    • Play anti-theft alarm sound
  • Website Integration via JavaScript (PLUS)
    • Get device information and control device
    • Manage Fully functionality and settings
    • React on different events like Screen On/Off
    • Detect iBeacons
    • Scan QR code (integrated/external barcode scanner – FAQ)
    • Communicate to Bluetooth devices (printers etc.)
    • Get cam shot (requires Motion Detection)
    • Get screenshot
    • Play videos and show PDF
    • Show notifications (ver. 1.33+)
    • Start other Apps
    • Bring Fully in Foreground
    • Print website
    • Text to speech
    • Exit or Restart App
    • read more
  • Remote Admin the Fully app (PLUS)
    • Access by any web browser in the local network or worldwide via VPN
    • Remote Admin from everywhere using Fully Cloud
    • View device and Fully Android Kiosk App info
    • Manage files for local content
    • View and manage Fully Kiosk settings
    • Show HTML source, web console, screenshot and camshot
    • Easy REST interface for automation
    • read more
  • Daily Usage Statistics (PLUS)
    • Count pageview, touches, reloads, screenons, motion detections, device movements etc.
    • View stats and download CSV in Remote Admin Interface
  • Recover the app
    • Auto restart Fully after crash (PLUS)
    • Auto restart Fully after app or Android Webview update (PLUS)
  • Easy installation, licensing, volume licensing and deployment
    • Install from Google Play or from APK file
    • Export/import settings
    • Different device provisioning methods, read more
    • Easy deployment by settings auto-import, read more
    • Supports deployment by Knox Configure
    • MQTT integration (ver. 1.34+)
    • All PLUS features are unlimited FREE to try
    • Purchase an instant license for the PLUS features (even without Google account), read more
    • Easy volume licensing with one key for 10+ devices
    • Offline licensing if your device may not connect to Internet
    • Customized and white label solutions available, read more
    • Lightweight app (less than 10 MB), no ads, no tracking
    • Move Fully to SD card (if supported by your Android system)
    • Supports Android 5 to 14 (see known issues)

If you miss any features for your use case please don’t hesitate to ask us.

Please do not expect miracles in the quality of web presentation, the browser performance, or battery usage. Fully Kiosk uses the web engine of Android Webview. It can only show the web pages as well as the available Android Webview can.  More Information in this FAQ.


Get Fully Kiosk Browser app 1.55 on Google Play

or Get the latest Beta version

Get Fully Single App Kiosk app 1.15 on Google Play

or Get the latest Beta version

Get Fully Video Kiosk app 1.14 on Google Play

or Get the latest Beta version

Get Fully Exam Kiosk app 1.6 on Google Play

or Get the latest Beta version

Fully Kiosk apps run best with Android OS ver. 5 to 14. Android OS derivatives like Chrome OS, Android TV, Fire OS and Android Go Edition may have restricted feature set or have serious issues. For Android 12+ support check this FAQ. For Android 4.4 support check this FAQ.

APK files are available in the download box. When installing from APK file apps from unknown sources must be enabled in the Android security settings. If you have Google Play installed we recommend disabling auto-updates for Fully Kiosk apps. When updating from APK installation to Google Play the old app needs to be uninstalled. You can use the settings export/import in Other Settings in order to preserve the configuration.

If you have many devices to install check our provisioning and deployment manuals.


When installing Fully Kiosk the following permissions are implicitly granted:

  • INTERNET – Internet connection
  • RECEIVE_BOOT_COMPLETED – start at boot
  • DISABLE_KEYGUARD – unlock screen
  • INSTALL_SHORTCUT – add links to the home screen
  • SYSTEM_ALERT_WINDOW – required for kiosk mode
  • REORDER_TASKS – required for kiosk mode
  • WAKE_LOCK – required for kiosk mode
  • READ_EXTERNAL_STORAGE – show local files with file:// and import settings
  • WRITE_EXTERNAL_STORAGE – export settings to file
  • ACCESS_NETWORK_STATE – check network state
  • ACCESS_WIFI_STATE – check WiFi connection
  • CAMERA – required for visual motion detection
  • SET_ALARM – required for scheduled sleep and wakeup
  • ACCESS_COARSE_LOCATION – required for HTML geolocation access
  • ACCESS_FINE_LOCATION – required for HTML geolocation access
  • RECORD_AUDIO – required for HTML microphone access and acoustic motion detection
  • MODIFY_AUDIO_SETTINGS – required for HTML microphone access
  • CHANGE_WIFI_STATE – required for Wifi pre-config
  • GET_TASKS and PACKAGE_USAGE_STATS – required for Kiosk mode
  • WRITE_SETTINGS – required for setting screen brightness
  • NFC – read URLs from NFC tags
  • READ_PHONE_STATE – access IMEI and SIM Serial
  • VIBRATE – make vibration from Webview
  • GET_PACKAGE_SIZE – get app storage stats
  • BLUETOOTH and BLUETOOTH_ADMIN – detect iBeacons, JavaScript BT interface
  • EXPAND_STATUS_BAR – required for Kiosk Mode
  • READ_LOGS – read logcat to show in Remote Admin

When activating the Screen Off Timer, JavaScript Interface, Remote Admin or Scheduled Sleep time Device Administrator Permission is requested in order to lock the device and turn the screen off by Fully Kiosk app. The safe mode lock requires administrator permission in order to set the device PIN. The Device Administrator Permission must be disabled for Fully Kiosk before the app can be uninstalled.

In Android 5+ following runtime permissions are requested when the appropriate settings are activated:

  • Access to Usage Stats – for Kiosk mode app management (on some buggy Android 5.x devices this permission has to be granted manually in Android security settings)
  • Notification Access – for blocking notifications from other apps (ver. 1.40+)

In Android 6+ following runtime permissions are requested when the appropriate settings are activated or on demand:

  • Read/write USB media – on access to a file-URL, on export/import settings, on activating Remote Admin and Kiosk Mode
  • Draw over other apps – on the first start in Kiosk mode, with activated Motion detection and for detecting touches in other apps
  • Disable battery optimization – used if prevent sleep feature or motion detection with screen off timer is enabled (ver. 1.32+)
  • Access to Camera – on Motion Detection, JavaScript Interface, QR scan button or HTML Camera access activation
  • Access to Geolocation – on HTML geolocation access, iBeacon detection or Remote Admin activation
  • Record Audio – on HTML microphone access activation or acoustic motion detection
  • Write Settings – when using screen brightness or screensaver brightness settings
  • Make and Manage Phone Calls – when activating Remote Admin or JavaScript Interface for reading IMEI and SIM Serial

In Android 7+ following runtime permissions is requested when the appropriate settings are activated:

  • Change Do Not Disturb Settings – for Playing Alarm Sounds.

In Android 8+ following runtime permissions is requested when the appropriate settings are activated:

  • Install Apps from Unknown Sources – for installing apps via Remote Admin.

Some vendors changed their Android in the way that some runtime permissions can’t be granted. You see a missing permissions list, press OK, but noting happens. Please continue pressing OK on subsequent requests. After 3-4 times an IGNORE button will appear (ver. 1.35+). You can let Fully Kiosk to forget the missing permissions. Some features relying on these permissions will however fail.

When enabling the Remote Admin or JavaScript Interface Fully Kiosk tries to obtain all potentially needed runtime permissions in order to avoid confirmation dialogs when changing settings later remotely or by using the JavaScript. There is also a solution for ignoring some permissions by configuration available, ask us for details.

The number of runtime permissions to confirm manually can be reduced to 4 or 5 when using the device provisioning. Those permissions unfortunately can’t be granted automatically in the Android OS.


In the Fully Kiosk app swipe from the left edge to the right to reach the menu and settings.  If you have Gesture Navigation enabled (in Android 10+) you have to hold short at the left edge before swiping out the menu.

Web Content Settings
  • Start URL – the Home URL beginning with http: //, https: // or file: //.
    • You can use variables like $mac, $deviceID, $locale, $hostname, $hostname6, $deviceName, $ip4, $ip6, $sn, $bssid or $ssid in the URL.
    • If you specify multiple URLs  (one URL per line), Fully Kiosk will open the URLs on multiple tabs.
    • The credentials (for the Basic HTTP authentication!) can be included in the start URL (eg http://user:pass@server:8084/fhem/ftui/ ) or entered in the Web Content Settings Username and Password. Fully Kiosk Browser doesn’t include any password management for web form based authentication. Please setup the Web Automation in Fully Kiosk if you need any kind of web auto-login.

    • Local files can be used for all URLs like this: file: ///sdcard/test.html (note triple slash!) For Android 6+ permission for access to local files is requested and must be granted. Note that any links to local files or embedding local files in HTTP/HTTPS documents are disabled by Android Webview for some security reasons. Use Localhost File Access option (ver. 1.33+) for workaround. Check this FAQ for details.

  • Username (optional) – user name for Basic HTTP Authentication (only applied to hosts included in Start URL when 401 auth request received)
  • Password (optional) – password for Basic HTTP Authentication (only applied to hosts included in Start URL when 401 auth request received)
  • Enable Fullscreen Videos – videos can be switched to full screen
  • Autoplay Videos – autoplay embedded HTML5 videos (this works only with websites having a static <video> tag, not with Youtube for now)
  • Autoplay Audio – autoplay embedded HTML5 audio (this works only with websites having a static <audio> tag for now)
  • Enable File Upload (PLUS) – allow users to upload files to web forms (disabled in Android 4.4)
  • Enable Camera Capture Upload (PLUS) – allow users to make camera photos and upload them to web forms (disabled in Android 4.4)
  • Enable Video Capture Upload (PLUS) – allow users to record a video and upload it to web forms (disabled in Android 4.4)
  • Enable Audio Record Upload (PLUS) – allow user to record and upload audio (disabled in Android 4.4)
  • Enable JavaScript Alerts – allow JavaScript alert, prompt and confirm boxed
  • Enable Popups (PLUS) – support popups (also those which open without user interaction) and open links in new frame
  • Enable Webcam Access (PLUS) – allow accessing webcam by HTML5 (Android 5+). Only possible from secure origin websites (loaded by HTTPS).
  • Enable Microphone Access (PLUS) – allow accessing microphone by HTML5 (Android 5+). Only possible from secure origin websites (loaded by HTTPS).
  • Enable Geolocation Access (PLUS) – allow accessing geolocation by HTML5. Only possible from secure origin websites (loaded by HTTPS).
  • View local PDF Files (PLUS) – open local PDF files using different methods:
    • Disabled – ignore PDF files
    • Use PDF.js – the best rendering directly in the webview incl. clickable URLs, works even in iFrames for most PDF files, may be slow with large files on slow devices, uses PDF.js hosted at Unpkg, other hosting or app integration on request. Unfortunately with PDF.js you can’t generate the print output on Android properly.
    • Use Built-in PDF viewer (Android 5+) – fullscreen view only
    • Launch Standard App for PDF – open PDF file in another app
  • View remote PDF Files (PLUS) – open remote PDF files using different methods:
    • Disabled – ignore PDF files
    • Use PDF.js – the best rendering directly in the webview incl. clickable URLs, works even in iFrames for most PDF files, may be slow with large files on slow devices, uses PDF.js hosted at Unpkg, other hosting or app integration on request. Unfortunately with PDF.js you can’t generate the print output on Android properly.
    • Use Built-in PDF viewer (Android 5+) – fullscreen view only
    • Use Google Docs – this doesn’t work for Intranet files
    • Download PDF and Pass File to Standard App – download and open PDF file in the standard PDF app
    • Download PDF and Pass Content to Standard App – download PDF file and pass content URL to the standard PDF app. This option resolves issues with the previous options and some PDF apps. (ver. 1.38+)
    • Just download the file (ver. 1.39+)
  • Play videos in Fully (PLUS) – play Android supported videos (incl. RTSP) in Fully built-in player
  • View/Open Other Files – select a way of opening other linked files. Like for PDFs you can disable them, pass an URL to another app, download and pass a file/content to external app or just download the file.
  • Links to Open in Other Apps – list of http/https URLs to open in other apps, one URL per line, may use * wildcard. All http/https URL not on this list will be opened in the Webview of Fully Kiosk. For example, put https://hangouts.google.com/call/* to this option if you want to open those links in the Hangout app (ver. 1.40+)
  • Open Other URL Schemes – Allow to open URLs like tel:mailto: or intent: in other apps
  • URL Whitelist – enter one full URL (including https:// etc.) per line, use * wildcard, all allowed if empty (look this FAQ for examples), the URLs on the Universal Launcher are whitelisted automatically
  • URL Blacklist – enter one full URL per line (including http:// etc.), use * wildcard, overrides whitelist
  • Redirect Blocked to Start URL – redirect URL blocked by whitelist or blacklist to Start URL
  • Web Overlay (PLUS) – show a non-interactive website in a transparent overlay over main content (ver. 1.52+)
    • Web Overlay URL – type the URL or keep empty for no overlay. Here are some examples for simple overlay pages: Time, IP address.
    • Web Overlay Vertical Alignment – select top or bottom
  • Custom Error URL – page to load in case of any error, check query string params error and url for more info about the error; on Android 4.4+ only DNS/connection errors will be caught, on Android 6+ also HTTP errors 40x/50x. For the case of connection errors it’s wise to use local files for the Error URL as described in this FAQ. Starting ver. 1.45+ you can use fully://errorpage as a simple error page handler.
  • Load Error URL on Disconnection – load Custom Error URL also in case of Internet disconnection after some seconds delay, set 0 for disabled. Internet Disconnection is detected by pinging IP address You can change the IP address to ping by a hidden option in Fully Kiosk: get this JSON settings file, edit and import it into Fully Kiosk.
Web Browsing Settings
  • Enable Pull to refresh – allow the down pull to reload the current page. Form data will be resubmitted if enabled in Advanced Web  Settings. Using this option can cause misbehavior of some websites where dragging is required.
  • Enable Back Button – go one page history back when tapping back button on the navigation bar
  • Load Start URL on Home Button – Tap Home Button to load Start URL (requires Kiosk Mode)
  • Enable Tap Sound – play click sound when tapping in Webview
  • Swipe to Navigate (PLUS) – swipe left/right to go history forward/back
  • Animate Page Transitions (PLUS) – create the app feeling by sliding frames in and out when navigating, hide frame while loading, requires a fast device and fast loading website
  • Swipe To Change Tabs (PLUS) – Swipe left and right to change in open browser tabs
  • Wait for Network Connection – never try to load a webpage if no connection available
  • Search Provider URL – use this URL as search provider, requires Address bar enabled, keywords entered on the Address bar are concatenated to this URL, default Google search URL: https://www.google.com/search?q=
  • Read NFC Tags (PLUS) – open URLs from NDEF formatted NFC tags, reading NFC must be enabled in Android settings and Fully Kiosk app must be in foreground. Note that Android devices don’t read NFC tags while the screen is locked (even if Fully Kiosk is showing above the screen lock using the Unlock Screen option).
Web Zoom and Scaling
  • Enable Zoom – allow zooming (in if the website supports)
  • Load in Overview Mode – load website downscaled to device width (useful for older websites)
  • Use Wide Viewport – pay attention to the viewport meta tag of the web page
  • Initial Scale – set initial scale in %, useful for older websites, only enabled if Use Wide Viewport is off, otherwise viewport meta tag overrides. This option can work with some websites while other will ignore it or have strange/temporary effects. The proper website scaling and layout is something to be done by HTML means in the website, not by this option.
  • Set Font Size – set font scaling in % (default: 100%)
  • View in Desktop Mode – try presenting websites in desktop view instead of mobile view
Web Auto Reload
  • Auto Reload on Idle – automatic reload (Start URL or current page) after x seconds of user inactivity
  • Auto Reload after Page Error – automatic reload after x seconds on page load failure; on Android 4.4+ only DNS/connection errors will be caught, on Android 6+ also HTTP errors 40x/50x.
  • Auto Reload on Screen On – automatic reload when screen goes on
  • Auto Reload on Screensaver Stop – automatic reload when screensaver stops
  • Auto Reload on Network Reconnect – automatic reload when WiFi/LAN/LTE reconnects
  • Auto Reload on Internet Reconnect (experimental) – reload Start URL when real Internet connection reappears. Connection check is done by pinging Google DNS server at each 10 seconds. You can change the IP address to ping by a hidden option in Fully Kiosk: get this JSON settings file, edit and import it into Fully Kiosk.
  • Delete Cache on Auto Reload – clear cache before reloading
  • Delele Webstorage on Auto Reload – clear webstorage before reloading
  • Delete History on Auto Reload – clear history and form data before reloading
  • Delete Cookies on Auto Reload – delete cookies before reloading
  • Load Current Page on Auto Reload – always reload current page instead of Start URL on auto reload; if many tabs are opened all tabs will be refreshed. Custom Error URL will revert to the last “good” URL.
  • Skip Auto Reload if Showing the Start URL – Do not auto reload if the start URL is still showing. This option doesn’t work if you have set multiple Start URL.
Advanced Web Settings
  • Basic Web Automation – Automatically fill text in web forms, toggle checkboxes, click links and buttons. Configure a flexible list of actions to perform on each loaded page.  You can filter target page by URL (use * as wildcard) and select the target field, button or link by index or different IDs (PLUS, ver. 1.41+). Using this feature you can setup your web/login form to auto-populate and auto-submit. You can also setup the automation to remove all cookies, webstorage, cache or history prior to load some URL. This should be enough to clear the website logins.
  • Enable JavaScript Interface (PLUS) – Allow website to use Fully’s JavaScript Interface to access app and device information and features. Enable this option only if you trust all websites loaded. This option is potentially insecure as any website can read ALL your local files etc. – see docs below
    • Detect iBeacons (PLUS) – scan for iBeacons and trigger event on JavaScript interface when detected
    • Enable QR Code Scanner (PLUS) – enable the integrated barcode scanner from JavaScript interface (ver. 1.30+)
  • Inject JavaScript (PLUS) – run this JavaScript code after loading each page. Using this option you can modify websites which code you can’t change. You will need a web developer to develop a JavaScript according to your requirements.
  • Enable Text Input – Enable text input in editable web form fields
  • Always Hide Keyboard – Make the soft keyboard always invisible. Experimental option, the behavior can be different depending on the device and keyboard app. May need an app restart each time after using the keyboard (e.g. in Settings) to have effect.
  • Enable Form Autocomplete – save and prefill form data. This option is not available with Android 8+, please use the Autofill option below.
  • Enable Form Autofill – allow Android Autofill Manager to auto-fill the forms in the Webview, please check the Autofill options in Android system settings (look for Language and Input) (ver. 1.54+)
  • Enable Touch Interaction – Allow any touch interaction in the Webview
  • Enable Long Tap – Enable long tap actions like text selection and context menus (ver. 1.52+)
  • Enable Dragging – Allow dragging objects by touch in the Webview, disabling will also disable scrolling in the webview (ver. 1.40+)
  • Enable Scrolling – Allow page scrolling in the Webview (1.40+)
  • Enable Overscroll – Enable overscroll animation (1.50+)
  • Enable Third Party Cookies – allow accepting those cookies (Android 5+, always allowed for Android 4)
  • Recreate Tabs on Reload – close web tabs and open new tabs on each Start URL load (ver. 1.27+)
  • Web Popup Options – Specs for all popup windows (like width=500,height=500,top=200,background=#C00000FF) to show popups in the box, show popups fullscreen otherwise (PLUS, 1.55.1+)
  • Resubmit Form Data on Reload – Resend form data (POST) on each page reload (ver. 1.33+)
  • Localhost File Access (PLUS) – access local files in Webview using https://localhost/… or http://localhost/… URL. So you can embed local files (images or videos) in your website. Check this FAQ. Enable this option only if you trust all websites loaded. This option is potentially insecure as any website can read ALL your local files. (ver. 1.33+)
  • Add Referer Header – apply Referer Header to HTTP GET requests (ver. 1.33+)
  • Add XFF Header – apply X-Forwarded-For header to HTTP GET requests (ver. 1.33+)
  • Add DNT Header – apply Do Not Track header to HTTP GET requests. This option is ignored by the most servers (ver. 1.55.3+)
  • Remove X-Frame, CSP and CORS protection (PLUS) – Specify a list of URLs to remove the X-Frame-Options, Content-Security-Policy options and add Access-Control-Allow-Origin on the sever response, one URL per line, can use * wildcard. With this option you can try to void these protection mechanisms. Use with care and note that this option can affect web caching and HTTP POST requests are not processed (ver. 1.53+).
  • Enable Web Filter (PLUS) – load a host list from /sdcard/fully-blackhosts.txt  and block them. So you can make a basic ad blocker. You can get a list of known Ad hosts in text format here (ver. 1.33+)
  • Enable Safe Browsing (experimental) – Block websites Google has classified as a known threat (requires Android 8.1+)
  • Ignore SSL Errors – can be used with self-signed certificates, this makes TLS/SSL absolutely unsafe of cause
  • Pause Webview while in Background (experimental, ver. 1.39.3+) – pause Webview when Fully Kiosk in background or screen is off
  • Enable DRM protected content (experimental, ver. 1.41+) – enable protected content in the Webview
  • Mixed Content Mode (ver. 1.43+) – allow secure origin documents to load a resource from an insecure origin. If you change this option, you should know what you do. Note that Webview 111+  blocks some mixed content regardless to this option due to  a known Chromium bug.
  • Client Certificate File (PLUS) – Client certificate URL (or file URL) for client CA authentication, P12 or PFX files allowed. Note that AES256-SHA256 encryption is not supported by Android on some devices,  certificate in TrippleDES-SHA1 seems to work ok. Watch Logcat for CA issues.
  • Client Certificate Password – Client certificate private key password
  • Restart on Unresponsiveness – restart app after some seconds of Webview unresponsiveness, keep 0 for disabled (PLUS, EXPERIMENTAL, ver. 1.52+)
  • Cache Mode – select Caching Mode for the Webview
  • Clear Cache After Each Page – purge cache after each page loaded
  • Resume Playback when Getting to Foreground – try to resume embedded video and audio when Fully Kiosk is getting to foreground
  • Keep Screen On while in Fullscreen Mode – disable screensaver and screen off timer while the Webview is in fullscreen mode
  • Enable Webview Contents Debugging – enable remote debugging using Chrome Developer Tools
  • Fake User Agent String – use the agent string of another web browser
  • Custom User Agent String (PLUS) – set an arbitrary UA string (ver. 1.29+)
  • Default Webview Background Color – select background color for the Webview, defaults to white. This option only takes effect if the website doesn’t specify any background color.
  • Graphics Acceleration Mode – you can choose among hardware, software or no acceleration, try it if you have rendering issues in Webview; videos will play only with Hardware mode
  • Select Webview Implementation – On Android 7+ opens the developer options where you can select the Webview provider (Webview, Chrome or Chrome beta, if installed)
Universal Launcher
  • Select Items to Show – select apps from the list of installed apps or add URLs for web bookmarks to show on the launcher (more info)
  • Show Launcher on Start – always show the launcher page (fully://launcher) instead of the Start URL
  • Launcher Background Color – select background color for the launcher page
  • Launcher Text Color – select app/bookmark label color for the launcher page (ver. 1.31+)
  • Launcher Background Image URL – load launcher background image from this URL or file (ver. 1.38+)
  • Launcher Page Scaling – set page scaling for launcher page in %, default: 100%
  • Inject HTML Code in Launcher – design your custom launcher layout by injecting CSS/JS code in <head> of the launcher page like this
  • Application to Run on Start in Foreground – select app to run in foreground on Fully Start (PLUS, experimental, ver. 1.45+). If you use only one app better use the Single App Mode in Kiosk Mode Settings.
  • Applications to Run on Start in Background – select apps to run in background on Fully Kiosk start, one package name per line (PLUS, experimental, ver. 1.43.4+). Technically the specified apps will be started on device startup by their launcher intents and then Fully Kiosk push itself back to foreground.
Toolbars and Appearance

These options only have effect when Fully Kiosk is in foreground. As other apps usually run fullscreen in Android OS it’s impossible to change this. For fullscreen options check this.

  • Show Navigation Bar – show system navigation bar (bottom bar) permanently, keep disabled for fullscreen mode, this setting has no effect for devices with hardware home/back buttons
  • Navigation Bar Color – select background color for the navigation bar, alpha transparency is allowed, can specify hex ARGB color code
  • Show Status Bar – show system status bar (top bar) permanently, keep disabled for fullscreen mode
  • Status Bar Color – select background color for the status bar
  • Show Action Bar – show action bar with buttons
  • Action Bar Title – enter text to be shown on the Action bar. You can use variables like $mac, $deviceID, $locale, $hostname, $hostname6, $deviceName, $ip4, $ip6, $sn, $bssid or $ssid.
  • Action Bar Background color – select background color for the action bar
  • Action Bar Text Color – select text/icon color for the action bar
  • Custom Icon URL – load action bar icon (left on the text) from this URL, can use file:///sdcard/path/to/filename.png for local files
  • Custom Background Image URL – load action bar background image from this URL
  • Show Back Button – show back button on action bar
  • Show Forward Button – show forward button on action bar
  • Show Refresh Button – show refresh button on action bar
  • Show Home Button – show home button on action bar
  • Show Print Button – show print button on action bar
  • Show Share Button – show share button on action bar – ver. 1.28+
  • Show Barcode Scan Button – show QR scan button, look in Other Settings for barcode scanner configuration, check this FAQ (ver. 1.40+)
  • Custom Button Action – URL to load on custom button press, you can use fully://launcher for Universal Launcher, keep empty for no custom button
  • Action Bar Size (PLUS, experimental) – Set action bar scaling in percent (default 100%, ver. 1.43.5+)
  • Show Action Bar in Settings – also show the action bar in Settings
  • Show Tabs – show tab flaps for browser frames, you can load multiple pages by defining multiple Start URLs (one URL per line)
  • Show Close Buttons on Tabs – allow users to close web tabs
  • Show New Tab Button – allow users to open new web tab, the address bar will be needed to enter the URL
  • New Tab URL – open this URL on the new tabs opened by users (ver. 1.54+)
  • Active Tab Color – define background color for active tab
  • Inactive Tab Color – define background color for inactive tabs
  • Tab Text Color – define color for tab text and buttons
  • Show Address Bar – show address bar with current URL, Fully will auto-hide address bar when scrolling
  • Address Bar Color – select background color for the address bar
  • Show Progress Bar – show progress bar at the top when loading
  • Progress Bar Color – select color for the progress bar
Screensaver (PLUS)
  • Screensaver Timer – After how many seconds screensaver will be started, screensaver stops on any user interaction or when motion/movement detected. Please note that prior to version 1.39 the Fully Kiosk screensaver couldn’t start while another app is in foreground. For this reason the screensaver settings was not available in the Fully Single App Kiosk app prior to version 1.6. Check this FAQ for a possible workaround using Android Screen Saver (Daydream) for older versions.
  • Screensaver Playlist – Select media files, folders, YouTube video/playlists or just web sites to show on the screensaver. You can keep this list empty if you just want to dim the screen.
  • Screensaver Wallpaper URL – Show this website as screensaver wallpaper, set it empty for transparent wallpaper. You can use an URL like fully://color#000000 for a solid color page.
  • Screensaver Brightness – set screen brightness for Screensaver (0-255), dim your screen when screensaver is playing, empty for default
  • Fade In/Out Duration – set image fading duration in milliseconds, default 200ms
  • Ignore Motion Detection when Screensaver goes on/off – ignore ambient light changes and don’t detect motion while screensaver is starting or stopping (ver. 1.41+)
  • Cache Images – Enable caching of network images on the playlist
  • Use Android Screen Saver – start Android Screen Saver (called Daydream before Android 7) instead of Fully’s Screensaver. Android Screen Saver start isn’t reliable if the device is locked and Unlock Screen option is used or while other apps are in foreground. This option is not available in Android 13+.
  • Android Screen Saver Settings – open Android Screen Saver (Daydream) settings
  • Use Another App – launch an app on screensaver timer instead of Fully’s playlist. That app must provide an exit on tap if you want to exit screensaver on tap.
  • Select Screensaver App – pick an app or specify an intent URL to run. That app must close by itself when detecting a touch or other exit intent.
Device Management
  • Keep Screen On – Screen will always stay on. The device will be prevented from going to sleep by Android display settings. But  the screen off and sleep remain possible by Fully Kiosk options like Screen Off Timer and Scheduled Wakeup/Sleep. In Kiosk Mode the Power Button behavior can be set in Kiosk Mode settings. If you disable the Keep Screen On option please check the Prevent from Sleep While Screen Off option in Fully’s Power Settings otherwise your device may fall a sleep. That could brake the features if you are using motion detection or remote admin.
  • Keep Screen On (Advanced) – use this if the previous option doesn’t help to avoid screen offs when using other apps (Android 10+, ver. 1.44+)
  • Screen Brightness – Set screen brightness 0…255, leave empty for system default
  • Force Screen Orientation – Set screen orientation (only for Fully Kiosk, doesn’t force other apps)
  • Force Screen Orientation Globally – Try to force the selected screen orientation for the Android OS and all apps (experimental, ver. 1.40.2+)
  • Unlock Screen – show Fully Kiosk “above” the lock screen. This works only for Fully Kiosk app, the user interaction may lead to a lock screen when other apps are started – as they are still “behind” the lock screen (file or camera capture uploads, open in other apps, open Wifi or other Android settings, permission dialogs etc.). Note that some features like NFC scan or hardware barcode scan can be unavailable is this option is enabled until you manually unlock the device. Check this FAQ and also look for Fire OS limitations
  • Unlock Swipe Screen Lock (experimental) – try to unlock swipe screen lock automatically (Android 8+). This option can help to prevent the bug in some devices when the keyboard is not showing up. This unlock can take 3-4 seconds on some devices for unknown reasons unfortunately.
  • Screen Off Timer (PLUS) – Seconds of user inactivity for the screen to be switched off. Screen goes on again on power button press, on wake up timer, when motion/movement detected (if enabled, look in Motion/Movement Detection) or when an API screenOn command is issued. Note that some devices will suspend the device completely or even kill the Fully Kiosk app when the screen is off and Motion/Movement Detection or Remote Admin can’t run. Look for Fire OS limitations. Please check related settings in Advanced Web Settings and in Other Settings to set the behavior of this option when fullscreen content is played or other apps are in foreground. Check this FAQ if you want the screen to wake up on tap.
  • Turn Screen Off on Proximity (PLUS) – turn screen off while proximity sensor detects objets nearby (ver. 1.43+)
  • Launch on Boot – run Fully Kiosk at device startup. You don’t have to turn on this option if you enable the Kiosk Mode with Home Button disabled, Fully Kiosk will run on start anyway.
  • Redirect Audio to Phone Earpiece (PLUS) – redirect audio output to phone earpiece. This can have side effects for changing volume when redirected. In Android 12+ this option only has stable effect for audio output of Fully Kiosk app, not from other apps (ver. 1.43+)
  • Set Volume Levels (PLUS) – set initial volume levels when the kiosk app starts, comma separated stream:percent list, empty for no change. Stream codes: 0 – Voice Call, 1 – System, 2 –  Ring, 3 – Music, 4 – Alarm, 5 – Notification, 6 – Bluetooth, 8 – DTMF, 9  – TTS, 10 – Accessibility. For example, the string value 2:80,3:50 will set the ring stream volume at 80% and the music stream volume at 50%.
  • Force Immersive Fullscreen (experimental) – try making the system bars immersive for other apps – ATTENTION: This is not required for Fully to make the fullscreen for web browser and launcher, use settings in Toolbars and Appearance section. When this mode is activated all key input including keyboard and back key is out of order. We can’t change this unfortunately, this mode is a big hack.
  • Remove Navigation Bar (experimental) – completely remove navigation bar for all apps (!), this works on Android 10 and older only and requires special permissions, read FAQ
  • Remove Status Bar (experimental) – completely remove  status bar for all apps (!), this works on Android 10 and older only and requires special permissions, read FAQ
  • Set Device Name – set the device name (Bluetooth name), can use placeholders like in Start URl, empty for keep (experimental). This options doesn’t work with all devices. Samsung devices for example get the device name from somewhere we can’t change (ver. 1.46+)
  • Bluetooth Mode – Force enable or disable Bluetooth on app start (ver. 1.33+)
  • Wifi Mode – Force enable or disable Wifi on app start (ver. 1.33+). With Android 10+ this feature is only available on provisioned devices.
  • Hotspot Mode – Force enable or disable the Hotspot at app start (experimental, ver. 1.54+)
  • Reset Wifi on Internet Disconnection – Swith the Wifi off&on (with 5 seconds delays) if the Internet Connection is lost (PLUS). Internet Connection is checked by pinging the IP address You can change the IP address to ping by a hidden option in Fully Kiosk: get this JSON settings file, edit and import it into Fully Kiosk. (ver. 1.45+)
  • Forced Wifi SSID (PLUS) – Pre-configure device for some Wifi network, if specified SSID is available Fully will force connection to this Wifi. The Wifi SSID may not be added manually in Android Wifi Settings, let Fully add it, otherwise Fully can’t connect to it. With Android 10+ this feature is only available on provisioned devices.
  • Forced Wifi Keyphrase (PLUS) – WPA keyphrase for the SSID above
  • Forced Wifi Settings (PLUS)
    • Wifi Type – WPA PSK (default), WPA EAP, Open (no password)
    • Enterprise Wifi Identity (for WPA EAP only)
    • Enterprise Wifi Password (for WPA EAP only)
  • WiFi Settings – open Android’s WiFi settings directly
  • Load Content From ZIP File (PLUS) – load ZIP file from this URL and unpack to /sdcard automatically, check for updates (according to Last-Modified server response header) each hour. Note that /sdcard refers to the internal public storage (not the external SD card!) on most devices. App private storage will be used if your device is in scoped storage mode. Be careful as existing files will be overwritten without any notification. Files of zero size will be removed from device when unpacking. Avoid non-latin letters in the packed file/folder names or make sure the packer is using UTF-8 encoding. Check this FAQ for details!
Power Settings
  • Schedule Wakeup and Sleep (PLUS) – set sleep and wakeup times for each day of week or whole week or weekend only, please use 24h time format HH:MM for settings and note that not each device is capable of waking up on schedule. On scheduled sleep time the motion detection and movement detection are deactivated. Pressing a power button or restarting the device after that however reactivates them. As well as they get reactivated on wake up time, of cause. Note that some device can fail to wakeup or the wakeup time isn’t accurate.
  • Keep Sleeping if Not Plugged – don’t wake up on schedule if device is unplugged
  • Turn Screen On on Power Connect (experimental, ver. 1.42+) – wakeup a sleeping device when power cord is plugged. Most devices will wake up even without this option.
  • Sleep on Power Connect – hibernate device when power cord is plugged, can be used for nightly charging
  • Sleep on Power Disconnect – hibernate device when power cord is unplugged, can be used for nightly sleep
  • Force Screen Off If Not Powered – Don’t allow turning on the screen if device is unplugged. Use with caution! If you enable this option your device will be not operational until you plugin the power cord!
  • Show Battery Warning (PLUS) – show warning on display if battery below this value, set 0 for disable
  • Prevent from Sleep while Screen Off – Try to keep device awake even if the screen is turned off (Android 6+). Otherwise usually many devices will fall asleep as soon as the screen is turned off. This option doesn’t work 100% with some device vendors and Android versions. Note that some vendors like Huawei may kill our kiosk app after some screen off time. Read here for possible solutions. Note that despite this option is enabled the Android Webview will pause scripting when the screen is off. So you likely can’t keep your website “alive” once the screen is off. Use the screensaver in Fully Kiosk instead screen off as a workaround.
  • Set CPU Wakelock – force CPU to always keep up (usually not needed, doesn’t have any effect with newer devices)
  • Set Wifi Wakelock – force Wifi to always keep up (usually not needed, doesn’t have any effect with newer devices)
Kiosk Mode (PLUS)
  • Enable Kiosk Mode – lockdown device with exit gesture and PIN. If enabled Fully Kiosk will also always start at device startup. Android 12+ has some limitations that make a reliable Kiosk Mode protection impossible without device provisioning or other means. Read this FAQ.learn more about Kiosk Mode
  • Kiosk Exit Gesture – select gesture to show PIN dialog. This option is out of order if single app kiosk mode is active.
    • Swipe from Left (also Long Press Back button, default, only works if Fully Kiosk app is in foreground). If you have gesture navigation enabled (in Android 10+) you have to hold short at the left edge before swiping out the menu.
    • Fast 5 Taps anywhere (easy to use, only works if Fully Kiosk app is in foreground)
    • Fast 7 Taps anywhere in any app (also works if another app is in foreground) – check this FAQ for the case if 7 fast taps can be triggered accidentally
    • Double Tap Top Left Corner plus Double Tap Bottom Right Corner (all must be done within 3 seconds, hard to guess, only works if Fully Kiosk app is in foreground)
  • Kiosk Mode PIN – password to leave the Android Kiosk mode, PIN dialog will be skipped if you leave it empty
  • Wifi/Settings PIN – another PIN to access Android’s Wifi, access some other settings or start some other app only. Caution: On some devices like Samsung Tablets access to Wifi or other settings allow access to all Android settings what allows the user to disable the Kiosk mode. Try using this workaround or use the Select Wifi Network instead.
  • Wifi/Settings PIN action – Select the action on entering Wifi/Settings PIN of following (ver. 1.33+):
    • Open Android Wifi Settings (default)
    • Open Android Bluetooth Settings
    • Open Android Mobile Network Settings
    • Open Android Connection Settings
    • Open Android OTA Update Settings
    • Select Wifi Network (experimental, with Android 10+ only working on provisioned devices)
    • Custom Action Intent
  • Wifi/Settings PIN Custom Intent – Specify the Intent URL for the custom action (ver. 1.33+)
  • Disable Status Bar – lock status bar and system settings access – your kiosk won’t be safe if you disable this setting. On some devices if you switch off this option you still can’t expand the status bar if Disable Power Button is enabled. In Android 8+ you can pull down the status bar however it shouldn’t be usable. In Android 12+ the status bar and notification area can be used even with this option. Read this FAQ for solutions.
  • Disable Volume Buttons – restrict volume buttons in Kiosk Mode, also try to block any sound volume changes  (look for Device Owner Settings for solution with provisioned devices)
  • Limit the Volume Level – if volume buttons not disabled limit the volume on all channels to this maximum in percent, empty for disable (ver. 1.42+)
  • Disable Power Button – make the power button almost useless in Kiosk Mode. Short button press will switch off the screen for a second however before Fully Kiosk turn it back on. Longer press can show the power off buttons for a very short moment. In Android 9+ with Samsung devices this option can’t block the power dialog (Power Off / Restart /Emergency) reliably.  With Android 12+ this is valid for all devices. Read this FAQ for solutions. Very long press will usually power off the device, this is a hardware feature that no app can block (except by using the KNOX Settings). Note: This option will also prevent the device from switching off the screen after display timer set in Android settings. Please enable the Keep Screen On and use the Screen Off Timer option in Fully Kiosk Device Management settings instead.
  • Disable Home Button – lock the home button, if enabled Fully Kiosk will ask to set itself as your Home App and also start automatically on device start up
  • Disable Context Menus – disable system context menus like Copy/Share/Select all for Fully Kiosk app (not for other apps, ver. 1.52+)
  • Disable Other Apps – block all other apps except apps intentionally started by/from Fully Kiosk, also makes Recent Task Button unusable
  • Advanced Kiosk Protection – enable advanced protection against starting other apps. Recent tasks and power button will be useless even when other apps are in foreground. Advanced protection is always enabled automatically when using the Universal Launcher and the Single App Mode. This protection will show toast message when blocking other apps. You can add the good apps to the App Whitelist if Fully Kiosk is killing to much.
  • App Whitelist – allow selected apps or activities to go to foreground, one package name (for apps) or component name (for activities) per line, may use * as wildcard. E.g. set com.skype*  to allow using Skype (including all activities of that app). All apps started directly by Fully Kiosk are automatically whitelisted and don’t need to be put on this list. Starting ver. 1.38  single activities can be whitelisted by providing a component name like com.android.settings/.Settings You can find out the activity name (component name) by watching the foreground activity info in Remote Admin.
  • App Blacklist – always block selected apps or activities, one package name (for apps) or component name (for activities) per line, may use * wildcard (ver. 1.38+). App blacklist has a higher priority than app whitelist. Please look on Remote Admin in the Device Info for the Current Foreground Activity in order to find the component name to blacklist.
  • Single App Mode – auto-run one selected app with full kiosk protection. So you can lockdown the device to one single app. Please start your app on the device prior to setting it as your single mode app in Fully for getting the required runtime permissions (or use device provisioning for setting the most permissions automatically). Tap 7 times very fast anywhere on the screen to see the PIN dialog. The Kiosk Exit Gesture option has no effect. If 7 fast taps can occur frequently by the normal usage of your app please check this FAQ for alternative solutions.
    • Single App Mode – enable single app mode
    • Select Single App – select the app to run in single app mode from the list of installed apps or specify an Intent URL
    • Single App Exit by Remote Admin only – Disable single app mode exit by 7 fast taps. You will only be able to exit from single app mode by the Remote Admin Unlock Kiosk button. Remote Admin must be activated in order this option to have effect. (ver. 1.32+)
    • Wait for Boot Completed – Wait for device boot completed before starting the single app
    • Pause for Updates – Keep the single app paused for 15 minutes after scheduled wakeup for possible updates (EXPERIMENTAL, ver. 1.51+). Otherwise single app has no chance to be updated by Google Play if staying in foreground all time. Scheduled Wakeup/Sleep must be used in Power Settings in order this option to take effect.
  • Disable Notifications – block all status bar notifications from other apps (ver. 1.40+)
  • Disable Incoming Calls – block all incoming calls (ver. 1.42+)
  • Disable Outgoing Calls – block all outgoing calls (except emergency calls) (ver. 1.42+)
  • Disable Screenshots – Disallow taking screenshots and screen recording in Fully Kiosk (doesn’t affect other apps). This option will also cause remote control tools like Anydesk or Teamviewer to show black screen. Restart the app after changing this option to apply! (ver. 1.43+)
  • Lock Safe Mode – Lock Android safe mode, the device PIN lock screen will be activated with your Kiosk PIN for this purpose, may be problematic for starting other apps. Note that this option can’t be reverted in Android even if disabled in Fully Kiosk. You can manually disable the screen lock in Android Settings again after removing administrator permission from Fully Kiosk.
  • Disable Camera – disable camera for all apps (including Fully Kiosk, so this will kill the Visual Motion Detection)
Motion Detection (PLUS)
  • Enable Visual Motion Detection – use from camera for motion detection – see below
    • Detector Sensitivity – Detection sensitivity 0-100, higher value means higher sensitivity, works mostly best at 90-95
    • Detector Frame Rate – detector rate per second (1-25), higher value makes detection more reliable, it cause however a higher CPU load
    • Darkness Level – darkness threshold level (0-100), lower value triggers darkness at lower ambient light level. If you set it to 100 darkness will be triggered even at bright conditions. Only relevant if Turn Screen Off in Darkness enabled.
    • Select Camera – Select the camera to use for motion detection. Note that many external cameras are still not supported by both Camera Legacy and CameraX APIs.
    • Show Cam Preview – show small cam preview image in the right bottom corner. If Face Detection is enabled you will also see smilies when faces are detected.
    • Camera API – Select the camera API used for motion detection. App restart will be required to apply (EXPERIMENTAL, ver. 1.54+). You can choose among the Android Camera (Legacy, default) or Android Camera X API. The Camera X API can have a better camera support on newer devices, however can fail on older devices.
    • Detect Faces – Enable face detection on the camera image (experimental, ver. 1.48+). You can use the new JS API fully.getFaceNumber() and get events facesDetected by MQTT and JS API.
    • Face Detection Confidence – Face detection required confidence threshold, default 30% (ver. 1.55+)
    • Trigger Motion only when Faces Detected – trigger motion detection (only!) when faces found in the camera image. The motion will not be triggered as long as there are no faces on the camera. (ver. 1.48+)
    • Pause when Fully in Background – pause motion detection while another app is in foreground
  • Enable  Acoustic Motion Detection – use device microphone for motion detection. This feature seems to fail with Android 11+ on some devices.
    • Acoustic Detector Sensitivity – microphone sensitivity 0-100, works mostly best at 90-100
  • Turn Screen On on Motion – turn screen on when motion detected, look in Device management section for Screen Off Timer
  • Exit Screensaver on Motion – stop screensaver when motion detected, look in Screensaver section for screensaver settings
  • Stop Web Reload on Motion – reset reload timer when motion detected, look in Web Auto-Reload Settings for Auto Reload on Idle Timer (ver. 1.43+)
  • Turn Screen Off in Darkness – turn screen off when darkness detected
Device Movement Detection (PLUS)
  • Enable Movement Detection – use accelerometer and compass sensors for movement detection of the device (can be used for anti-theft protection with Alerts from Fully Cloud)
    • Accelerometer Sensitivity – accelerometer sensitivity (0-100) to trigger Movement Detection
    • Compass Sensitivity – compass sensitivity (0-100) to trigger Movement Detection
    • Turn Screen On on Movement – turn screen on when device movement detected, look in Device management above for settings to turn screen off
    • Exit Screensaver on Movement – stop screensaver when device movement detected, look in Screensaver section above for screensaver settings
    • Play Alarm Sound on Movement – play short alarm sound when device movement detected (anti-theft protection)
    • Alarm Sound File URL – play file from this URL on alarm, keep empty for default sound, can use file:// URL for local files
    • Play Alarm Sound until PIN entered – once alarm is triggered keep playing alarm sound until correct PIN is entered if in Kiosk Mode
    • Ignore Motion Detection when Moving Device – don’t detect any motion while device sensors detect movement
    • Trigger Movement when Device Unplugged – detect movement when device is unplugged from power source (ver. 1.33+)
    • Anti-Theft Beacon IDs – list of iBeacons as UUID/Majos/Minor (no leading zeros), one beacon per line, may use * wildcard. When a beacon from this list is detected within specified distance, movement will be triggered. Please use a scanner app like this to test the beacon detection and show the IDs.
    • Anti-Theft Beacon Distance – distance threshold to iBeacon where to detect movement (in meter,  very approximately!)
Remote Administration (PLUS)
  • Enable Remote Administration – show info, configure and control Fully remotely in any web browser – see below
    • Remote Admin Password – Set password, required for Remote Admin site, for the REST Interface and for Fully Cloud EMM access to the device
    • Remote Admin from Local Network – enable remote admin and REST interface in the local network or via VPN at http://ip-address:2323. You can establish HTTPS connection to Remote Admin if you put a  valid SSL certificate file on device, read more.
    • Enable File Management on Remote Admin – Allow listing and downloading local files using Remote Admin web interface (1.32.2+)
    • Enable Screenshot on Remote Admin – allow getting a screenshot on Remote Admin, this option can’t be changed on Remote Admin
    • Enable Camshot on Remote Admin – allow getting a camshot on Remote Admin (requires Motion Detection), this option can’t be changed on Remote Admin
    • Remote Admin from Fully Cloud – Also enable remote admin worldwide using Fully Cloud EMM service at fully-kiosk.com/cloud
    • Transmit Device Location to Fully Cloud – Switch it off if device location is sensible/protected data in your use case (ver. 1.55.3+)
    • Add Device To Fully Cloud – specify account and password to add this device  to Fully Cloud EMM. You can save the cloud credentials (encrypted) in order to copy them to other devices by the deployment process and add other devices automatically to Fully Cloud.
Root Settings (PLUS, rooted devices only, ver. 1.35+)
  • Enable Root Features – Get root privileges for the app and allow root features, use it with caution
  • Daily System Restart – Scheduled time (HH:MM) in 24h format for automatic device restart, keep empty for disabled
  • Shutdown on Power Disconnect – Shutdown the device after defined number of seconds after unplugging, keep 0 for disabled
  • Clear Launcher Apps – reset all launcher apps after Fully Kiosk is in foreground for defined number of seconds, keep 0 for disabled
  • Clear Single App after Idle Time – reset the single app after defined number of user inactivity seconds, set 0 for disabled
  • Kill Apps Before Starting Them – Always kill selected apps before starting them, enter one package name per line
Device Owner Settings (PLUS, provisioned devices only)
  • Lock Task Mode  – Better kiosk mode protection, disable home and recent task button, disable status bar (in Kiosk mode only).
    • Enable Lock Task Mode
    • App Lock Task Whitelist – allow selected apps to enter the lock task mode, one package name per line. Starting ver. 1.43 apps started by Fully Kiosk will be whitelisted automatically.
    • Enable Home Button – force show home button in lock task mode (ver. 1.43+, Android 9+)
    • Enable Recent Task Button – force show recent task button in lock task mode (ver. 1.43+, Android 9+)
    • Enable Notifications – enable status bar and notifications in lock task mode (ver. 1.43+, Android 9+)
    • Enable System Info – enable system info in the task bar in lock task mode (ver. 1.43+, Android 9+)
    • Enable Showing Global Actions – enable showing global actions on long power button press in lock task mode (ver. 1.43+, Android 9+)
  • Disable Status Bar – better disable status bar (in Kiosk mode only)
  • Disable Keyguard – Enabling this option has the same effect as choosing “None” for the Screen Lock type. However, this option has no effect if a password, pin or pattern is currently set. You must enable this option if you want to disable Screen Lock on provisioned devices. However disabling the swipe screen lock automatically doesn’t work on some devices. Look for experimental Unlock Swipe Screen Lock option in Device Management Settings for alternative or set the Screen Lock to None by hand.
  • Disable Volume Buttons
  • Disable Screen Capture
  • Disable USB Storage
  • Disable ADB
  • Disable Boot in Safe Mode – this doesn’t work 100% with all devices
  • System Update Policy – select policy for over-the-air system updates: as soon as possible, postpone for 30 days or only in time window 10pm-2am
  • Password Quality
  • Minimum Password Length
  • App Runtime Permission Policy – default runtime permission policy: prompt, grant or deny
  • Additional User Restrictions – Apply other user restrictions by policy, one restrictions per line, check Android docs for IDs (use values like no_add_user, no_add_wifi_config, no_adjust_volume etc.)
  • Disable Apps From Unknown Sources – disable app install from APK file
  • APK Files to Install – enter one URL per line, silent install can be done with Android 6+, requires Disable Apps from Unknown Sources to be switched off.
  • APK File Update Interval – Check for APK updates according to Last-Modified server response header each X minutes, min. 15 minutes, set 0 for disabled
  • System Apps to Enable – enable selected system apps, one package name per line. By default most pre-installed apps are disabled by device provisioning. When making provisioning by QR method you can select to keep the apps in the provisioning set configuration
  • Apps to Disable – disable access to selected apps, one package name per line
  • APN Config – add custom APN configuration, one per line, like this: 

Also supports optional apnTypeBitmask und carrierEnabled fields.

  • Global Proxy Config – provide global proxy address as host:port or provide a full pac URL
  • Daily System Restart – Scheduled time (HH:MM in 24h format) for automatic system restart, keep empty for disabled (ver. 1.49+)
  • Remove Device Owner (EXPERIMENTAL) – unregister our app as device owner, can be used to uninstall the kiosk app from provisioned device
KNOX Settings (PLUS, Samsung devices only)
  • Enable KNOX Features – enable Samsung KNOX features, requires Internet for KNOX license activation. KNOX features are for B2B customers only. Use with caution, there is a small chance to brick the device. After activation you have to read and confirm the KNOX license agreement. Test properly, some devices can loose the KNOX license after reboot or will ask for KNOX license confirmation again.
  • Use only when Kiosk Locked – enable KNOX features only when the kiosk is locked, otherwise KNOX settings will take effect even if Fully Kiosk is stopped (ver. 1.41+)
  • Disable Camera – disable camera for all apps
  • Disable Screen Capture – disable screenshots
  • Disable Status Bar – better disable pulling down the status bar
  • Hide Status Bar – remove status bar content (ver. 1.32+)
  • Hide Navigation Bar – remove navigation bar content (ver. 1.32+)
  • Disable Hardware Home Button – disable home button (ver. 1.32+)
  • Disable Hardware Back Button – disable back button (ver. 1.32+)
  • Disable Hardware Power Button – disable power button (ver. 1.32+)
  • Disable Hardware Recent Task Button – disable recent task button (ver. 1.32+)
  • Disable Hardware Volume Keys – disable volume keys (ver. 1.32+)
  • Disable USB Host Storage – disable USB access to external storage and devices
  • Disable Media Transfer Protocol – disable USB access to device storage via MTP
  • Disable Safe Mode – disable safe mode
  • Disable OTA Upgrades – (ver. 1.42+)
  • Disable Airplane Mode – (ver. 1.42+)
  • Disable Android Beam – (ver. 1.42+)
  • Disable Audio Record – (ver. 1.42+)
  • Disable Bluetooth – (ver. 1.42+)
  • Disable Clipboard Share – (ver. 1.42+)
  • Disable Developer Mode – (ver. 1.42+)
  • Disable Google Account Sync – (ver. 1.42+)
  • Disable Google Crash Report – (ver. 1.42+)
  • Disable Power Off – (ver. 1.42+)
  • Disable Power Saving Mode – (ver. 1.42+)
  • Disable SD Card Write – (ver. 1.42+)
  • Disable Settings Changes – (ver. 1.42+)
  • Disable Video Records – (ver. 1.42+)
  • Disable VPN – (ver. 1.42+)
  • Disable Wifi – (ver. 1.42+)
  • Disable Wifi Direct – (ver. 1.42+)
  • Disable non-Google-Play Apps – (ver. 1.42+)
  • Disable Google Backup – (ver. 1.42+)
  • Disable Mobile Data – (ver. 1.42+)
  • Disable Data Roaming – (ver. 1.55+)
  • Disable Clipboard – (ver. 1.42+)
  • Disable Headphones – (ver. 1.42+)
  • Disable Microphone – (ver. 1.42+)
  • Disable USB Debugging – (ver. 1.42+)
  • Disable Bluetooth Tethering – (ver. 1.42+)
  • Disable USB Tethering – (ver. 1.42+)
  • Disable Wifi Tethering – (ver. 1.42+)
  • Disable Multiple Users – Disable multiple user support, users can’t create new user or login as guest
  • Disable Air Command Mode – (ver. 1.32+)
  • Disable Air View Mode – (ver. 1.32+)
  • Disable Edge Screen – (ver. 1.32+)
  • Disable Multiple Window Mode – (ver. 1.32+)
  • Disable Task Manager – (ver. 1.32+)
  • Force Auto Start – Force device start on power on (for Qualcomm & LSI chipsets ONLY, ver. 1.48+)
  • APN Config – Add custom APN configurations, one per line (ver. 1.48+)
Other Settings
  • Daily Usage Statistics (PLUS) – Gather locally on this device usage stats on daily base, available only for you in Remote Admin interface. This feature is broken with some devices, where we can’t reliably count the screen touches.
  • Enable Environment Sensors (PLUS, ver. 1.40+) – enable reading the available environment sensors of the device. The sensor configs and values can be gathered using JS API or REST API.
  • Barcode Scanner Integration (PLUS, ver. 1.40+) – select barcode scanner app, listen for input, open URL, trigger JS API, insert code into website etc. – check this FAQ
    • Barcode Scan App – pick the app or specify intent URL to the scanner app, keep empty to use the embedded QR scanner (using the back camera)
    • Listen for Keyboard Input – listen for keystrokes sent by hardware barcode scanner (until the Enter key). Use this option if you scanner is simulating keyboard input when scanning QR codes. This option doesn’t work reliably with some scanner apps.
    • Barcode Scan Broadcast Intent Action – broadcast intent action from scanner app to listen for, empty for none. Use this and the next option when your scanner is sending a broadcast intent when a QR code is read. In devices using Datawedge app this can be something user defined or something  like com.datalogic.decodewedge.decode_action
    • Barcode Scan Broadcast String Extra – broadcast intent string extra from scanner to look for the scanned code in. In devices using Datawedge this can be something like com.symbol.datawedge.data_string or com.datalogic.decode.intentwedge.barcode_string
    • Barcode Scan Target URL – URL to load on QR scan read, use $code placeholder, keep empty to not open any URL
    • Insert Barcode Into Website – Try to insert the received barcode into the first input field on the current page (identified by input[type=”text”] selector).
    • Submit Form after Inserting the Barcode – try to submit the web form of the first input field.
  • MQTT Integration (PLUS) – send device info and events to MQTT broker, look here for docs. Starting FKB 1.50 MQTT support is only available with Android 7+ devices.
    • Enable MQTT
    • MQTT Broker URL – specify your MQTT broker URL like  tcp://farmer.cloudmqtt.com:18075 or ssl://farmer.cloudmqtt.com:28075
    • MQTT Broker Username
    • MQTT Broker Password
    • MQTT Client ID – client ID for MQTT broker connection (optional), a random one will be used if empty, can use variables like $deviceId
    • MQTT Device Info Topic – customize device info topic name, can use placeholders like $deviceId or $mac, default: $appId/deviceInfo/$deviceId (ver. 1.41+)
    • MQTT Event Topic – customize event topic name, can use placeholders like $event, $deviceId or $mac, default: $appId/event/$event/$deviceId (ver. 1.41+)
  • Restart Fully After Crash (PLUS) – try to restart the Fully Kiosk app after any crash, check this FAQ
  • Restart Fully After Update (PLUS) – try to restart the Fully Kiosk app after update of Fully or Android System Webview or Google Chrome, requires Kiosk Mode to be enabled
  • Run as Priority App – Try prevent Android System from killing Fully even when resources are low and try to restart when killed. This option is always enabled in Android 8+
  • Consider Device in Use while Keyboard Visible – don’t run features like screensaver, screen off, reload on idle when keyboard is open. With this option you can avoid starting on idle features while the soft keyboard is open.
  • Consider Device is Use while Audio Playing – don’t run features like screensaver, screen off, reload on idle when music/video is playing (ver. 1.43+)
  • Consider Device in Use while Using Another App – don’t run features like screensaver, screen off, reload on idle when another app is in foreground or screen is off. For using screensaver with other apps check this FAQ.
  • Touching Other Apps Restarts Idle Timer – don’t run the idle features like screensaver, screen off time, reload on idle when user keeps touching the screen even if another app or virtual keyboard is in foreground
  • Regain Focus Timer (PLUS) – Bring Fully to foreground after some idle time with no interactions, set 0 for disabled
  • Go To Background Timer (PLUS)  – bring Fully Kiosk to the background after some idle time (set it in seconds), set 0 for disabled
  • Custom Text Variable – it’s value can be used as $customVariable in all URLs on configuration (ver. 1.53+)
  • Custom Locale (PLUS) – Language tag (IETF BCP 47) like en-US or de-CH to force another locale in Fully app, system default if empty. Also affects the locales/languages in the Webview. Need to re-open the tabs in order to apply to Webview (ver. 1.53+)
  • Enable Version Info – show update summaries on startup
  • Show Menu Hint on Start – show demo and hints when Fully starts. Disabling this option will also remove outdated Webview warnings.
  • Dark Mode – Select the way of dark mode handling in the app. This option only has effect if supported by the Android OS. An app restart is required to apply the change of this option.
  • Video Player Engine – select the engine used to play fullscreen videos. App restart is required to apply (EXPERIMENTAL). You can choose Android Media Player (default) or Media3 Exoplayer engine. Check this FAQ (ver. 1.52+)
  • Render in Cutout Area – enable showing content in the notch area (ver. 1.43+)
  • Confirm Exit – show confirmation box on exit
  • Export Settings – write all settings to fully-settings.json
  • Import Settings – pick a JSON settings file and read all settings from
  • Reset Settings – reset all settings to defaults (ver. 1.43+)
  • Enable Settings Auto-Import – auto-import settings from fully-auto-settings.json and fully-once-settings.json at app start – use for fast deployment
  • Get All Runtime Permissions – request all missing runtime permissions regardless of the current need
  • Device ID – show device ID, tap to copy to clipboard and to fully-deviceID*.txt file for offline licensing
  • Volume License Key – for easy volume licensing enter your Volume License Key here. You can get it if you order for 10+ devices. For single licenses please use Get a PLUS License  in the app menu. When removing this key, your device will be unregistered from the volume license. Volume Licensing require the Internet connection when device is registered and unregistered. Offline licensing is also available.
  • Version Info – show last update info now
  • Device Info – show device info summary, please sent us a copy when reporting a bug

All settings can be also set from the Remote Admin or Fully Cloud EMM (except some like Kiosk Mode on/off) or via JavaScript and REST interfaces of Fully Kiosk. You can export/import the settings to/from a JSON file in the app (look in Other Settings) or in Remote Admin. You can push configuration or import JSON settings file to many device at once from Fully Cloud. You can also auto-import settings from file on the app start, look at Deployment chapter for details.

When updating installation from APK to Google Play or the other way the old app may need to be un-installed first. Please use settings export/import in order to keep the configuration.

Starting Fully Kiosk Browser 1.43 we encrypt PINs and passwords when exporting settings into a JSON file. Importing this JSON file in an older version of the app won’t work. If you really need to apply this settings file to an older app version please import the JSON file as a configuration in Fully Cloud first and then apply the configuration from Fully Cloud to the devices.


This menu feature creates a link to the currently open web page on the Android Home screen. So you can set a favorite/bookmark to any web page including the universal launcher. The title of web page is taken from the page title. Starting FKB 1.51 you can edit the title. Fully Kiosk tries to find the best available favicon to use as link icon for the current URL. You can put several links to various websites on the Home screen. Clicking such link opens Fully Kiosk with the web URL stored in the link.


Using Universal Launcher in Fully Kiosk you can select apps, websites and file links to add to the launcher page. Enable Show Launcher on Start option in order to show the launcher page whenever the Start URL is required. Otherwise you can show the launcher by calling the fully://launcher URL. 

You can seamlessly mix all types of shortcuts on the Universal Launcher. The apps started by the launcher will be whitelisted in Kiosk Mode automatically. For websites please use the URL Whitelist/Blacklist options if you need some filtering.

You can customize the icon and name for each shortcut as well as the zoom factor, the text/background color, or set the background image. If you need  advanced layout customizing please use the Inject HTML Code option.


When the Kiosk Mode is enabled the Fully Kiosk app will set up an Android Kiosk Mode with kiosk gesture and PIN protection. Usually you also want to disable the home button, the access to Android settings and other apps. For this purpose Fully Kiosk will ask you to set it as the default Home App (Launcher). Then by pressing the Home button the user remains locked in Fully Kiosk and won’t get to the default Android launcher.

You can easily turn the Kiosk Mode on or off in the Fully Kiosk settings. Then leave the settings and follow instructions in order to activate or deactivate the Kiosk Mode. Before the first start in Kiosk Mode some additional permissions are requested and should be granted.

Note that user input is required on the device to enable/disable the Kiosk Mode. For this reason changing the Kiosk Mode from Remote Admin or by remote import of a settings file is intentionally disabled. You  can however enable the Kiosk Mode by auto-importing the settings file as described in our deployment guide. Enabling the Kiosk Mode without any user interaction is only possible by device provisioning. On provisioned devices you can even switch the Kiosk Mode on/off by Remote Admin (ver. 1.53+).

The system bars, the camera, the power button and the volume buttons can also be blocked in Kiosk Mode. However a very long press on the power button will still cause the most devices to switch off. In Android 8+ the status bar pull-down can’t be locked but Fully Kiosk will try to close the status bar immediately and it shouldn’t be usable. We recommend Device Provisioning for Android 8+ devices for better protection.

Android 12+ has some limitations that open gaps in the Kiosk Mode protection without device provisioning or other means. Read this FAQ for solutions.

Some devices or Android versions may fail with establishing the kiosk mode. We recommend all users who need to use the Android Kiosk Mode to test it thoroughly including rebooting device in Kiosk mode, entering PIN and switching Kiosk Mode completely off before deploying to production. If something goes wrong check this FAQ how to exit from Kiosk Mode.

If you need the users to access some parts of system settings you can define a special Wifi/Settings PIN and the users will get to Wifi or other settings when you enter this PIN. The restrictions for other apps apply while the Wifi or other Android settings are in foreground. On some devices after opening Wifi Settings users can change to other Android settings and escape from Kiosk Mode. As workaround you can try using the experimental Select Wifi Network option instead of opening Android Wifi Settings. Starting ver. 1.38  you can also block the main settings activity by providing a component name like com.android.settings/.Settings in the App Blacklist option.

Fully Kiosk can also lockdown other apps in Kiosk Mode. Read this FAQ for details and restrictions. You can even lockdown the device to a single app using the Single App Mode or by using our Fully Single App Kiosk app. Note that exiting from this mode REQUIRES 7 FAST TAPS!

If you make device provisioning (recommended!) you can also use the Lock Task Mode in Fully Kiosk for even better kiosk mode experience where home and recent app buttons are completely disabled.


The visual motion detection uses the front camera of the device. This feature is experimental. Some devices are known for their cameras do not start or stop after some time or become too hot when running. Motion detection will cause a high battery consumtion as the cam must be running permanently. Visual motion detection is not possible with Android Go devices running Android 10+.

The detection works pretty good with the Detector Sensitivity setting at 90-95 if there is enough light. With the Show Preview Cam option you will get a small cam preview in the lower right corner, so you can test the cam coverage.

When switching the visual motion detection for the first time additional runtime permissions will be required in Android 6+. Keep calm and enable everything.

The acoustic motion detection uses the microphone of the device and can work even in complete darkness very efficiently. Try around and set the appropriate sensitivity.

When motion is detected the screen can switched on. You can specify on Device Management section with Screen Off Timer setting in seconds how fast the screen has to be off again. Device Admin permission must be enabled for Fully in order to turn screen off. (This has nothing to do with Android root privileges. Root access is not required for Fully unless you want to use the Root Features.) Before the Fully app can be uninstalled, device admin permission must be disabled.

When motion is detected the screensaver can be stopped. Check the Screensaver Settings in Fully Kiosk to enable the screensaver.


You can manage your Fully Kiosk app remotely on devices in your local network or worldwide using VPN. If you have a PLUS license for your device this service is FREE of any charges.

Enable Remote Admin and specify a password in Fully Settings and connect in any web browser to http://ip-address-of-device:2323 You can make this connection HTTPS if you put a SSL certificate onto device (ver. 1.27+).

How to generate and put a self signed SSL certificate?

You need OpenSSL 1.1.1 and some Linux knowledge to create a SSL certificate for the device. First create a root certificate (for signing other CAs) using a script like this:

mkdir CA
openssl genrsa -aes256 -out CA/rootCA.key 4096
openssl req -x509 -new -nodes -key CA/rootCA.key -sha256 -days 3650 -out CA/rootCA.crt

Import the rootCA.crt as Trusted Root Authority in your web browser.

Now create a domain certificate fully-remote-admin-ca.p12 with password “fully” for each device using a script like this. Each device must be addressed in your local network by a hostname like device4711.network.my, not by the IP address.


if [ -z "$1" ]
echo "Please supply a domain to create a certificate for";
echo "Usage:"
echo "$0 device4711.network.my"

openssl req -new -nodes -keyout domain.key -out domain.csr -days 3650 -subj "/C=DE/L=Some/O=Acme, Inc./CN=$1"
openssl x509 -req -days 3650 -sha256 -in domain.csr -CA CA/rootCA.crt -CAkey CA/rootCA.key -CAcreateserial -out domain.crt -extensions v3_ca -extfile <(
cat <<-EOF
[ v3_ca ]
subjectAltName = DNS:$1

# NB: When using OpenSSL3 you have to add -legacy option to openssl pkcs12 commands openssl pkcs12 -export -out fully-remote-admin-ca.p12 -inkey domain.key -in domain.crt -passout pass:fully echo Generated self signed CA for $1 in fully-remote-admin-ca.p12 openssl pkcs12 -in fully-remote-admin-ca.p12 -nodes -passin pass:"fully" | openssl x509 -noout -text

Now copy fully-remote-admin-ca.p12 file onto device into /sdcard folder and restart Fully Kiosk. Remote Admin will now be available at the location like https://device4711.network.my:2323

This setup works at least with current Google Chrome on Windows 10 without any warnings. Using other clients may need a slightly different SSL setup.

Note: With Fully Cloud EMM you can connect to Remote Admin from everywhere on the Internet. But this is not included in your Fully PLUS License.

These features are available on the Remote Admin web interface:

  • Show current device and Fully Kiosk state information
  • View/edit all 300+ Fully Kiosk settings
  • List, upload, download, delete available settings files
  • Export/import settings to/from a settings file – Enable Kiosk Mode, Enable Remote Admin, Remote Admin from Fully Cloud and Remote Admin Password will not be changed when importing a settings file.
  • Export/import settings in JSON file – editable text format
  • Load Start URL or another URL
  • Show screenshot from device (does not include video content or other apps)
  • Show camshot from device (requires Motion Detection)
  • Detect current app in foreground, bring Fully to Foreground
  • Close Settings, Screensaver and other special views
  • Turn screen on/off
  • Show device geolocation
  • Show and CSV download of usage stats
  • Lock device to maintenance mode
  • Show a message in an overlay (ver. 1.34+)
  • Show Web Console (ver. 1.54+)
  • Show Fully Kiosk Log and Android Logcat for Fully Kiosk (ver. 1.41+)
  • Show and uninstall apps (ver. 1.43+). Installing and uninstalling APK files is not available if you installed Fully Kiosk from Google Play.
  • Load and uncompress contents from ZIP file to device storage – this can be used for the local content management – check this FAQ
  • Load and install an APK file – user input is requires on the device in many cases – check this FAQ. Installing and uninstalling APK files is not available if you installed Fully Kiosk from Google Play.


With Fully Cloud EMM you can organize, monitor and remote configure your Fully Kiosk devices from everywhere. You can also make fast Device Provisioning and manage apps with Enterprises. So you can setup and maintain your Fully Managed Devices in a smart and easy way.

Fully Kiosk does not change anything in your network, no port forwarding or VPN is needed, even if your devices are in a local network behind NAT. You have to enable Remote Admin from Fully Cloud option and set the Remote Admin Password in the Fully Kiosk settings.  Check the Fully Cloud HowTos for more info.

Launch Fully Cloud

Fully Cloud EMM Features

Features Feature set
Secure login with two factor authentication BASIC
Add devices to your account by Device ID or by Volume License Key BASIC
View current device information BASIC
View device locations on Google Map BASIC
Create groups and arrange devices in groups BASIC
Rename device to nice aliases BASIC
Create configurations and make fast device provisioning (different methods supported) BASIC
Create sub-accounts, grant full admin access or restricted access (device groups  based) to sub-accounts BASIC
Create Google Play Managed Enterprises and silently manage apps, managed configurations and app permissions on devices (required Google Account and Google Play connection) EARLY ADOPTER
Use all features from device’ Remote Admin from everywhere ADVANCED
Remote push a new configuration to device ADVANCED
Device monitoring: get an Email or Pushbullet alert (or request your URL) when the device gets disconnected from power supply or from the Internet, or if your device’ battery is low, or device is moving (anti-theft alert) ADVANCED
Send action commands to device for maintenance lock, screen on/off, restart, settings import, device lock/wipe/reboot, install APK file, load and unzip a ZIP file etc. ADVANCED
Mass device admin: Make actions on all selected devices at once, queue actions for offline devices until they go online ADVANCED
Use Fully Cloud API to get device info and remote control Fully Kiosk device from your software (ask us for details) ADVANCED

Fully Cloud EMM Conditions

1 Trial Month FREE 1 Trial Month FREE 1 Trial Month FREE
After Trial Month:
Fully PLUS License required Fully PLUS License required Fully PLUS License required
No other fees No other fees
for devices added
until January 2021
otherwise Fully Cloud Subscription required
Fully Cloud

The trial month starts for each device by adding this device to Fully Cloud. After the trial period a Fully Cloud Subscription is required for using Advanced Features. The subscription is max. 1.18 €/month per device incl. annual payment 15% discount, more discount for each additional device on the same subscription. Make a free account and use the fee calculator in Fully Cloud on the Subscriptions menu. For example, if you make a subscription with 100 devices and pay annually it’s only 0.95 €/month per device.

There are two ways to pay the subscription fee:

1. PayPal: The subscription fee is paid by auto-recurring PayPal subscription with 3 or 12 months period. You can cancel your cloud subscription anytime in your PayPal account. The subscription will remain active all the time paid and no fees will be refunded. The number of the devices on the subscription and the amount can’t be changed once the subscription has started. You can however add another subscription anytime.

2. Bank Transfer: If you have 20+ devices you can pay yearly by bank transfer to our German bank account or give us a written purchase order (subject of approval). We require all international bank transfers to us to be made with the OUR instruction (all fees are paid by you). Unlike the PayPal subscription you can topup this subscription anytime by 5+ devices and you will always get the best price for the whole amount of devices. Cancellation and reduction is possible only to the end of the paid year.

Consider adding some spare devices as every additional device on the subscription makes the price per device cheaper. There is however no refund for unused spare devices or unused trial time. Please test everything with your devices prior to starting a subscription. Fully Cloud Subscription is only available for commercial users (no consumer contracts).

In order to maintain security of our cloud systems we stopped supporting Android 4.4 devices by the End of 2021. Starting 2022 Android 4.4 devices are not able to communicate with Fully Cloud.


If you have Remote Admin enabled you can use its features as a simple REST API interface in order to control the device from your local network. The base URL address is always http://ip-address:2323. You can make this connection HTTPS as described in the Remote Admin section.

You have to specify the Remote Admin Password on the URL. Don’t forget to URLencode all query string parameters. You can add type=json to the query string in order to get a short JSON response.

Get Device Info
// Get Device Info JSON
Web Browsing
// Load URL

// Manage Tabs
/?cmd=refreshTab&password=[pass] (ver. 1.45+)

// Remove Web Items
/?cmd=clearCookies&password=[pass] (ver. 1.28+)
/?cmd=resetWebview&password=[pass] (ver. 1.55.3+)
Screen on/off, Screensaver and Daydream
// Screen on/off

// Simulate Motion

// Fully Screensaver and Android Screen Saver (Daydream)
Kiosk and App Management
// Unlock/lock kiosk mode

// Start other apps and bring Fully app to foreground/background

// Restart and exit Fully Kiosk
/?cmd=killMyProcess&password=[pass]  // Kill my app hard (ver. 1.55+) 

// Return to main view if any special view (PDF, Settings, Menu) is open

// Download and launch APK file, user input can be required for install
// If app already installed in this version, APK install will be started only if forceInstall=true
// These features are not available if you installed Fully Kiosk from Google Play

// Get current APK installation status (JSON)

// Kill background processes for package (Android 13 and older)

// Lock/unlock device for maintenance

// Show message in an overlay

// Rooted devices only
// Rooted and provisioned devices only
Get Stats, Screenshot and Camshot
// Load full usage stats CSV file

// Get screenshot image (PNG)

// Get camshot image (requires Motion Detection)
Use TTS and Multimedia
// Text to speech
/?cmd=textToSpeech&text=[text]&locale=[locale]&engine=[engine]&password=[pass]&queue=[0|1] // ver. 1.38+
/?cmd=stopTextToSpeech // ver. 1.38+ 

// Play sounds/video and change audio volume
// Audio Streams: 0 – Voice Call, 1 – System, 2 –  Ring, 3 – Music, 4 – Alarm, 5 – Notification, 6 – Bluetooth, 8 – DTMF, 9  – TTS, 10 – Accessibility /?cmd=setAudioVolume&level=[0-100]&stream=[0-10]&password=[pass] /?cmd=playSound&url=[url]&loop=[true|false]&password=[pass]&stream=[0-10] /?cmd=stopSound&password=[pass] /?cmd=playVideo&password=[pass]&url=[url]&loop=[0|1]&showControls=[0|1]&exitOnTouch=[0|1]&exitOnCompletion=[0|1] /?cmd=stopVideo&password=[pass] // ver. 1.42+
Manage Settings
// Change any of 300+ Fully settings, look in Remote Admin for keys
// New values will be applied immediately

// Get current setting values

// Import settings file (dat/json) from /sdcard
File Management
// Download and upzip file from URL to /sdcard

// Download/delete local files
/?cmd=deleteFolder&foldername=[foldername]&password=[pass] // ver. 1.42+


The JavaScript interface allows the website integration with device and Fully features. You need a web developer or some JavaScript/HTML skills to use this API.

Don’t forget to enable Advanced Web Settings >> Enable JavaScript Interface option when using the JavaScript interface. Enable this option only if you trust all websites loaded (use URL Whitelist!). This option is potentially insecure as any website can read ALL your local files, change the device settings etc.

Following JavaScript functions are implemented in Fully Kiosk Browser (including beta versions).

Get device info
String fully.getCurrentLocale()
String fully.getIp4Address()
String fully.getIp6Address()
String fully.getHostname()
String fully.getHostname6()
String fully.getMacAddress()
String fully.getMacAddressForInterface(String interface)
String fully.getWifiSsid()
String fully.getWifiBssid() // ver. 1.44+ String fully.getWifiSignalLevel() // ver. 1.30+ String fully.getSerialNumber()
String fully.getSerialNumberDeviceOwner() String fully.getAndroidId() String fully.getDeviceId()
String fully.getDeviceName() String fully.getImei() String fully.getSimSerialNumber() float fully.getBatteryLevel() float fully.getScreenBrightness() int fully.getScreenOrientation() // ver. 1.40.2+ int fully.getDisplayWidth() int fully.getDisplayHeight() boolean fully.getScreenOn() boolean fully.isPlugged() boolean fully.isKeyboardVisible() boolean fully.isWifiEnabled()
boolean fully.isWifiConnected() // ver. 1.44+
boolean fully.isNetworkConnected() // ver. 1.44+ boolean fully.isBluetoothEnabled()
boolean fully.isScreenRotationLocked() // ver. 1.40.2+ String fully.getFullyVersion() int fully.getFullyVersionCode() String fully.getWebviewVersion() String fully.getAndroidVersion() int fully.getAndroidSdk() String fully.getDeviceModel() // Get storage info (ver. 1.33+) long fully.getInternalStorageTotalSpace() long fully.getInternalStorageFreeSpace() long fully.getExternalStorageTotalSpace() long fully.getExternalStorageFreeSpace() // Get environment sensor info (ver. 1.40+) String fully.getSensorInfo() float fully.getSensorValue(int type) String fully.getSensorValues(int type)

// Get data usage (ver. 1.44+, Android 6+)
long fully.getAllRxBytesMobile()
long fully.getAllTxBytesMobile()
long fully.getAllRxBytesWifi()
long fully.getAllTxBytesWifi()
Control device, show notification, send network data etc.
void fully.turnScreenOn()
void fully.turnScreenOff() 
void fully.turnScreenOff(boolean keepAlive) 
void fully.forceSleep()
void fully.showToast(String text) 
void fully.setScreenBrightness(float level)
void fully.enableWifi() // In Android 10+ only with provisioned devices
void fully.disableWifi() // In Android 10+ only with provisioned devices
void fully.enableBluetooth()
void fully.disableBluetooth()
void fully.showKeyboard()
void fully.hideKeyboard()
void fully.openWifiSettings()
void fully.openBluetoothSettings()
void fully.vibrate(int millis)
void fully.sendHexDataToTcpPort(String hexData, String host, int port)
void fully.showNotification(String title, String text, String url, boolean highPriority) // ver. 1.33+
void fully.log(int type, String tag, String message) // ver. 1.41+ // Access clipboard (ver. 1.40+)
// No access with Android 10+ if Fully is in background void fully.copyTextToClipboard(String text) String fully.getClipboardText() String fully.getClipboardHtmlText()

// Run root command (ver. 1.50+, rooted devices only)
void fully.runCommand(String command)
void fully.runSuCommand(String command)
Download and manage files
// Note that write access to external SD card is not supported
void fully.deleteFile(String path)   
void fully.deleteFolder(String path) // recursive!
void fully.emptyFolder(String path)  // recursive, ver. 1.30+
void fully.createFolder(String path) // ver. 1.42+
String fully.getFileList(String folder)  // get JSON array, ver. 1.31+
boolean fully.writeFile(String path, String content)
String fully.readFile(String path) // ver. 1.55+ void fully.downloadFile(String url, String dirName) void fully.unzipFile(String fileName) // ver. 1.40.2+ void fully.downloadAndUnzipFile(String url, String dirName) // ver. 1.36+ respond to download/unzip events
void fully.bind('onDownloadSuccess','todo("$url","$dir","$code","$fileLength","$lastModified","$mimetype");')
void fully.bind('onDownloadFailure','todo("$url","$dir","$code");') void fully.bind('onUnzipSuccess','todo("$url","$dir");') void fully.bind('onUnzipFailure','todo("$url","$dir","$message");')
Use TTS, multimedia and PDF
void fully.textToSpeech(String text)
void fully.textToSpeech(String text, String locale)
void fully.textToSpeech(String text, String locale, String engine)
void fully.textToSpeech(String text, String locale, String engine, boolean queue)  // ver. 1.38+
void fully.stopTextToSpeech()  // ver. 1.38+
void fully.initTts() // ver. 1.55, listen for ttsInitSuccess event for $info, containing available engines, voices and locales
void fully.playVideo(String url, boolean loop, boolean showControls, boolean exitOnTouch, boolean exitOnCompletion) void fully.stopVideo() // ver. 1.42+
// Audio Streams: 0 – Voice Call, 1 – System, 2 –  Ring, 3 – Music, 4 – Alarm, 5 – Notification, 6 – Bluetooth, 8 – DTMF, 9  – TTS, 10 – Accessibility
void fully.setAudioVolume(int level, int stream) // level: 0..100 void fully.playSound(String url, boolean loop) void fully.playSound(String url, boolean loop, int stream) void fully.stopSound() void fully.showPdf(String url) int fully.getAudioVolume(int stream) boolean fully.isWiredHeadsetOn() // ver. 1.43+ boolean fully.isMusicActive() // ver. 1.43+
Control Fully and Browsing
void fully.loadStartUrl()
void fully.setActionBarTitle(String text)
void fully.startScreensaver()
void fully.stopScreensaver()
void fully.startDaydream()
void fully.stopDaydream()
void fully.addToHomeScreen()
void fully.print()  // window.print() doesn't work
void fully.print2Pdf(String filename)  // 1.50+, print A4 paper w/o prompt
void fully.exit() void fully.restartApp() String fully.getScreenshotPngBase64() String fully.loadStatsCSV() void fully.clearCache() void fully.clearFormData() void fully.clearHistory() void fully.clearCookies() void fully.clearCookiesForUrl(String url) // ver. 1.43.5+ void fully.clearWebstorage()
void fully.resetWebview // ver. 1.55.3+
void fully.focusNextTab() void fully.focusPrevTab() void fully.focusTabByIndex(int index) int fully.getCurrentTabIndex() void fully.shareUrl() // 1.35+ void fully.closeTabByIndex(int index) void fully.closeThisTab() String fully.getTabList() // returns a JSON array void fully.loadUrlInTabByIndex(int index, String url) void fully.loadUrlInNewTab(String url, boolean focus) int fully.getThisTabIndex() int fully.getCurrentTabIndex() void fully.focusThisTab() void fully.focusTabByIndex(int index)
Barcode Scanner
// Use $code placeholder in the resultUrl, see example below
void fully.scanQrCode(String prompt, String resultUrl)

// Ver. 1.31+, enhanced interface
// Use -1 for cameraId and timeout (in seconds) for defaults 
void fully.scanQrCode(String prompt, String resultUrl, int cameraId, int timeout, boolean beepEnabled, boolean showCancelButton)

// Ver. 1.43.4+, activate flashlight if needed
void fully.scanQrCode(String prompt, String resultUrl, int cameraId, int timeout, boolean beepEnabled, boolean showCancelButton, boolean useFlashlight) // Ver. 1.31+, respond to QR events void fully.bind('onQrScanSuccess','todo(\'$code\');') void fully.bind('onQrScanCancelled','todo();')
Bluetooth Interface
// Get a list of known devices incl. connection state and battery level (ver. 1.51+)
String fully.btGetDeviceListJson()

// Open a serial (SPP) bluetooth connection (GATT is not supported!) // These functions are async, listen to events below to get results void fully.btOpenByMac(String mac) void fully.btOpenByUuid(String uuid) void fully.btOpenByName(String name) // Get info about connected device and close connection boolean fully.btIsConnected() String fully.btGetDeviceInfoJson() void fully.btClose() // Send data boolean fully.btSendStringData(String stringData) boolean fully.btSendHexData(String hexData) boolean fully.btSendByteData(byte[] data) // Respond to events void fully.bind('onBtConnectSuccess','todo("$device");'); void fully.bind('onBtConnectFailure','todo();'); void fully.bind('onBtDataRead','todo("$data");'); // Data is buffered until LF symbol found
Read NFC Tags (ver. 1.45+)
bool fully.nfcScanStart();
bool fully.nfcScanStart(int flags, int debounceMs);
bool fully.nfcScanStop();
void fully.bind('onNdefDiscovered','todo("$serial", "$message", "$data");');
void fully.bind('onNfcTagDiscovered','todo("$serial", "$type", "$message", "$data");');
void fully.bind('onNfcTagRemoved','todo("$serial");'); // Android 7+
Respond to Events
// The second parameter is a String containing JavaScript code to perform
void fully.bind('screenOn','todo();') void fully.bind('screenOff','todo();') void fully.bind('showKeyboard','todo();') void fully.bind('hideKeyboard','todo();') void fully.bind('networkDisconnect','todo();') void fully.bind('networkReconnect','todo();') void fully.bind('internetDisconnect','todo();') void fully.bind('internetReconnect','todo();') void fully.bind('unplugged','todo();') void fully.bind('pluggedAC','todo();') void fully.bind('pluggedUSB','todo();') void fully.bind('pluggedWireless','todo();') void fully.bind('onScreensaverStart','todo();') void fully.bind('onScreensaverStop','todo();') void fully.bind('onDaydreamStart','todo();') // ver. 1.39+ void fully.bind('onDaydreamStop','todo();') // ver. 1.39+ void fully.bind('onBatteryLevelChanged','todo("$level");') void fully.bind('volumeUp','todo();') void fully.bind('volumeDown','todo();') void fully.bind('onMotion','todo();') // Max. one per second
void fully.bind('facesDetected','todo($number);') // 1.48+ void fully.bind('onDarkness','todo();') // Requires screen off on darkness void fully.bind('onMovement','todo();') void fully.bind('onIBeacon','todo("$id1","$id2","$id3",$distance);')
void fully.bind('broadcastReceived','todo("$action","$extras");'); // 1.40.2+
void fully.bind('onQrScanSuccess','todo("$code","$extras");');
void fully.bind('ttsInitSuccess','todo("$info");'); // ver. 1.55+
Manage Apps, Activities, Intents, Kiosk etc.
void fully.startApplication(String packageName)
void fully.startApplication(String packageName, String action, String url)  // Can put null to omit the parameter in ver. 1.33+
void fully.startIntent(String url)
void fully.broadcastIntent(String url)     // ver. 1.31+
boolean fully.isInForeground()
void fully.bringToForeground()
void fully.bringToForeground(long millis)   // Delay in ms
void fully.bringToBackground()              // ver. 1.31+
void fully.installApkFile(String url)       // ver. 1.36+, not in Google Play
void fully.enableMaintenanceMode()          // ver. 1.39+
void fully.disableMaintenanceMode()         // ver. 1.39+
void fully.setMessageOverlay(String text)   // ver. 1.39+
void fully.registerBroadcastReceiver(String action) // ver. 1.40.2+
void fully.unregisterBroadcastReceiver(String action) // ver. 1.40.2+
void fully.killBackgroundProcesses(String package) // Android 13 and older
void fully.lockKiosk()
void fully.unlockKiosk()
void fully.checkKioskPin()
boolean fully.isKioskLocked()
Motion Detection
void fully.startMotionDetection()
void fully.stopMotionDetection()
boolean fully.isMotionDetectionRunning()
String fully.getCamshotJpgBase64()
int fully.getFaceNumber() // 1.48+ void fully.triggerMotion() void fully.bind('onMotion','todo();') // Triggered max. once per second
Manage all Fully settings
String fully.getStartUrl()
void fully.setStartUrl(String url)

// Look in Remote Admin settings for the settings keys // Or export a JSON settings file and look there
String fully.getBooleanSetting(String key) String fully.getStringSetting(String key)
// Changes apply immediately void fully.setBooleanSetting(String key, boolean value) void fully.setStringSetting(String key, String value) void fully.importSettingsFile(String url) // ver. 1.36+
Manage System Settings (FKB 1.55.3+)
// Look here for keys and restrictions
// Changing system settings usually requires provisioning or special permissions
// https://developer.android.com/reference/android/provider/Settings

fully.getSettingsGlobalInt(String name, int default)
fully.getSettingsGlobalLong(String name, long default)
fully.getSettingsGlobalString(String name)
fully.putSettingsGlobalInt(String name, int value)
fully.putSettingsGlobalLong(String name, long value)
fully.putSettingsGlobalString(String name, String value)

fully.getSettingsSystemInt(String name, int def)
fully.getSettingsSystemLong(String name, long def)
fully.getSettingsSystemString(String name)
fully.putSettingsSystemInt(String name, int value)
fully.putSettingsSystemLong(String name, long value)
fully.putSettingsSystemString(String name, String value)

fully.getSettingsSecureInt(String name, int def)
fully.getSettingsSecureLong(String name, long def)
fully.getSettingsSecureString(String name)
fully.putSettingsSecureInt(String name, int value)
fully.putSettingsSecureLong(String name, long value)
fully.putSettingsSecureString(String name, String value)

Samples how to use the JavaScript interface:

How to use JavaScript Interface?
<!-- Make actions -->
<button type="button" onclick="fully.openWifiSettings();">Wifi</button>

<!-- Show device info -->
<button type="button" onclick="alert(fully.getMacAddress());">Mac address</button>

<!-- Play Text to Speech -->
<button type="button" onclick="fully.textToSpeech('How do you do?','en_GB');">Say hello</button>

<!-- Change Fully Kiosk settings -->
<button type="button" onclick="fully.setStringSetting('screenBrightness','255');">Full brightness</button>
<button type="button" onclick="fully.setBooleanSetting('motionDetection',true);">Enable MD</button>
<!-- Listen for events --> <script> function myMotion() { alert("Motion"); } fully.bind('onMotion','myMotion();'); </script> <!-- Listen for iBeacon --> <script> function onBeacon (id1,id2,id3,distance) {   alert("iBeacon found: "+id1+"/"+id2+"/"+id3+" in "+distance+" meter"); } fully.bind('onIBeacon','onBeacon("$id1","$id2","$id3",$distance);'); // You can also use $mac, $name, $type, $manufactorer as placeholders </script> <!-- Scan QR Code --> <button type="button" onclick="fully.scanQrCode('Prompt text','javascript:alert(\'$code\');');">Scan QR Code</button>
<!-- Identify Fully Kiosk Browser --> <script> if (typeof FullyKiosk !== "undefined") document.writeln("<h1>Fully Kiosk working</h1>"); </script> <!-- Print on Bluetooth Printer --> <script> fully.bind('onBtConnectSuccess','alert(\'BT connected: $device\'); fully.bind('onBtConnectFailure','alert(\'BT failed\');'); fully.btOpenByUuid('0000110a-0000-1000-8000-00805f9b34fb'); </script> <button type="button" onclick="alert(fully.btSendHexData('68656c6c6f0a'));">btSendHexData()</button> <button type="button" onclick="alert(fully.btSendStringData('Hello\n'));">btSendStringData()</button> <button type="button" onclick="alert(fully.btSendByteData(new Uint8Array([104, 101, 108, 108, 111, 10])));">btSendByteData()</button>

If you can’t change the website you can use the Inject JavaScript feature in order to put your scripts in other websites.


Fully Kiosk supports publishing device info and major device events to the MQTT broker. You can setup the broker URL (like tcp://farmer.cloudmqtt.com:18075 or ssl://farmer.cloudmqtt.com:28075) and credentials in Other Settings >> MQTT Integration. You can also specify the MQTT Client ID if you don’t like the random one.

The complete device info will be published every 60 seconds as fully/deviceInfo/[deviceId] topic (retaining, QOS=1).

Events will be published as fully/event/[eventId]/[deviceId] topic (non-retaining, QOS=1). Following events are implemented for now: screenOn, screenOff, pluggedAC, pluggedUSB, pluggedWireless, unplugged, networkReconnect, networkDisconnect, internetReconnect, internetDisconnect, powerOn, powerOff, showKeyboard, hideKeyboard, onMotion, onDarkness, onMovement, volumeUp, volumeDown, onQrScanCancelled, onBatteryLevelChanged, onScreensaverStart, onScreensaverStop, onDaydreamStart, onDaydreamStop, onItemPlay, onPlaylistPlay, facesDetected.

With Fully Kiosk Browser 1.41+ you can customize the MQTT topic names. Starting Fully Kiosk Browser 1.50 MQTT support will be only available with Android 7+ devices. The last version with support for Android 6 and older is FKB 1.49.1 (download APK).


With Fully Exam Kiosk you can lockdown the device to the exam website. Other websites, apps or device features can’t be used during the examination. You can use your school’s devices or let students bring their own Android devices (BYOD).


Fully Exam Kiosk app supports Android 5.0 to 14. The app also won’t run in Fire OS, Chrome OS, Android TV and on rooted devices as it’s impossible to provide a secure kiosk mode on those devices.

You have to get an FEK file or link from your teacher and open it in the app. On the first start please grant requested runtime permissions in order to lock the exam in the safe kiosk mode.

The kiosk mode will be stopped by:

  • Opening a configured Exam Quit URL – you should find a button at the end of the exam
  • Quit Button with PIN – for emergency kiosk unlock by the teacher
  • Device Reboot – this is an emergency exit as well.


Fully Exam Kiosk browser supports safe exams with all learning management systems (LMS) that support Safe Exam Browser (SEB) including Moodle. These LMS require using a safe browser and don’t allow opening the exam website in other web browsers even if the students know the URL. Although we are not affiliated with SEB and Fully Exam Kiosk doesn’t support many features of Safe Exam Browser, if you know how to use Safe Exam Browser you likely will be able to use our exam browser for exams with your Android devices. You can use Fully Exam Kiosk as replacement of Safe Exam Browser for Android.

You can also use Fully Exam Kiosk with any other exam website if you can keep your exam URL secret. Otherwise your students will just open that URL in another browser without any restrictions.

A teacher can configure an exam here and give a permalink (URL) or .fek file to the students. Students just open the .fek configuration link/file in the Fully Exam Kiosk app and make the exam in preconfigured secure kiosk mode. When asked the show on top and usage data access permissions must be granted in order to provide a safe kiosk mode.

Open Exam Configurator

Note that many browser features like tabs, popups, file uploads, cam and microphone access, opening other files and starting apps are intentionally disabled in the exam browser window. Tell us if you want to use some of those features.

Using Fully Exam Kiosk is completely free of any charges at least until end of 2025.

Are you missing any features? Your feedback is welcome!


Fully Video Kiosk is our separate app for playing videos and image slideshows on Android devices with full kiosk mode protection. With Fully Video Kiosk you can manage a playlist containing URLs to media files or websites as well as files and folders from the local  internal/external storage.

Fully Video Kiosk is available on Google Play and as APK file

Fully Video Kiosk can play:

  • All video streams/codecs supported by Android (these can slightly vary on different Android versions).
  • Starting FVK 1.14 there is also Media3 Exoplayer engine available with support for many DASH, HLS and RTSP streams (EXPERIMENTAL).
  • YouTube videos and playlists (requires latest WebView installed)
  • JPG/PNG/GIF images
  • Other Websites

Fully Video Kiosk contains all features included in Fully Kiosk Browser except NFC Tag reading, Single App Kiosk Mode and Universal Launcher.

Additional configuration settings in Fully Video Kiosk:

Playlist Settings
  • Select Items to Show – Manage playlist: Select media URL, files, folders, web sites or YouTube videos/playlists to show. You can specify to loop each playlist item, skip item on user interaction, play next after x seconds. For folders you can also specify the file play order. Folders will be played recursively including all subfolders.
  • Wallpaper URL – Website to show as wallpaper. You can use an URL like fully://color#000000 for a solid color page.
  • Fade In/Out Duration – set image/video fade in/out duration in milliseconds (default: 100 ms).
  • Image Scaling Type – how to resize the smaller/bigger pictures to the screen size (ver. 1.7+)
  • Loop Playlist – start playing from beginning when end of playlist reached
  • Show Throbber – show throbber while preparing image/video to play (can’t remove throbber for YouTube videos)
  • Show Play Controls – show auto-hiding play controls when playing videos (no controls for YouTube videos)
  • Show URL/Filename – show URL or filename when starting playing
  • Show Errors – show error on media play failure
  • Cache Images – enable caching of network images
  • Use Exoplayer for Videos – use Exoplayer lib to play videos instead of MediaPlayer lib, requires app restart (EXPERIMENTAL, 1.14+).
Playlist Auto Restart
  • Auto Restart on Idle – restart playlist after some seconds of user inactivity
  • Auto Restart on Screen On – restart playlist when the screen goes on
  • Auto Restart on Screensaver Stop – restart playlist when screensaver stops
  • Auto Restart on Network Reconnect – restart when Wifi/LAN/LTE reconnects
  • Auto Restart on Internet Reconnect – restart playlist when real internet connection reappears

There are additional JavaScript interface functions to control the player which can be used in the wallpaper or playlist sites:

void fully.playerStart()
void fully.playerStop()
void fully.playerPause()
void fully.playerResume()
void fully.playerNext()

// Respond to events (ver. 1.7+)
void fully.bind('onItemPlay','todo("$url");');
void fully.bind('onPlaylistPlay','todo();');

There are also corresponding REST interface features cmd=playerStart, cmd=playerStop, cmd=playerPause, cmd=playerResume and cmd=playerNext included. Starting ver. 1.7 in the Usage Stats there are counters for playlistPlays and itemPlays.

A Fully PLUS License is also valid for Fully Video Kiosk. You can obtain a Fully PLUS license for the device and use it with any Fully Kiosk app at your choice.

The default settings file is called fully-video-settings.json. You can use fully-video-auto-settings.json or fully-video-once-settings.json for auto import when deploying. You can add the Fully Video Kiosk device to Fully Cloud, organize and control it there too.

Known Restrictions:

  • In Kiosk Mode the home button and the recent app button shortly pauses the playback.
  • Remote Admin screenshot does not show video content.

Your feedback is welcome!


Fully Single App Kiosk is our separate app for locking down the device to one selected app. Everything else will be blocked. Fully Single App Kiosk is very easy to configure. Just select an app, set a Kiosk PIN, ready!

Remember to TAP VERY FAST 7 TIMES in order to see the PIN dialog. If you type very fast in another app this could also be detected as 7 fast taps. Unfortunately we can’t detect a more sophisticated gesture while another app is in foreground. Please use the Single App Exit by Remote Admin only option in this case.

Fully Single App Kiosk is available on Google Play and as APK file. For device provisioning with enterprises support and for deployment please use the single app mode in our Fully Kiosk Browser app.

A Fully PLUS License is also valid for Fully Single App Kiosk. You can obtain a Fully PLUS license for the device and use it with any Fully Kiosk app at your choice. You can add the Fully Single App Kiosk device to Fully Cloud, organize and control it there too. 

Known Restrictions:

  • On Android 8+ devices the Status Bar can’t be locked while device lock screen is displayed. Please disable screen lock in Android settings as workaround. You can use device provisioning or KNOX features for reliable status bar lock.
  • Remote Admin screenshot does not show other apps.

Your feedback is welcome!


The Fully PLUS License works with all Fully Kiosk apps (except Fully Exam Kiosk) and allows to use all Fully PLUS features (without watermark and spoilers) as well as the Basic Fully Cloud Features. For a one-time payment you’ll get a lifetime non-exclusive transferable usage license including all future updates for the Fully Kiosk apps and all future PLUS features. 

All PLUS features are FREE to try. Please test all needed Fully Kiosk features with your content and your devices before ordering a license. If something isn’t working please contact us before ordering anything. Buying a license won’t fix any bug.

Fully PLUS Single License

A Fully PLUS Single License is only 7.90 EUR per device plus VAT – one-time payment payable with PayPal for a lifetime license. (The price on Google Play can be slightly different.) There are no other fees/taxes on our invoice. The single Fully PLUS License can be comfy obtained directly in the Fully Kiosk app menu. Or, if you prefer using another device/browser,  you can use this button but double check the device ID when typing.

Get a PLUS License for Fully Kiosk

The single license is bound to your device ID and activated immediately when the payment is completed. There is no license key. Internet connection is required on your Android device. If you need you can move your single licence to another device later here:

Move a PLUS License to a new device

Fully PLUS Volume License

If you order a license for 10 or more devices you can obtain a Fully PLUS Volume License with special conditions. This offer is for commercial users only (no consumer contracts). You can pay by credit card (using Stripe.com), by PayPal or even by bank transfer. You will get one Volume License Key (like ABCDEF0815) which can be used for activating the license on all your devices. The key will be sent automatically to your email address once the payment is completed. You have to enter this key in Fully’s Other Settings in order to activate the license on this device (Internet connection required). Check our manual for the fast deployment process. Get the volume license quote and order here:

Get Fully PLUS Volume License

You can check your Fully PLUS Volume License status and list registered devices here. You can un-register the device from the Volume License by removing the volume key from Other Settings. Please don’t forget to un-register prior to uninstalling the app, resetting, repairing or disposing the devices. Note that enabling/disabling the Wifi can change the device ID under some conditions, avoid changing the Wifi status after license activation.

Starting FKB 1.51 the volume license key is saved encrypted in the app settings after license activation. If you need to import the JSON settings file into an older installation you have to replace the volumeLicenseKey by its not encrypted value.

Licensing for Offline Devices

Your devices must be able to connect to https://licensing.fully-kiosk.com for the single or volume license activation. Once activated the device may keep offline for indefinite time without loosing the license.

If your devices may not connect to Internet for some reasons at all you can use the Offline Licensing. Fully PLUS Volume License is required and it’s some more manual work.

  • Install the Fully Kiosk Browser app from the Deployment Edition APK
  • On the first app start (after granting media access permission) the Device ID will be written automatically to the file fully-deviceID*.txt in the main internal storage folder (internally referred as /sdcard). If the file is not written automatically go on each device to Fully’s Other Settings and tap on Device ID.
  • Collect the Device IDs from all your devices.
  • Use this form and get a license file fully-license-bunch.txt. You can include many devices in one license file. Note that the license can’t be moved to another device ID once the offline license has been issued. If the device goes broken or the device ID changes after device factory reset or if you loose that text file you will loose the license.
  • Put fully-license-bunch.txt back to each device – to the same folder where device ID files was generated.
  • On the next app start Fully Kiosk will read the license file and activate the PLUS license.

If you have access to the Remote Admin of cause you can  collect the Device IDs from Remote Admin interface and load the license file to the device by Remote Admin.

Announcement for Android 4.4

We stopped supporting Android 4.4 by the End of 2021. The Fully PLUS Licensing and Fully Cloud connectivity stopped for Android 4.4 devices by 31 December 2021. Please migrate to newer devices.


Device provisioning is the fastest way to setup devices with Fully Kiosk and to provide an even better kiosk protection. Fully Kiosk supports all available methods of Android device provisioning.  Device provisioning is free with your Fully PLUS License. Once configured you can setup new devices with almost no manual effort.

Note that the most provisioning methods require factory new or factory resetted devices. If Android setup was already started/done on the device it must be factory resetted. For Android 7+ devices we recommend using QR Code provisioning method. If you can’t make device reset you can still use the ADB (manual) method.

You can configure the device provisioning and get instructions here:

Try Device Provisioning

This configurator offers only few provisioning options. You can apply all app settings, use enterprises, add device to the cloud and more if you use provisioning profiles in your free Fully Cloud EMM account.

Provisioning Methods Overview

Provisioning Methods NFC DPC Identifier ADB (manual)
Restrictions for Target Devices Android 6+, NFC capable devices only Android 6+ Android 5+
New or Factory Resetted Device Required yes yes no
Connect to Wifi automatically yes no no
Manual Enter Provisioning Code no yes yes
Internet Connection Required no yes no
Install Fully App from
Custom URL APK
yes no yes
Provisioning Methods Zero Touch QR Code  
Restrictions for Target Devices Android 8+ Android 7+  
New or Factory Resetted Device Required yes yes  
Connect to Wifi automatically no Android 7-8: no
Android 9+: yes
Manual Enter Provisioning Code no no  
Internet Connection Required yes Android 7-8: yes
Android 9+: no
Install Fully App from
Custom URL APK
no yes  

With all provisioning methods you can optionally:

  • Add Device to Fully Cloud and Device Group automatically (Internet required)
  • Add Device to Google Play Managed Enterprise (Internet and Android 6+ required)
  • Import Configuration from Fully Cloud (Internet required) – Please create a Configuration in Fully Cloud first: You can import a Fully settings file (JSON) if you’ve already configured devices with Fully Kiosk or create a Configuration from the scratch.
  • Import Configuration from JSON file URL – You can put the settings file on the URL in your network if you don’t like to share it with Fully Cloud or if your devices don’t have any Internet access.

The provisioned device has a number of additional Device Owner Settings for a better kiosk mode protection available (like disable USB, ADB, status bar, screen capture, safe mode etc.).

With provisioned Android 6+ devices you can silently install/upgrade apps from APK file using the APK Files to install option in Device Owner Settings or the Install APK File button in Remote Admin. Installing APK files isn’t available if you install Fully Kiosk from Google Play.

The most but not all device types support device provisioning. Fire OS devices don’t support, for example. Ask your device vendor if you are not sure. Device provisioning for Android 12+ devices is supported starting Fully Kiosk Browser 1.44.3, Fully Single App Kiosk 1.8.1 and Fully Video Kiosk 1.8.1.

Please keep at least one device of each type as reference and for testing and attend to this FAQ about recommended settings for making your kiosk mode secure.

Ask us if you need any support with device provisioning for Fully Kiosk. If you can’t use device provisioning you can deploy Fully app as described here.


With Android Enterprise you can silently manage apps on your Android 6+ devices. This however requires your devices to be connected to the Internet, to have access and to use the Google services. You also have to accept the Google Managed Play agreement and data processing and security terms.

Create a new Enterprise in the Enterprise menu on Fully Cloud. You will be guided by Google to create an admin account. You do not need to have registered this email address with Google in advance, and Google Workspace accounts are not required. Any email addresses associated with your company domain are supported, including Microsoft Entra accounts. Then you can approve apps for your enterprise, configure apps to be auto-installed, set default permissions and managed configurations (if your app supports) in Fully Cloud EMM (look for Manage Apps button on the Enterprise entry). You can also manage apps and set the auto-update policy for each device individually, look for Manage Apps button on the device entry.

We recommend that all organizations add multiple owners to their Managed Google Play Account enterprises to ensure that they retain control of the enterprise at all times.

The only way to add device to the Enterprise is by making device provisioning. You can select the Enterprise when creating a provisioning profile in Fully Cloud. Note that only our Fully Kiosk Browser app supports Enterprises.

Our company is Android Enterprise Silver partner. We earned this badge by meeting business, product and performance requirements. Silver partners are validated by Android Enterprise

Android Enterprise Silver Partner


If you can’t use the device provisioning for some reason you can easily deploy Fully to many devices as follows:

  • Install the Fully Kiosk app on one device (from Google Play or APK file)
  • Configure and test the Fully Kiosk app. If you have different devices or different Android versions please test anything on each device type/version. Check this FAQ for recommended settings for unattended devices.
  • If you have a Fully PLUS Volume License Key enter it in Other Settings
  • If you want to automatically add devices to Fully Cloud EMM you can add your account credentials to Remote Admin >> Add Device to Cloud and activate the Save Credentials option
  • Export settings to fully-settings.json (use Other Settings >> Export Settings)
  • Take the fully-settings.json file, rename it to fully-once-settings.json (for Fully Single App Kiosk fully-single-app-once-settings.json, for Fully Video Kiosk fully-video-once-settings.json) and place it into the main folder of the internal storage on all other devices you want to install
  • Now install Fully on each other device from APK file. The fastest way is connecting the device via USB, copy APK file and settings JSON file to device internal storage and install from APK file.
  • Start Fully Kiosk app once on each device
  • Fully Kiosk will automatically import settings from fully-once-settings.json, remove this file and ask you for needed runtime permissions
  • If you had a Volume License Key included in the settings file Fully Kiosk will take the key and register a license for each device automatically (Internet connection is required)
  • If you had saved you Fully Cloud credentials in the settings Fully will add each new device to Fully Cloud automatically (Internet connection is required)

Please make sure to take the special APK file Deployment Edition. This edition brings a Read Storage Permission dialog on the first app start. This is needed to auto-import the settings.

Please keep at least one device of each type as reference and for testing and attend to this FAQ about recommended settings for making your kiosk mode secure.


Which kiosk app is to use for what?

With 300+ options Fully Kiosk apps can be configured for many different use cases. Don’t be afraid. Usually you have to change only very few options. Just to give you some ideas for the most common scenarios:

  1. Let users only to browse a set of allowed websites
    Use Fully Kiosk Browser app. Set the Start URL, configure the URL Whitelist for the allowed websites, configure Web Auto Reload setting to return to the Start URL on some condition. Enable the Kiosk Mode and enjoy.
  2. Play some images, videos or websites in a loop (without user interaction)
    Use Fully Video Kiosk app. Configure the Playlist, enable the Kiosk Mode and voila.
  3. Allow using some set of apps
    Use Fully Kiosk Browser app. Configure the Universal Launcher with the allowed apps and enable the Kiosk Mode. You can also add websites or file bookmarks.
  4. Lock device and auto-start one specific app
    Use Fully Single App Kiosk app. Very easy to configure: select the app, set the PIN and start the Kiosk Mode. Add other allowed apps to the App Whitelist option if needed.

Please also check the recommended settings for unattended devices for the best kiosk mode protection.

My website doesn't look/work correct/fast in Fully Kiosk Browser?

Fully Kiosk uses Android Webview (Chromium based) provided by Android on your device for any website loading, caching, rendering and scripting (incl. embedded videos etc.). Fully Kiosk can’t select another web engine or change a lot about how Android Webview is handling websites. If something is wrong with your website please follow these topics:

1. Check and update the available Android Webview on your device.

You can check the available Webview version and provider app in Fully Settings >> Other Settings >> Device Info. The websites could run into some issues if the installed Webview is not up to date.  In this case you should install/update the Webview provider app from Google Play or by appropriate APK from APKmirror.com.  Some devices can only update the Webview by system update, check this FAQ and this FAQ.

With Android 4.4 the Webview (ver. 30 or 33) is integrated in Android OS. It’s more or less buggy and not updatable. There are different serious issues known resulting of these outdated web engines. Yes, other major browsers like Chrome, Firefox or Opera can bring their own web engines and show better results with those old devices. But it’s impossible to use their engines by other apps, so you should look for a newer Android version for your device or a newer device. Fully Kiosk completely stopped supporting Android 4.4 by the End of 2021.

With Android 5+ the Webview is provided by one of these apps that can be installed and updated separately:

On some devices you can choose the Webview provider app in Android Developer Settings (also available in Fully Settings >> Advanced Web Settings >> Select Webview Implementation). In some cases you have to uninstall/disable one provider app in order to use another one as Webview provider. There are however no differences known between Webviews provided by those two apps (if on the same version). Read this for more technical details.

Note that the current Android Webview is only available for Android 7+ devices. For Android 5 the latest available Webview version is 95. For Android 6 the latest available Webview is 106. If you experience any issues with outdated Webview upgrading the Android version or replacing the device is the only way to go.

Note that Webview can only use the trusted root TLS certificates installed in your Android device that can cause issues with some websites in Android older that 7.1.1. Check this FAQ.

2. Check your website is working properly in Google Chrome on the same device.

If your website isn’t working properly with Google Chrome on the same Android device Fully Kiosk probably won’t make it better, even if the latest Webview is installed. Please optimize your HTML/CSS/JS code for Chrome on Android. Do not compare to other browsers (Firefox, Dolphin, Opera etc.) or other platforms (Windows, Mac). Those web engines may work significantly different in some details. A few Google Chrome APIs are not available in Android Webview, check known issues.

3. Check your website with Remote Webview Debugging.

If your website is running ok in Google Chrome but not in Fully Kiosk Browser web developers can enable Webview Content Debugging in Advanced Web Settings and use the remote debugging with Chrome Developer Tools in order to see what happens behind the scenes and where the different behavior comes from.

If some colors are showing wrong switch OFF the Dark Mode in app settings.

Please also check the Web Content Settings in Fully Kiosk. If something (like popups, form data saving, geolocation, alert boxes etc.) isn’t working it can be caused by a restriction controlled by Fully. In very rare cases you can improve the rendering by selecting another Graphics Acceleration mode in Advanced Web Settings. Please also check the known issues.

My website is showing in the wrong resolution?

Fully Kiosk Browser doesn’t select or force any screen resolution. Note that devicePixelRatio bigger than 1 can be set for your high resolution screen by the Android Webview. This affects the CSS pixel size reported by window.screen.width and window.screen.height. We are unable to change this by our app. Check you have the latest Android Webview available on your device and let your web developers learn in this training and this answer how to support high resolution screens (FullHD, 4K) properly.

My website is suddenly showing SSL errors?

Starting some point in 2024 your website can fail loading in Fully Kiosk on Android versions older than 7.1.1. This is because of the missing ISRG Root X1 root certificate used by many websites certificates signed by Let’s Encrypt. Android Webview can only use the trusted root certificates installed in your Android device. You can ask your website provider to use a certificate supported by the older Android versions. Or you can download and install ISRG Root X1 and Let’s Encrypt R3 certificates manually on your device in Android Settings > Security > Credential Storage > Install from SD Card (or similar). In Fully Kiosk Browser 1.55.3+ we allowed the ISRG Root X1 and ISRG Root X2 certificates to mitigate this issue.

Why Fully Kiosk still reports the outdated Webview?

If you’ve installed the latest Android Webview and Google Chrome but Fully Kiosk still shows an outdated Webview version in the Device Info box (in Other Settings) your Android device likely has an AOSP ROM where you can’t update the Webview. The integrated Webview has another app ID (com.android.webview) than one provided by Google Play (com.google.android.webview). Read this for more technical details. So the new Webview will be installed side by side but the old integrated Webview will still be used by Android system (and it’s app ID is hardcoded in Android OS). On rooted devices you can use this Magisk module to select another Webview. There has also been a discussion at Chromium with backgrounds why is it done like this. Sorry, this is something where Fully Kiosk can’t change anything. Please ask you device vendor for a Webview update.

How can I use the Fully Kiosk with Android 12+?

Devices running Android 12+ will have some kiosk mode protection gaps if you don’t follow the recommendations in this FAQ. This is something we can’t completely solve by an app upgrade due to new restrictions built-in in Android 12+:

  • The system status bar (on the top) can always be pulled down and the buttons on the notification area can be used. The user however still can’t open Android Settings or other apps if Advanced Kiosk Protection enabled.
  • The Power Dialog can be opened by a long power button press. The user can power off or restart the device or make an emergency call.
  • The Recent Task view can be opened and the buttons there (Screenshot etc.) can be used on some devices. The user still can’t change to another app.

In order to maintain the secure kiosk mode with Android 12+ you have three options:

  1. Use the device provisioning, enable Disable Status Bar option in Device Owner Settings, enable and configure the Lock Task Mode in Device Owner settings.
  2. On the most Samsung devices you can use the options Disable Status Bar, Hide Navigation Bar and Disable Power Button in KNOX Settings.
  3. After installing the kiosk app from APK on our website (not from Google Play!) look in Android Settings for Accessibility and enable Fully Kiosk as accessibility service. This will enable the status bar and system dialog protection in Kiosk Mode again. In Android 13 devices the Fully Kiosk option may be disabled and greyed out in Accessibility Settings ( shows “Restricted setting” box). You can enable it by opening the App Info for Fully Kiosk (hold the app icon), clicking on three dots in the right upper corner and selecting Allow restricted settings.

If your device is already on Android 11 please check this page and ask your device vendor if your device will be upgraded to Android 12 and if there is a way to prevent the update. On Samsung devices you can disable the OTA update using the KNOX settings. Check this article for other ways to disable the OTA updates. If there is a risk that your device will upgrade or auto-upgrade to Android 12 please follow the recommendations above.

Why I can't login to my Google Account in Fully Kiosk Browser?

Some users are reporting an issue (“Couldn’t sign you in. This browser or app may not be secure”) when trying to login to the Google Account in Fully Kiosk Browser.

For security means Google obviously decided to disallow using the Google Account also in Android Webview (that is used by Fully Kiosk and many other apps). For now the Android Webview however doesn’t seem to be blocked 100%. Depending on something (OS, version, network or location?) some users still can login in Google Account while other users experience this issue.

The official solution should allow less secure apps to login as described here. However users reported that it doesn’t have any effect for Android Webview.

The working workaround for now is to select Edge as Fake User Agent in Fully Kiosk Advanced Web Settings. However no idea how long this can work. If Google really decides to block all logins in Android Webview there will be no workaround anymore. This is unfortunately something out of our control.

Why doesn't my webcam video play in the web page?

If your webcam video requires Basic HTTP Authentication (it’s URL starts with http://user:auth@host…) and you embed this video in your page by using the <img> oder <video> tag it probably won’t work as the authentication for embedded contents is not allowed in Android Webview (as well as in Google Chrome on Android) for security reasons. For more information please read the discussion on this topic at Chromium Bugtracker. This is something Fully can’t change. The only known workaround is using the video proxy.

If your website is loaded as HTTPS document and your webcam URL is HTTP, so it might blocked as it’s not allowed to mix secure and non-secure contents. You can try changing the Mixed Content Mode option as workaround. However Android Webview 111+ has a known bug and often blocks all mixed content, so this option doesn’t work anymore.

If your camera stream is RTSP you can’t embed it into your website with <video> tag as this is currently not supported by the Webview. Check this FAQ for alternatives.

How can I use local files on the device in Fully?

You can use a file URL to address local files each time an URL is required in Fully. The full file URL looks like file:///sdcard/path/to/file.html Note the triple slash and that /sdcard usually refers to internal storage. You can use the file picker in URL dialog boxes to pick the file from storage. You can also select a file on external SD card. The path to external SD card will be saved in settings as /sd_ext and replaced by the real path on each device dynamically. Note that Fully Kiosk doesn’t support any write access to external SD card due to restrictions in Android OS.

Note the any links to local files or embedding local files from HTTP/HTTPS documents are disabled by Android Webview for some security reasons. But you can use the Localhost File Access option in Advanced Web Settings in order to access local files using https://localhost/… or http://localhost/… address. The full URL for a local file should look like https://localhost/sdcard/path/to/file.mp4. So you can for example embed the local video/image files in your HTTPS website.

If your devices are using Android 11+ or Android 11 OTA upgrade is pending please urgently attend to the scoped storage restrictions.

How can I load content files to the device?

You can use the Load ZIP File button in Remote Admin and Fully Cloud to download and unpack a ZIP file to /sdcard (or to the app private storage in Android 11+ scoped storage mode) on the device. Note that /sdcard usually refers to the internal public storage (not to the external SD card!) on most devices. You have to put the ZIP file on some web server where it can be accessed by the device and provide the HTTP/HTTPS URL. This is the way to make a light local content management. Use with care as all existing files will be overwritten when unpacking the same file names from the ZIP file. Avoid non-latin letters in the packed file/folder names or make sure the packer is using UTF-8 encoding. When using this feature from Fully Cloud you can load ZIP file to many devices with only one click (mass admin). You can set the File Load Timeframe in Cloud Settings in order to randomize the file loading across devices within the specified timeframe (next x seconds).

Starting ver. 1.43 you can force unneeded files to be deleted when unpacking if you put files of zero size in the ZIP file. Zero size files will be not extracted but deleted from device. Starting version 1.44 you can put a file .delete into ZIP archive containing the list of files and folders to remove before unzipping. So you can update the whole folder content and don’t care about filenames. Sample ZIP file is here.

You can use the Load Content From ZIP File option in Device Management settings in order to download and unzip file from some URL to /sdcard (or to the app private storage in Android 11+ scoped storage mode) folder automatically. Fully Kiosk will check each hour for updates on this URLs (according to servers Last-Modified HTTP response header). On the first app start the ZIP file will be downloaded prior to loading the Start URL. Use Auto-Reload on Idle option to reload the Start URL when device is not in use in order the updated local files can take effect.

For hosting the ZIP files you can now use the File Storage in Fully Cloud. If you need a bigger storage, please note that ZIP file download currently can’t work properly with files on Google Drive as Google Drive doesn’t provide Last-Modified time. If you don’t have your own webserver we recommend using Dropbox for bigger ZIP file hosting. The download URL must then look like this: https://www.dropbox.com/s/k7xdrtk8ujvqyf0/archiv.zip?dl=1

You can see the results of long running download commands in Fully Log on the Remote Admin. We recommend enabling the maintenance mode during changing content files on the devices.

You can also use the JavaScript API to silently download/unpack files, list files, delete files or folders from your website.

Of cause you can also use some other file sync app to sync local files with remote storage. However you likely can’t install/configure that app automatically like Fully Kiosk.

Why I can't see/use some local files in Android 11+?

Starting Android 11 Google/Android enforces a privacy concept called scoped storage. In short: Normal apps can’t access most of files on the device public storage anymore. Starting Fully Kiosk Browser ver. 1.44, Fully Single App Kiosk 1.8 and Fully Video Kiosk 1.8 our kiosk apps will comply with this enforcement. Good news: The restrictions only apply to Android 11+ and only if you update to the app versions listed above from Google Play. If you install APK files from our website the scoped storage restrictions will be not active.

If your kiosk app is running in scoped storage mode:

  • You will see a hint Storage mode: scoped on the Device Info box in Other Settings.
  • The kiosk app can only browse, pick and play media files from the public storage, however not other files like HTML or PDF. The app can’t write/delete any files on the public storage (also not by JS/REST API). You will see warnings in the File Picker and on the File Management page in Remote Admin.
  • For other local files we recommend using the app private storage located at /sdcard/Android/data/<appid>/files. At this location all files are visible, readable and manageable by our kiosk app (and only that app).
  • The Load Zip File feature will unpack files into app private storage, not into the public /sdcard folder. All file download will be saved in the app private storage as well.
  • If you use any local files at other locations move them to the app private storage prior to device upgrade to Android 11. Or use the APK app versions from our website to avoid running in scoped storage mode.
How can I save bookmarks/favorites in Fully Kiosk?

If you need only few bookmarks and you don’t use the Kiosk Mode please check the Add to Home Screen feature on the menu.  The current page link shortcut will be added to your Android’s Home Screen.

Otherwise you can add your favorite websites to the Universal Launcher and use it as your bookmark page. You can even seamlessly mix apps, websites and file shortcuts on the launcher.

How can I use multiple tabs in Fully?

You can specify multiple Start URLs (type one URL per line and press Enter to start new line). The URLs will be opened on separate tabs. You can enable visible tab flaps and set colors in Toolbars and Appearance settings. In Web Browsing Settings you can also enable Swipe to Change Tabs to be able to change between tabs by swiping left or right.

There are also some JavaScript and REST APIs available to manage tabs programmatically. You can still use the usual JavaScript methods window.open() and window.close() to open and close new tabs.

How can I use the screensaver in Fully Kiosk?

Configure the Screensaver Playlist in Screensaver settings. You can add media files, folders, URLs to media files or websites. Look in each item configuration for the Play next item after… option, otherwise it may be shown forever. You can also  change the Wallpaper URL if you don’t like the default black background and set the Screensaver Brightness for the display. Let Keep Screen On option in Fully Kiosk Device Management Settings enabled and do not use any Android Display Settings. Now set the Screensaver Timer in order to start the screensaver after some time of user inactivity. If you are going to use the Fully Screensaver with other apps please enable the Touching Other Apps Restarts Idle Timer in Fully’s Other Settings. 

NOTE: Prior to Fully Kiosk Browser 1.39 the Screensaver Timer was only working as long as Fully Kiosk app was in foreground, so this option wasn’t working if you started other apps. However you can select Fully Kiosk Screensaver to be started as Android Screen Saver (Daydream). Set the Display Sleep Time in Android Display Settings and disable Keep Screen On in Fully’s Device Management Settings in order the Android Screen Saver (Daydream) can start. If you use the Kiosk Mode in Fully please enable the Advanced Kiosk Protection too. This way to start screensaver could be used with other apps, however the Android Screen Saver (Daydream) only starts when the device is docked or charging (or both, select in the Android Settings).

Can I wake up the screen by tapping it?

When the device screen is completely off you usually can’t wake up the device as the switched off display can’t recognize any taps. You can use display dimming instead of screen off by setting the Screensaver Timer to the delay in seconds and Screensaver Brightness to 0. Also keep the Screensaver Wallpaper URL at fully://color#000000 for the maximum darkness. The real dimming level is depending on the device. You can then wake up by tapping the screen.

If you need to use the Screen Off Timer feature consider using different Motion Detection, Device Movement Detection or REST Interface alternatives for waking up the device.

Many new devices can be woken up by tap or double tap. Check the Android Settings for this option.

What are the different PINs and passwords for?

You can have up to 6 keys when working with Fully:

  • The Kiosk Mode PIN set in the Fully Kiosk app is needed to get out from the Kiosk Mode. Default PIN is 1234. If the PIN is empty the PIN dialog will be omitted. If you forget the Kiosk Mode PIN check this FAQ how to exit.
  • The Wifi/Settings PIN set in the Fully app only allows to access Wifi or other Android Settings in Kiosk Mode. You can give this PIN to someone who is only allowed to manage Wifi or other connections/settings but may not change anything else on the device or in Fully Kiosk settings.
  • The Remote Admin Password is set in the Fully Kiosk app settings on each device. You need this password to login to Remote Admin interface locally at http://ipaddress:2323/ or use the REST API. When adding device to your Fully Cloud Account you have to specify this password in order to allow Fully Cloud talking to the device. If this password is not set in the Fully app or you forget it you can’t connect locally to Remote Admin interface and you can’t add this device to the Fully Cloud.
  • The Fully Cloud Account Password is used with your email to login to Fully Cloud. If you forget the Fully Cloud password you can make password recovery with your email address.
  • The Fully Cloud API Key is needed for using Fully Cloud REST API. This key can be grabbed in Fully Cloud Settings. This key will be replaced each time you change the Fully Cloud Account Password.
  • The Fully PLUS Volume License Key is a secret key sent to you when you order a volume license. You can activate a PLUS license for current device by entering this key in Fully’s Other Settings. You can also add all devices activated by the specified Volume Key to the Fully Cloud account at once.

You can change the Kiosk Mode PIN, the Wifi PIN, the Remote Admin Password and the Volume License Key via Remote Admin interface (locally or in Fully Cloud) in View/Edit Settings. For security reasons you cannot change the Remote Admin Password by importing a setting file via Remote Admin.

What is the difference between Fully PLUS License and Fully Cloud Subscription?

This topic can be confusing sometimes. The Fully PLUS License and Fully Cloud Subscription are two separate products which are working independent from each other.

  • Fully PLUS License is for using all PLUS features in the Fully Kiosk App. It’s 7.90 EUR/device (plus VAT) one-time payment. (The price on Google Play can be slightly different.) Volume pricing is available. With a Fully PLUS License you can also use the Fully Cloud Basic Features for free. Find more information here.
  • Fully Cloud Subscription is additionally required for using the Fully Cloud Advanced Features. It’s a recurring payment max. 1.18 EUR/device per month (plus VAT) incl. 15% discount on annual payment etc. Check here for the feature list and more information.

You can try all features of the Fully Kiosk app and cloud for one month for free. Just install the app from our website and register for the free Fully Cloud EMM account.

Can I get an invoice for my payment?

For all completed PayPal or Stripe payments for Fully PLUS License we sent automatically an email from info@fully-kiosk.com to your PayPal/Stripe email address. Also please check your SPAM folder. Please use an invoice link in that email to get your invoice.

For all Google Play orders you can find the receipts and request VAT invoices in your Google Account.

For completed PayPal subscription payments please find your invoices in your Fully Cloud account in Menu >> Subscriptions >> Payments >> View >> Get Invoice.

You can now use our License & Invoice Finder to get all missing links to invoices for payments associated with your email address.

For data protection reason we absolutely can’t send invoices to other email address than one provided in your order or your PayPal email address.

If you like to pay your Fully PLUS Volume License by bank transfer please get an invoice from here. Type your company name/address and click the link Get an Offer/Invoice for Bank Transfer Payment.

If you like to pay your Fully Cloud Subscription (20+ devices) by the bank transfer or credit card please contact us to get an invoice prior to payment and provide your full company name/address and VAT ID (if in the EU).

How can I exit the Kiosk Mode?

You have to make the Kiosk Exit Gesture in order to see the Kiosk PIN dialog box. Depending on Fully settings the Exit Gesture can be one of following:

  • Swipe from Left (default)
  • Long press Back Button
  • Fast 5 Taps anywhere (in Fully Kiosk only)
  • Fast 7 Taps anywhere (in any app)
  • Double Tap Top Left Corner plus Double Tap Bottom Right Corner (all must be done within 3 seconds)

The default Kiosk PIN is 1234

If you can’t exit the Kiosk Mode or can’t remember your Kiosk PIN there are following ways to escape:

1. If you have Remote Admin or Fully Cloud access to your devices, you can change the PIN or unlock the Kiosk Mode (ver 1.37+) via Remote Admin or Fully Cloud.

2. If you installed the app from APK file and not disabled the Settings Auto-Import in Other Settings, you can attach your device by USB cable and put the fully-once-settings.json file (rename in fully-video-once-settings.json for Fully Video Kiosk or fully-single-app-once-settings.json for Fully Single App Kiosk app) disabling the kiosk mode to the main folder of the internal memory (/sdcard). Then restart the device in order to auto-import the settings file.

3. If you have not enabled the Lock Safe Mode option in Fully Kiosk Mode settings, by Device Owner Settings or by KNOX Settings, you can boot into safe mode (ask your vendor for instructions with your device, usually you have to press some buttons during the boot) and uninstall Fully Kiosk. If you can’t uninstall Fully Kiosk in safe mode you can look in Android Settings for Home App and select the standard Android Home App.

4. Otherwise the Factory Reset is the only way to reuse the device.

There is no backdoor available in our apps for good reasons.

The PIN dialog appears accidentally on 7 fast taps. What to do?

If you get the PIN dialog triggered accidentally when you are tapping fast 7 times or typing in another app you can choose one of these solutions. Try carefully!

1. Enable the Single App Exit by Remote Admin Only option in Kiosk Mode Single App Mode settings. This will disable the PIN dialog by 7 fast taps. You will only be able to exit from single app mode by the Remote Admin Unlock Kiosk button. Remote Admin must be activated in order this option to have effect. (ver. 1.32+)

2. Download, adjust the value in the JSON file  fully-tapsToPinDialogInSingleAppMode.json and import this settings file. This will alter the number of fast taps required to show the PIN dialog in Single App mode.

3. Detect fast taps only within first X ms after screen on. So you have to switch the screen off and on before tapping. Download, adjust and import the file fully-millisScreenOnToPinDialogInSingleAppMode.json

Why has the Device ID changed?

On the modern Android systems the normal apps don’t have access to permanent device identifiers like mac address or serial number for privacy reasons. We try to get the best Device ID based on the data available in your Android and your device. But if you reset the device or even reinstall the app the Device ID can change and we have no chance to recognize the device again. In this case you have to move a single Fully PLUS License to the new Device ID. For the Fully PLUS volume license you are required to unregister the device prior to device reset or app uninstall.

You can avoid changing Device ID if you use the device provisioning for device setup (recommended!) and don’t turn the Wifi on/off. On provisioned devices our kiosk app can access the permanent device identifiers.

The Fully Kiosk Browser is crashing. Why?

If the Fully Kiosk app disappear randomly it may be crashing or being killed by Android OS. The 99% of such issues happen in the Android Webview that still has tons of known bugs (e.g. known memory leaks when using CSS animations).

1. The Android Webview can crash after some time due to high website complexity and resource usage what we unfortunately are unable to catch. You can try running a simple page like www.google.com. If the Fully Kiosk Browser doesn’t crash anymore then that’s 100% a Webview issue. Crashes like this usually start and stop due to some updates on the particular website or Android Webview updates. You can only prevent these crashes by upgrading/downgrading the Webview or simplifying your website.

2. If Fully Kiosk suddenly started crashing on each app start it could be introduced by a buggy Webview update like that in March 2021. We recommend disabling Webview/Chrome auto-updates once tested to avoid such risks. Please use device provisioning to be able to remote update the Webview manually when needed.

Enable these options in Other Settings in order to try the app auto-restart after all stops: Restart Fully After Crash, Restart Fully After Update, Run as Priority App. The Fully Kiosk restart mechanisms work best if Keep Screen On and Kiosk Mode options are enabled. Additional crash detection was added in Fully Kiosk Browser 1.54.  Note that we still can’t restart in some cases after a Webview crash.

When Fully Kiosk is auto-restarting after crash there is a log entry, check the Fully Log in Remote Admin. If you want to know exactly what/how is crashing  you can get and analyze a bug report just after crash on your device.

Which firewall rules I need to use Fully Kiosk?

If your network is firewall protected for the Fully Cloud remote management you need to allow devices to access https://api.fully-kiosk.com and https://remoting2.fully-kiosk.com For Fully PLUS activation/deactivation devices also need access to https://licensing.fully-kiosk.com All communication to our servers is done by standard HTTPS.

If you use Enterprises please also check these network requirements.

How can I remove the system bars?

1. If you only show websites in Fully Kiosk Browser or play media in Fully Video Kiosk the immersive fullscreen mode which is enabled by default is usually a sufficient solution. The system bars (status bar at the top and navigation bar at the bottom) are invisible but can be pulled up and disappear shortly.

In Kiosk Mode the system bars will be made useless. With Android 8+ the status bar can be pulled down in the Kiosk Mode but automatically collapse back so it’s still not usable on the majority of devices. You can use device provisioning or KNOX features for a better status bar protection.

In Android 12+ the status bar can be pulled down in kiosk mode. Check this FAQ for solutions.

2. If you start other apps it’s the responsibility of other apps to show the system bars or put them into immersive mode. We can only force other apps by our experimental Force Immersive Fullscreen option. Be aware of hard limitations of that option. All the keyboard input and back button will be out of order in other apps.

3. On provisioned devices you can use the lock task mode to securely lock/remove the status bar and reduce buttons on the navigation bar.

4. On Samsung devices you can use KNOX settings to disable the system bars or remove system bar contents.

5. With Android 10 and older you can use the status and navigation bar complete removal options which might work with majority of devices and all apps.  These options however require additional permissions that can only be granted using ADB.

  • Download and install the Android Debug Bridge (ADB) tools for WindowsMac or Linux
  • Enable Developer Options and USB Debugging on the device (Howto)
  • Connect your device to the PC via USB and confirm connection
  • On the computer run this command in your ADB folder to grant permission
adb shell pm grant de.ozerov.fully android.permission.WRITE_SECURE_SETTINGS

For Fully Single App Kiosk use com.fullykiosk.singleapp, for Fully Video Kiosk use com.fullykiosk.videokiosk, for Fully Kiosk Browser Deployment edition use com.fullykiosk.emm instead of de.ozerov.fully in this command.

If something goes wrong while the system bars are removed you can easily un-remove them with following ADB command:

adb shell wm overscan 0,0,0,0

After granting permissions enable Remove Navigation Bar and Remove Status Bar options in Device Management Settings to remove the system bars.

How can I use URL whitelist in Fully?

In  Fully Kiosk Browser the Web Content Settings >> URL Whitelist setting can contain one or many URLs which are allowed to load. If you specify some whitelist URLs all other URLs will be blocked, you don’t have to put anything on the URL blacklist. The URLs added to the Universal Launcher will be auto-whitelisted automatically.

URL Whitelist is a multiline text field. Please type one URL per line and use the enter key on the keyboard to start a new line. You have to specify full URL including https:// and all query parameters. However you can use * as wildcard. For example, if you have to enable all Google and Youtube pages you can type these two lines into the whitelist setting:


So all URLs including “google.com” or “youtube.com” will be allowed, regardless http or https, with or without www subdomain. In most cases the list above will be a sufficient whitelist.

You can narrow the whitelist using a line like this which only allows Google Maps, regardeless http or https:


Or be even more precise. This one must be https, http will be filtered out:


Anyway it’s a good idea to put a star wildcard at the end of the URL.

How can I handle connection issues when loading websites?

If the Wifi/ethernet connection of the device is not available immediately on device start you should keep the option Wait for Network Connection enabled. With this option Fully Kiosk Browser will not try to load any pages until a connection is established.

Put the Custom Error URL to detect website load errors and show a nice error page instead the default one. In Fully Kiosk Browser 1.45+ you can just use the nice embedded fully://errorpage URL for that. If something goes wrong when loading a web page the user will see the error page instead.

If you want the user to see the error page in case of Internet Disconnection immediately (without loading the next page – which can be frustrating) use the Load Error URL on Disconnection option. The real Internet connectivity is checked by pinging the IP address every 10 seconds. You can change the IP address to ping by a hidden option in Fully Kiosk: get this JSON settings file, edit and import it into Fully Kiosk.

Enable the Auto reload on Internet Reconnect option in order to come back to the right website automatically once the Internet connection reappeared.

How can I play videos in Fully?

If you only want to play a video playlist please check out our Fully Video Kiosk app.

There are also several ways to play videos in Fully Kiosk Browser:

  1. HTML5 videos – can be embedded in a webpage by <video> tag, controlled from HTML, support only few video formats (depending on Webview/Android version, usually no RTSP support). These videos can be autoplayed by Enable Autoplay option and may go fullscreen if Enable Fullscreen Videos setting is on. Please note that Android Webview does not cache video files. You can use the Localhost File Access option in order to embed local video files in you website in order to save traffic.
  2. Fully’s built-in video player – fullscreen only, the player can be started by opening the video URL (requires Play videos in Fully), with JS interface powerful function fully.playVideo() (requires Enable JavaScript Interface) or by REST API. Also the Screensaver playlist and Fully Video Kiosk playlists use this player. The video player engine is one of these:
    1. Android Media Player. This supports all Android media formats incl. many RTSP streams (depends on the Android version, media format/codec). Some video formats upscale to fullscreen, sometimes even with broken aspect ratio. This seems to be an Android Media Player bug with some Android versions
    2. Media3 Exoplayer (available in Fully Kiosk Browser 1.52+ and Fully Video Kiosk 1.14+ as EXPERIMENTAL feature, Android 7+ required). Supported formats include many DASH, HLS and RTSP streams.
  3. Play fullscreen YouTube videos/playlists in Fully Kiosk (no controls) by opening the URL fully://youtube/video/[videoId] or fully://youtube/playlist/[playlistId] (requires ver. 1.26+). Some YouTube videos however are restricted by the video owner and can’t play in other apps.
  4. External video player – depends on the external app, can support even more formats, see the FAQ for external app starting and restrictions
How can I setup Wifi on Kiosk Devices?

1. If you setup kiosk devices for another site and you know the Wifi Key/Password on that site you can specify these Wifi credentials in Force Wifi SSID and Force Wifi Keyphrase options on Fully’s Device Management settings. The device will then connect to that  Wifi network automatically when SSID detected. Note that with Android 10+ this feature is only available with provisioned devices.

2. If you don’t know the Wifi credentials you can setup a special Wifi/Settings PIN on Kiosk Mode settings and give this PIN to the administrator on site. When entering this Wifi PIN instead of the Kiosk PIN that person can open the Wifi settings and connect the device to the network without being able to exit the kiosk or change other settings. Be aware that this feature can break the kiosk with some devices (like many Samsung tablets) as they allow access from Wifi settings to all other Android settings. In this case please try to use the experimental Select Wifi Network option (for Android 10+ this option is working only with provisioned devices) or put the following Android Settings activities onto the App Blacklist.

How can I use other apps in Fully?

If you want to lock down your device to a single app please check out our Fully Single App Kiosk app. You can setup a single app kiosk very fast using that app.

In Fully Kiosk Browser you can start other apps in many different ways:

  • By using the Universal Launcher. Add your apps to the launcher in Fully settings and show it by opening fully://launcher URL. The launcher is a special web page in Fully Kiosk which HTML code is looking like this. You can design the launcher appearance very flexible and easy by adding any HTML code to the <head> of the launcher page. When using the Universal Launcher, the Advanced Kiosk Protection will always be activated automatically.
  • By using the Single App Mode in Kiosk Mode settings (look in Kiosk Mode settings).
  • By opening a link to some file/content which is handled by external app – requires View Other Files option to be set to Pass URL/File/Content to External App
  • By opening an intent: scheme URL – requires enabled Open Other URL Schemes option. Samples for working Intent URLs are here:
  • By calling JS Interface functions fully.startApplication() or fully.startIntent() – requires Enable JavaScript Interface is on
  • By using cmd=startApplication or cmd=loadURL with Intent URL on the REST interface
  • By using the experimental Application to Run On Start in Background/Foreground options. Technically the specified apps will be started on device startup by their launcher intent. Then Fully Kiosk push itself back to foreground if you use the start in background option.

You can allow other apps to go foreground in Kiosk mode by adding the app package name to Kiosk Mode >> App Whitelist. E.g. if you want to allow incoming Skype calls add com.skype.raider to the app whitelist.  If you are using the Task Lock Mode (on provisioned devices) you have to put the app also on the App Lock Task Whitelist if it must be allowed to start. Apps started directly by Fully Kiosk are whitelisted automatically und usually don’t need to be whitelisted.

If you need to find out the correct component name for some activity just add that app to the Universal Launcher and you will see the component name in the launcher item configuration. The part of the component name in front of the slash is the package name.

Restrictions when starting other apps:

  • Unlike Fully Kiosk other apps usually don’t skip the lockscreen. So if your device is locked, the screen lock may be displayed when starting another app. This is unfortunately something Fully can’t change. Change Android settings in order to never lock the screen as workaround (unfortunately we can’t do it automatically). In Android 8+ you can try to unlock the Swipe screenlock by using the experimental Unlock Swipe Screen Lock option in Device Management settings. Read this FAQ for more details.
  • Fully Kiosk can force many apps to run in fullscreen mode by the Force Immersive Fullscreen option. Be aware of hard limitations of this feature, no keyboard input or back button will be working. Check this FAQ for another option.
  • For the correct working with Screensaver Timer or Screen Off Timer check Fully’s Other Settings for options controlling the idle features while another app is in foreground.
  • While another app is in foreground, the recent task button and the power button are only restricted if Advanced Kiosk Protection is enabled. Advanced Kiosk Protection is always enabled automatically when using the Universal Launcher or the Single App Mode.
  • Starting ver. 1.33 Fully Kiosk is trying to lock the Volume Keys even while another app is in foreground. You can get a better Volume Key lock by using the Device Owner Settings with provisioned devices or by using the KNOX features (on Samsung devices only)
  • Another app can stay in foreground forever if the user doesn’t press back or home button. Consider using the Regain Focus After Idle Time option or JS interface functions fully.isInForeground() and fully.bringToForeground() to bring Fully Kiosk back in focus whenever.
  • On some old devices with Android 5.x you have to enable the App Usage Stats Access permission for Fully Kiosk manually in Android Security Settings.
My device is asking for Swipe/PIN/Pattern to unlock?

If you have the Screen Lock enabled in Android Settings your device will ask you for a swipe, PIN, Pattern or Password after booting the device, after locking the screen with the power button, after screen off and when starting other apps. This is normal Android behavior. Fully Kiosk can show itself “above” the screen lock if you enable Unlock Screen option in Device Management settings (enabled by default). But Fully Kiosk can’t skip or disable screen lock for other apps. For this reason, when starting other apps with locked device the lock screen may be displayed. Unfortunately this is something impossible to change without changing the target app.

In many cases it’s recommended to set Lock Screen in Android Settings to None as workaround to disable the screen lock at all. Unfortunately we can’t do it automatically from the Fully Kiosk app. On provisioned devices you also have to switch on the Disable Keyguard option in Device Owner Settings. If you have the swipe screen lock set you can also try using the experimental Unlock Swipe Screen Lock option in Fully Kiosk. 

If the Screen Lock is disabled you won’t be able to use the Lock Safe Mode option in Kiosk Mode settings. Enabling the Lock Safe Mode option will setup the PIN screen lock automatically. Please use device provisioning to enable Device Owner Settings for a better safe mode lock. On the most Samsung devices you can reliably disable the Safe Mode using the KNOX Settings.

Note that Unlock Screen feature is not working with many Fire OS devices. Check this FAQ.

How can I use the barcode scanner with Fully?

Using an External or Integrated Hardware Barcode Scanner

External or integrated QR code scanners usually have a control app like Datawedge. By default the scanner usually emulates the keyboard and can enter the scanned code into the web fields. However the web field must be enabled and focused for this. The code must be something textual, binary values will cause issues. In many cases however this could be a sufficient integration.

Fully Kiosk supports different ways for a better integration with external scanner apps or hardware QR scanners. Check Barcode Scanner Settings in Other Settings. You can let Fully Kiosk:

  • Listen to the broadcast intent (RECOMMENDED) – many apps like Datawedge can send a broadcast intent when the barcode is scanned. It’s difficult to give exact steps for the configuration as the external scanner app can slightly change depending on its version. Look in your scanner app docs or look in the app settings for a Broadcast Action name and String Extra name and put those names into these options in Fully Kiosk Settings in order to listen to the broadcasts.
    • Barcode Scan Broadcast Intent Action – broadcast intent action from scanner app to listen for, empty for none. In devices using Datawedge app this can be something user defined or something  like com.datalogic.decodewedge.decode_action
    • Barcode Scan Broadcast String Extra – broadcast intent string extra from scanner to look for the scanned code in. In devices using Datawedge this can be something like com.symbol.datawedge.data_string or com.datalogic.decode.intentwedge.barcode_string

If you can specify the intent category in your scanner app then keep it empty.

  • Listen to activity intent – some  barcode scanners can sent explicit activity intents when barcode is scanned. Just use de.ozerov.fully.action.barcode as action and put the barcode in the Intent String Extra code or specify the String Extra Name in the Fully’s String Extra option. 
  • Listen to keyboard input from scanner – useful with many hardware scanners that can emulate keystrokes when scanning a barcode (sometimes called keyboard mode or keystroke output). Look in your scanner app settings. This option should catch the input even without a focused web field however it isn’t working reliably with some scanner apps and isn’t recommended.

Note that the barcode readers may be unavailable if you use the Unlock Screen option in Fully Kiosk (enabled by default) until you unlock the screen manually.

Check below how to handle the resulting barcode.

Using Device Camera as Barcode Scanner

You can use the use the integrated camera of the device for QR Code scanning. You can start the QR Scanner by JavaScript interface scanQrCode() or the QR scan button on the action bar.

With JS API you can specify the prompt text and target URL, the camera ID, the timeout, enable/disable beep sound and show/hide the cancel button in the barcode reader UI using scanQrCode() function. Don’t forget to enable the Enable QR Code Scanner option in Advanced Web Settings. The HTML code sample for triggering barcode scanning:

<a href="javascript:fully.scanQrCode('Nice prompt text', 'https://domain.com/target/url/$code', -1, 60, true, true);">SCAN</a>

Handling Resulting Barcode

For handling the scanned barcode from barcode app or device camera you can use Barcode Scan Target URL, Insert Barcode Into Website and Submit Form after Inserting options. Look in the Configuration how to use these options. Also JS API and MQTT events will be sent.

If your website has a focused field for barcode input you can disable popping up the soft keyboard by switching off the Enable Text Input or switching on the Always Hide Keyboard option in Advanced Web Settings. This makes the keyboard unusable on all websites however. You can disable keyboard for selected barcode scan pages by using the Fully JavaScript Interface and Inject JavaScript option with a code like this:

if (location.href=="https://url_of_barcode_scan_page")
  fully.setBooleanSetting("softKeyboard", false);
fully.setBooleanSetting("softKeyboard", true);

Note that disabling keyboard can make the Listen to Keyboard Input option not working with some scanner apps.

Using External App as Barcode Scanner

You can use a different barcode app like ZXing Barcode Scanner for scanning barcodes and getting codes back to web. The app must support zxing: URL scheme. Enable Open URL Schemes in Other Apps option in Fully’s Web Content Settings and use this HTML code to make a scan button:

<a href="zxing://scan/?ret=http://mydomain.com/path/to/page.html?item={CODE}">Scan Barcode</a>

After a barcode is scanned the scanner app will proceed to the specified return URL. Select Fully Kiosk Browser to be always the browser for handling this URL when asked. If another browser app is opened for the URL you have to clear defaults in the app settings for that browser app.

What are the best settings for an unattended device?

If you plan to run unattended devices check following topics in order to make your device locked and secure.

1. Reset Settings in Fully Kiosk (look in Other Settings) to get back to the recommended settings. Then double check every option you change. Enable the Kiosk Mode, set the Kiosk Exit Gesture and a good Kiosk Mode PIN. Enable the Remote Admin and set a fairly long Remote Admin Password. Enable Restart Fully options in Other Settings.

2. Use Device Provisioning to setup new devices. Switch ON the Disable Status Bar, Disable USB Storage, Disable ADB, Disable Boot in Safe Mode in Device Owner Settings.

3. On Samsung devices please also use the KNOX Settings for advanced protection.

4. On Android 11+ devices please attend to this FAQ for the secure kiosk mode.

5. Install the latest Android System Webview (for Android 5, 6 and 10+) or latest Google Chrome (for Android 7, 8 and 9) to avoid many Webview related issues.

6. Have a strategy for remote app installs/updates.

7. If you have enabled Google Play on the device please disable Fully Kiosk auto-updates. You can’t select the auto-update time and during auto-update your device will be not protected. Please also disable auto-updates for Android System Webview, for Google Chrome and Android System updates if possible.

8. If you have Google App installed please disable Google Screen Search, otherwise a long press on the Home Button can make strange things.

How can I update Fully Kiosk app or install/update other apps remotely?

1. You can update Fully Kiosk and other apps remotely without user interaction by using the Managed Google Play Enterprise in Fully Cloud. Then your apps can be managed and updated through Fully Cloud in cooperation with Google Play for Work. An Internet connection to Google servers and device provisioning is required for this solution.

2. An app update/install from APK file button is available on Remote Admin and Fully Cloud for provisioned devices with Android 6+. The Disable Apps From Unknown Sources (Disable APK Installs) option must be switched off in Device Owner Settings. For automatic app install you can put the APK file URL into APK Files to Install option in Device Owner Settings. An APK file will be downloaded by Fully Kiosk from URL provided and installed silently. Note that this option is not available if you installed Fully Kiosk from Google Play. Google Play editions don’t allow installing APK files.

3. A silent app update/install is also available on devices with root access. If you have rooted devices please enable the Root Features in Fully Kiosk for silent remote update/install (ver. 1.37+).

4. In all other cases you only can tell Fully Kiosk app to download and start installing an APK file via Remote AdminIMPORTANT: In these cases user input will be required ON THE DEVICE for confirming the installation.

With Fully Cloud EMM you can trigger the APK file install/upgrade for many devices at once. Now you can also host your APK files on the File Storage in Fully Cloud.

Note that you can’t downgrade the app without uninstalling it.

You can see the results of background app install commands in Fully Kiosk Log on the Remote Admin. Starting Fully Kiosk 1.50.3 installing and uninstalling APK files is not available if you installed Fully Kiosk from Google Play.

When updating the Fully Kiosk app itself it will be stopped. The kiosk protection will be lost for this moment. Fully Kiosk app will be restarted automatically after the update if you have Restart Fully After Update option enabled in Other Settings.

Can I see/control my device screen remotely?

You can get a screenshot of the device screen in Remote Admin. Note that other apps and videos won’t be visible on that screenshot.

For remote screen sharing with an particular device you can use the Anydesk Remote Control app. For silent access you can configure the Anydesk app to  Never show incoming session requests and Enable unattended access with password. If you run Fully in Kiosk Mode you have to add the following activity to the App Whitelist otherwise Fully will kill the screen recording request.


You can force the Android to bypass the screen recording dialog and resolve some other issues as described in this manual in order to have a silent integration. Also check the Disable Screenshots option is switched off in Kiosk Mode Settings and in KNOX Settings.

For configuring Fully Kiosk app and configuring devices we highly recommend you using Fully Cloud where you can do it for many devices with only few clicks.

Why did you stop Android 4.4 support?

Android 4.4 devices are just unsafe as there is no built-in support for TLS 1.2.  This makes all network communication of the device spoofable. Keeping support for these devices by our servers is potentially insecure. Thatswhy we stopped supporting Android 4.4 by the end of the year 2021. 

The last app releases working with Android 4.4 are Fully Kiosk Browser 1.44.1, Fully Single App Kiosk 1.8 and Fully Video Kiosk 1.8. Newer releases don’t support Android 4.4 and can’t be installed at all. If your devices get updates by Google Play they will not get any Fully Kiosk updates anymore. You can keep using older versions, of cause, with all PLUS features. However you can’t activate/deactivate a PLUS license or use Fully Cloud with those devices anymore.

Please be aware of the security and other issues in the old Android versions and the totally outdated Android Webview. We recommend an upgrade to some newer devices.

Can you recommend a good/cheap device for Fully Kiosk?

Nope. The devices change on the market every 3-4 weeks. We can’t test them all. And of cause, we don’t test. There are also big quality differences even inside each brand or price segment. Please attend to the known issues and select a device according to your budget, quality and performance requirements. If you plan to show websites check that the Webview available on the device is up-to-date or can be updated by yourself. Please test the Fully Kiosk app with your devices and your contents thoroughly prior to deployment. Report any issues to info@fully-kiosk.com

Can I use Android Go devices with Fully Kiosk?

Android Go devices with Android 10+ have some serious restrictions. Kiosk mode, visual motion detection and all features requiring the draw on top of other apps permission don’t work with Android Go Edition running Android 10+.

As a workaround you can grant this permission using ADB with following command:

adb shell pm grant de.ozerov.fully android.permission.SYSTEM_ALERT_WINDOW allow

For Fully Single App Kiosk use com.fullykiosk.singleapp, for Fully Video Kiosk use com.fullykiosk.videokiosk, for Fully Kiosk Browser Deployment edition use com.fullykiosk.emm instead of de.ozerov.fully in this command.

Users reported that this workaround has no effect on some devices with Android 12+.

Can I use Android TV devices with Fully Kiosk?

Android TV is a feature reduced version of Android OS for large devices. The features are cut arbitrarily without a proper documentation and the resulting restrictions can change in an unpredictable way across different devices and Android TV versions.

You can use the long press on the back button to open the menu instead on swiping.

Disabling the Home Button in Kiosk Mode is impossible out-of-the-box on the most Android TV devices. You can however run the kiosk mode “light” where the home button is not locked. If your device is not touchscreen and you hide the remote this might be a sufficient protection.

Workaround for Home Button Lockdown with Android TV

This workaround currently only works with Fully Video Kiosk 1.10+ and Google compliant Android TV devices. Please try it on your own risk if you know what you do. We can’t provide any support. Note that these settings could be reverted by the next Android TV update.

1. Download and install the Android Debug Bridge (ADB) tools for WindowsMac or Linux on your PC

2. On the tablet navigate to Settings >> Device Preferences >> About , and keep tapping on the Build Number until the “You are a developer” popups.

3. Go to the Settings >> Device Preferences >> Developer Options, and enable the switch at the top to the ‘On’ position. Scroll down to the Debugging section, and switch USB Debugging to on. Now you can use ADB with your Android TV. Plug it into your PC with any USB cable.

4. Enable Unlock All Android TV Features, restart app, enable Kiosk Mode and enable Disable Home Button and proceed to enabling the Kiosk Mode. After enabling the Kiosk Mode in Fully Kiosk run following commands on the PC in your ADB folder. This will set Fully Kiosk as the new home app.

adb devices
adb shell pm set-home-activity com.fullykiosk.videokiosk/.LauncherReplacement
adb shell pm disable-user --user 0 com.google.android.tvlauncher

5. When you want to disable the kiosk mode after disabling the Kiosk Mode in Fully Kiosk run following commands in order to return back to the default Android TV Launcher.

adb shell pm enable --user 0 com.google.android.tvlauncher
adb shell pm set-home-activity com.google.android.tvlauncher/.MainActivity

On some Android TV devices also the Launch on Boot option doesn’t work and other restrictions may apply. Try using the Grant All Permissions button or using the workaround for Android Go device in this case to grant the Draw on Top permission.

On some Android TV devices Fully Kiosk can't show fullscreen or in the correct orientation. This is something we can't fix currently.

Can I use Fully Kiosk with an Amazon Fire device?

Amazon's Fire OS is a very special Android derivative. We absolutely can't recommend using Fire OS devices in any production environment as Amazon seems to be hunting apps overriding the standard launcher. Showing you advertising whenever possible is one of the reasons why Fire OS devices are cheaper than usual. So even if Fully Kiosk is working fine for now make sure your device will never get an Fire OS update where anything will be broken. You've been warned.

Please install Fully Kiosk apps on Fire OS from APK files on our website. Fully Kiosk Browser, Fully Video Kiosk and Fully Single App Kiosk allow enabling the Kiosk Mode with Fire OS without any third party tools. It has been tested with some Fire OS 5, 6 and 7 devices. However even the minor Fire OS change can have effects.

Please uninstall apps like Launcher Hijack. If you have Google Play on your device please don't install Fully Kiosk apps from Google Play and disable auto-updates for the Fully Kiosk app.

When enabling Kiosk Mode in Fully Kiosk please read the dialog box text carefully and enable the Detect Home Button option in Fire OS Accessibility Settings. This is required to make the kiosk protection with Fire OS. Note: This accessibility option is sometimes reset by Fire OS - no idea why, you will get a warning toast when Starting Fully Kiosk in this case. If the Advanced Kiosk Protection is enabled, your device is probably still 98% protected in that case.

Due to changes in the accessibility service the Fire OS edition of Fully Kiosk Browser will always be an APK file to install. You can get it in the download box. It won't be accessible on Google Play as Google doesn't like apps tampering with accessibility service. Amazon store didn't like our apps for unknown reasons, so our app can't be made available there.

Major Issues with Fire OS reported by users:

1. Fire OS 5 (after update to or, Fire OS 6 and Fire OS 7 takes some seconds (usually 5 seconds) to return to Fully Kiosk when the Home Button is pressed. If you plan to make an OS upgrade or obtain new Fire OS devices please check if this issue appears.

Workaround for Fire OS

Please use this workaround on your own risk if you know what you do. We can’t provide any support. Note that these settings could be reverted by the next Fire OS update.

1. Download and install the Android Debug Bridge (ADB) tools for WindowsMac or Linux on your PC

2. On the tablet navigate to Settings >> Device Options > About Fire Tablet, and keep tapping on the Serial Number until the “You are a developer” popups.

3. Go to the Settings >> Device Options >> Developer Options, and enable the switch at the top to the ‘On’ position. Scroll down to the Debugging section, and switch USB Debugging to on. Now you can use ADB with your Fire tablet. Plug it into your PC with any USB cable.

4. After enabling the Kiosk Mode in Fully Kiosk run following commands on the PC in your ADB folder. This will set Fully Kiosk as the new home app.

adb devices
adb shell pm set-home-activity de.ozerov.fully/.LauncherReplacement
adb shell pm disable-user --user 0 com.amazon.firelauncher

5. When you want to disable the kiosk mode after disabling the Kiosk Mode in Fully Kiosk run following commands in order to return back to the default Fire Launcher.

adb shell pm enable --user 0 com.amazon.firelauncher
adb shell pm set-home-activity com.amazon.firelauncher/.Launcher

2. After update to Fire OS or the Fully Kiosk app stops working if Visual Motion Detection is active and the screen goes off. It looks like this Fire OS is killing all apps that use the camera while screen is off. We have no fix for this. Use the Screensaver instead of Screen Off or use the Acoustic motion detection.

3.There is a bug in the newer Fire OS that the granted microphone access permission gets lost sometimes. You can deny this permission as workaround. The depending features in Fully Kiosk like Acoustic Motion Detection of cause won't work.

4. The Kiosk Mode can have other serious issues with Fire OS. You've been warned.

5. The Lock Screen can't be disabled on many Fire OS devices. The Screen Off Timer, Sleep Schedule or the short Power Button press will always lead to the lock screen. All this is no issue with normal Android OS. Another ROM or rooted Fire OS can help you. Some users reported successful screen lock removal in Fire OS according to this manual (based on this approach). Other users reported that this approach reverts randomly unless you disable the access to any networks except required (e.g. by VLAN configuration). Other users reported successfull lock screen deactivation by using the screen pinning.

The Unlock Screen option is available for some Fire OS 6 and Fire OS 7 based devices. But it still doesn't work 100% as after device reboot sometimes you still have to swipe to unlock. Also the keyboard may not appear until you press the home button if the Unlock Screen is enabled.

6. The Android Webview can't be updated separately, but it seems to be updated with Fire OS and is slightly outdated with Fire OS we tested.

7. Some users reported to be impossible to use Alexa and the Show Mode when Kiosk Mode is activated.

8. Some users reported screen brightness issues where the brightness is not set/reset properly when using the brightness settings in Fully Kiosk. If you encounter this issue please check that Keep Screen On option is enabled in Fully Kiosk. Otherwise Android  screen off can mess up things. Avoid using Screensaver Brightness option if you still have brightness issues.

9. Add to Home feature isn't working with the standard Fire OS launcher.

10. It looks like there is no device provisioning method working with Fire OS and so there is no way to make a silent remote app installations (unless the device is rooted).

11. Some devices like Echo Show can't grant the requested app install permission and show the permission request repeatedly. You can deny this permission request permanently by downloading and importing this JSON settings file.

12. Some Echo Show devices display the limited touch functionality warning.

13. The Dark Mode doesn't work even if the device is on Android 9.

If you find some issues with the Fire OS please feel free to report to info@fully-kiosk.com and let's see what we can do.

Fire TV sticks seem to work with Fully Kiosk (with the restrictions above) however you can't get them into the kiosk mode and some different restrictions apply as for other Android TV devices. You can try to switch off the Disable Home Button option and run in the kiosk mode "light" where the home button is not locked. If your device is not touchscreen and you hide the remote this might be a sufficient protection. App icons for sideloaded apps are broken on some Fire TV devices.


We are glad to offer you customized or white label version of any of our Fully Kiosk apps for your individual or business needs. You will get a custom app as APK file for your installation.

  • Custom Kiosk App based on Fully Kiosk Browser, Fully Single App Kiosk or Fully Video Kiosk incl. custom app name, icons, package name, graphics, colors, default Start URL – only 299 €
  • Set custom defaults or remove settings for the custom app – 99 €
  • Custom Fully Cloud incl. custom name, URL, hosting, SSL certificate – starting by 399 €
  • Additional JavaScript and REST interfaces
  • Integration with other apps or devices
  • iBeacon and Eddystone integration
  • Custom Kiosk Exit Gesture
  • Custom NFC Tag Actions
  • Custom Licensing Models
  • Localized Custom App
  • Add any other features or customizations to your Custom App or Cloud

Please contact us with your requirements for details and prices.


All Fully Kiosk apps do not track users. No information about Fully Kiosk apps usage including their local Remote Admin web interface is transmitted to or stored on our servers or third party servers.

If you are using the PLUS features the app checks periodically the PLUS license validity if the Internet connection is available. The anonymous device ID will be sent via HTTPS to our licensing servers for this purpose.

If you order a PLUS License the device ID, the payment transaction details, your name, address and email will be stored in order to enable authentication in case of license relocation.

If you are using our Fully Cloud service your device will frequently send all information available on the Fully Remote Admin interface (including the device location if enabled) to Fully Cloud server via HTTPS. The latest information will be saved for the quick view in the Fully Cloud account. No history data (except Fully Log) will be saved on our cloud servers. Fully Cloud is hosted at Hetzner Online (ISO/IEC 27001 certified hosting) in Germany.

In case of application crash or ANR the anonymous information about your device type, Android version, Fully version, its major settings, logcat and exception stack will be sent to our servers via HTTPS in order to support investigation and fixing that bug.

If you save your configuration with Fully Exam Configurator the exam name, URL and encrypted configuration will be saved on our servers for 12 months in order to provide the permalinks.

When paying by credit card the processing is done by PayPal or Stripe.com. We can’t access and we don’t save your credit card data at any time except the country of your credit card.

When using Enterprises you also accept the Google Managed Play agreement and data processing and security terms.

Developer information and privacy point contact:

Fully Factory GmbH
Von-Witzleben-Str. 12
41540 Dormagen

In case of any privacy questions or requests please contact us.

Read the full Privacy Policy


German substantive law shall apply to the agreement. Consumer protection law of the consumer’s residence country shall be excluded.

Using Fully PLUS features requires a Fully PLUS License. Look at PLUS Licensing for conditions. Fully PLUS Single License can be paid by PayPal or Google Play in-app purchase (if installed from Google Play). Fully PLUS Volume License can be paid by credit card, bank transfer or PayPal.

Using Advanced Features in Fully Cloud EMM additionally requires a Fully Cloud Subscription after trial period. Look in Fully Cloud for conditions. You can pay by PayPal subscription. For 20+ devices we can offer a bank transfer or credit card payment. 

You can test anything for free. For all product orders you will get a digital invoice. We require all international bank transfers to us to be made with the OUR instruction (all fees are paid by you).


Fully Kiosk uses codes of Apache Commons, libsuperuser, colorpicker, altbeaconandroid-filepicker, DragListView, SlidingMenu, Zxing, Rootbeer, Acra, HiveMQ MQTT Client, OK Http, NV Websocket Client, Leakcanary, Google Flexbox and PDF.js published under Apache License 2.0.

Fully Kiosk uses code of Jsoup, FreeReflection and ANRWatchdog published under MIT License.

Fully Kiosk uses code of Glide published under this license.

Fully Kiosk uses code of nanohttpd published under this license.

Older Fully Kiosk version use code of Eclipse Paho published under EPL.


2016-02-06 - v0.1
The first public edition
2016-05-19 - v1.0
Kiosk mode added (experimental)
Add menu, settings and home screen link
Add zoom mode, access to system settings and Recent apps in kiosk mode restricted
Progress bar and SSL option
Restrict auto reload, basic auth settings
Password protection in kiosk mode, hardware buttons
Validate URL, open local HTML files, black background when loading
Auto reload at ScreenOn and WifiOn
Use Wide View Port, Fix reload on Wifi Reconnect
Small fixes for the Kiosk mode, Run in foreground (experimental)
Set Orientation, Support Full Screen Videos
Allow mixed http/https content
Hide PIN dialog after 20 sec, fix screen off, handle mailto links
Show PDF, restart on crash, add website integration functions
Add load with overview mode and initial scale
Export/import settings to file, move wifi button to settings
Set font size
Never try to load page if no connection available (optional)
Show auth dialog
2016-06-05 - v1.1
Bugfix release
2016-06-28 - v1.2
Auto correct spaces in URL
Allow capitals in domain name
Select a different gesture to exit Kiosk Mode
Restart Fully after updating app or Android Webview update
Disable all alert, confirm and prompt boxes (optional)
Better use Exit button in Kiosk Mode
Show and copy Device ID in settings
Improve MAC address handling in Android 6.x
Allow Device ID changes without loosing the license
Restore black background on start
Allow Fully to be a Standard Browser
Other small fixes
Fix black background again
Fix updating settings
Improve status bar icon
Disable hardware acceleration (optional)
Improve app cache settings
2016-07-12 - v1.3
Play RTSP streams, change Motion Detector Framerate
Play all supported videos
Fix double tap to zoom
Fix IPv6 and Mac address for Android 6+
2016-08-05 - v1.4
Allow third party cookies
Don’t switch off screen while interacting
Fix waiting for internet connection appears after exit
Stability issues
Disable some options in Android 4.4
Fake User Agent String
Schedule daily sleep and wake up time (PLUS)
Allow moving app to SD card
Fix Show local PDF in Android 5.x
Other fixes
Compatibility edition for Android 4.1+
2016-08-27 - v1.5
Access geolocation by HTML5 (PLUS)
Load Start URL on Home Button in Kiosk Mode (PLUS)
Reload on reconnect of any network
Improved offline license check
2016-09-08 - v1.6
Custom Error URL
Custom Screensaver URL
Autoplay Videos Option
Volume License Key
Auto-import settings
Delete all webstorage data with Clear Cache
New option: Delete webstorage on Auto Reload
New option: Enable Camera Capture Upload
2016-09-23 – v1.7
Remote Admin Fully App (view info and manage settings)
New option: Reload on Internet Reconnect
Enable Screen Off and Screensaver on Timer without Motion Detection
Don’t turn Screen Off or Start Screensaver while video is playing
Detect Motion with JavaScript using Website Integration
2016-10-18 - v.1.8
Show Action Bar with Back, Forward and Home Buttons
Show Address Bar (and auto-hide when scrolling)
Enable/Disable Back Button
Support Popups and Open in New Frame
Support Microphone Access and WebRTC (Android 5+)
Improve Kiosk Mode Enabler
Cleanup Runtime Permission Management (Android 6+)
Swipe to Navigate, Animate Page Transitions
Restart Camera on Failure
2016-11-05 - v.1.9
Daily Usage Statistics
Pre-configure Wifi Connection
Handle URL Scheme intent:
New Kiosk Exit Gesture: 5 Taps
Use Android Daydream for Screensaver
Show Camshot in Remote Admin and JS Interface
Bring Fully to Foreground in Remote
Admin and JS Interface
Nested Preferences
Improved Sleep/Wakeup
Improve Cam Stability for Motion Detection
2016-11-19 - v.1.10
Download and View Remote PDFs in Built-In Viewer
Allow Video URL for Screensaver
Reload Start URL when Screensaver Stops
Unlock System Bar and Buttons when PIN entered
App Whitelist for Kiosk Mode
Optional Tap Sound
Wifi Only PIN
Show Geolocation in Remote Admin
New Website Integration Functions
Improve Alert/Auth Dialogs
URL Variables like $mac or $ssid
Offline Licensing
Several Bugfixes
2016-12-03 - v.1.11
Show/Hide Status and Navigation Bars Separately
Change Colors for Status, Navi, Action and Address Bar
Customize Action Bar Icon and Background
Show/Hide Back, Forward, Refresh, Home and Print Buttons
Clear Cache After Each Page Loaded
Autoplay HTML5 Audio
Redirect To Start URL when Blocked
Don’t Wake Up if Power Disconnected
Sleep on Power Disconnect
Remote Admin from www.fully-kiosk.com/remote
New Website Integration Functions
2016-12-23 - v.1.12
Welcome Screen with Quick Start Settings
Remote Admin: Export/Import Settings as JSON Text File
Remote Admin: Load Arbitrary URL
Remote Admin: Lock Device for Maintenance
Search Provider URL
Important Bugfixes
2017-01-03 - v.1.13
Compatibility with Fully Cloud Account
New Option: Enable Soft Keyboard in Webview
New Option: View in Desktop Mode
Kiosk Mode: Disable Volume and Power Buttons Separately
Unregister the Volume License by Removing the Key
New REST and JS Interface Functions
2017-01-14 - v.1.14
New Option: Screen Brightness
New Option: Pause Motion Detection whe Fully in Background
New Option: Ignore Motion when Moving Device
Remote Admin: Edit Settings
Dim Screen by Screensaver URL dim:
Enable intent: or tasker: URL in Start URL
More Tolerant Internet Connection Detection
New REST Interface Functions
Some Bugs and Stability Fixes
2017-02-04 - v.1.15
Fully Cloud: Fast Admin Device
Remote Admin: Nice Change all Settings
Improved Boot in Kiosk Mode
JSON Response Mode for REST Interface
Decode IDN Domains
2017-03-16 - v.1.16
Read NFC Tags
Improved Fully Cloud Support
Autoplay Audio/Video in Screensaver URL
New JS and REST Interface Features
Select Cache Mode
Set Optional Wakelocks
Disable Buttons while Showing Dialogs
Some Bugs and Other Fixes
2017-05-23 - v.1.17
Download Files for Viewing in Other Apps
Support Audio and Video Capture Upload
Allow Vibrate Feature in Webview
Enable/Disable Text Selection in Webview
Enable/Disable Remote Admin in LAN
Better Support for Android 7
Some Bugs Fixed
2017-07-01 - v.1.18
Detect Device Movement by Accelerometer and Compass
Turn Screen On and Stop Screensaver on Movement
Play Alarm Sound on Movement (Anti-Theft Alarm)
Show RAM/Storage Info on Remote Admin
Show Battery Warning when Battery Low
Show Action Bar in Settings
Sleep on Power Connect
2017-08-22 - v.1.19
iBeacons Detection
Movement Alert on iBeacons
Play Alarm Sound From File
Push and Unzip File to Device
File Picker for Local Files
Show Permission List Dialog
Improved Go Out from Kiosk Mode
Improved D-pad Navigation Support
TTS over REST Interface
New JS Interface Features
2017-10-13 - v.1.20
Application Launcher
Add Apps to Launcher
Custom Launcher Design
Remote Load and Install APK file
Improved Kiosk Protection
2017-11-18 - v.1.21
Mix Apps and Web Bookmarks on App Launcher
Edit Launcher Items
Select Launcher Background Color and Scaling
Single App Kiosk Mode
Load Best Icon for Add to Home
Pick Apps for Whitelist
New REST API Commands
2018-02-19 - v.1.22
Set Screen Brightness for Screensaver
Daydream Screensaver Integration
Improved File Download Handling
Better Support for Android 8
Better Support for Files on External SD Card
Allow Local Files for App Launcher Icons
Device Info in Settings and on JS Interface
New Splash Screen
2018-03-30 - v.1.23
Play Videos, Slideshows or Websites in Screensaver
Optionally don’t Lock Home Button in Kiosk Mode
Manage Sleep/Wakeup Times for Days of Week
Add File Shortcuts to Universal Launcher
Improved Support for Android TV
Acoustic Motion Detection
Safe Mode Lock
2018-04-23 - v.1.24
Support NFC Device Provisioning
Support Samsung KNOX Features
Change Policies for Provisioned and KNOX Capable Devices
Silent App Install for Provisioned Devices
Add Device to Fully Cloud from the App
Force Immersive Fullscreen for Other Apps
Some Bugfixes
2018-06-10 - v.1.25
Render PDF Files with PDF.js
Show Tabs for Browser Frames
Open Multiple Start URLs in Tabs
Swipe to Change Tabs
New JavaScript Interface to Change Tabs
Custom Tab Colors
Custom Progress Bar Color
Better Support for Fire OS
Pick a Settings File for Import
Inject JavaScript
2018-07-31 - v.1.26
Optionally Disable All Touch Interactions
Optionally Disable Scrolling
Play Youtube Videos and Playlists on Screensaver
Custom Action Bar Button
Improve Kiosk Protection
New REST and JavaScript Interfaces
Some Bugfixes
2018-09-21 - v.1.27
Improve Intent URL Handling
Load Error URL on Disconnect
Load Current Page on Auto Reload
New REST and JavaScript Interfaces
Remote Admin via HTTPS
Disable Screenshot and Camshot on Remote Admin
Some Bugfixes
2018-10-18 - v.1.28
Add Share Button
Single App Kiosk Mode for Android 8+
Support Different Provisioning Methods
Improved Support for Android 8 & 9
2019-02-05 - v.1.29
Enable Multiple File Upload
Use Another App for Screensaver
Unlock Kiosk from Remote Admin
Use Idle Features with Other Apps
Set Arbitrary Custom User Agent String
Different Bugfixes
2019-03-23 - v.1.30
Integrated QR Code Scanner
New JavaScript and REST Interfaces
Use Fully Kiosk as Default Browser App
Some Bugfixes
2019-05-02 - v.1.31
Access Bluetooth Devices with JavaScript Interface
New Options for QR Scanner
Set Text Color in Universal Launcher
Skip Auto Reload if Showing Start URL
New JavaScript Interface Functions
Some Bugfixes
2019-05-22 - v.1.32
Client Certificates for Webview
Prevent Device Sleep at Screen Off
Improved Single App Mode
New KNOX Features
Small Bugfixes
2019-07-31 - v.1.33
Sync local content from ZIP file URL
Load local files via https URL
Force Wifi/Bluetooth on/off
Add Referer and AddXFF HTTP headers
Different Actions for Wifi PIN
Select Wifi without Android Settings
Add Web Filter by Host
Resubmit Form Data on Page Reload
Block Volume Buttons with Other Apps
Detect Movement when Unplugged
New JS Interface functions
Rebrush Remote Admin Toggles
2019-09-06 - v.1.34
MQTT Integration
Android 10 Support
Improved Error URL Handling
Custom Message Overlay
Small Fixes
2019-09-26 - v.1.35
Remove System Bars (read FAQs!)
Add Root Features
New JS/REST APIs for Tab Management
Reset Zoom after Each Page Load
Small Fixes
2019-11-16 - v.1.36
Small Fixes
2020-02-08 - v.1.37
Bugfixes and Stability Updates
2020-03-22 - v.1.38
Launcher Background Image
Improved Downloads Handling
Improved App Compatibility
App Blacklist
Small Bugfixes
2020-04-25 - v.1.39
Start Fully Screensaver with Other Apps
Download Files without Opening
Improved Address and Progress Bars
Open NFC while in Background
Small Fixes
2020-06-25 - v.1.40
Barcode Scanner Integration
Block Notifications in Kiosk Mode
Read Hardware Sensors
Force Open HTTPS URLs in Another Apps
File Upload in Remote Admin
Disable Scrolling & Dragging Separately
JavaScript API for Clipboard Access
Some Bugfixes
2020-09-11 - v.1.41
Basic Web Automation
Fully Event Log
Command Box in Remote Admin
Get HTML Source
Customize MQTT Topics
Ignore Motion Detection when Screensaver Starting/Stopping
Remove DAT File Support for Settings Export
Access to Protected Content
Some Bugfixes
2020-10-03 - v.1.42
Search for Settings and Apps
Block Incoming/Outgoing Calls
Limit Volume Level
Improve Android 10 Support
Change MQTT Library
2021-02-21 - v.1.43
Prevent Idle while Music/Video Playing
Allow Unsecure Content in Webview
Redirect Audio to Earpiece
Screen Off on Proximity
Stop Reloads when Motion Detected
Privacy Check
Remove Files when Extracting ZIP
Improve Lock Task Mode Support
Manage Apps in Remote Admin
Encrypt PINs/passwords when Exporting JSON Settings
2021-09-30 - v.1.44
New Settings Advisor
Use Placeholders in Action Bar
Improved Keep Screen On
Support Android 11 Scoped Storage
Remove Folders when Extracting ZIP
Some Bugfixes
2022-01-03 - v.1.45
Auto-Start Selected App
JavaScript API for Reading NFC Tags
Embedded fully://errorpage
Reset Wifi on Disconnection
Placeholders in Overlay Message
Some Bugfixes
2022-02-10 - v.1.46
Support Dark Mode
Improved TTS Engines Handling
Bluetooth Operations for Android 12
Update PDF.js
Global Proxy Configuration
Set Bluetooth Name
Some Bugfixes
2022-03-18 - v.1.47
Use Google Inapp Billing
Some Bugfixes
2022-05-20 - v.1.48
Face Detection
Detect NFC Tags when in Background
Some Bugfixes
2022-09-28 - v.1.49
Better Android 13 Support
Some Bugfixes
2023-03-08 - v.1.50
Disable Overscroll option
Drop MQTT support for Android 6 and older
Some Bugfixes
2023-07-19 - v.1.51
New JS APIs for Bluetooth etc.
Set Title for the Home Links
Update Time for Single Apps
Set User Restrictions (on Provisioned Devices)
Add Material You icons
Some Bugfixes
2023-08-16 - v.1.52
Show Web Overlays
Terminate Webview on Unresponsiveness
Delete Cache and History by Web Automations
Disable Context Menus in Kiosk Mode
Optionally use Exoplayer for Videos
Some Bugfixes
2023-09-11 - v.1.53
Remove X-Frame and CORS protection
Clear App Data from App Management
Introduce $customVariable
Set Custom Locale
Kill Apps from App Management
2023-11-07 - v.1.54
Use CameraX for Motion Detection
Enable/disable Hotspot
Web Console
New Tab URL
Android 14 Support
2024-03-06 - v.1.55
Improve IP address display
Confidence threshold for face detection
Turn roaming data on/off by KNOX
Some bugfixes

Bugfix releases are not listed here.


Android Webview Related Issues

  • Fully Kiosk is using the web engine of Android Webview. Many different issues will happen if the Android Webview available on your device is outdated. HTML/JS/CSS compatibility issues may occur as with any other web browser even with the current Webview. Read this FAQ.
  • Excessive website complexity and video content can lead to the high resource usage by the Android Webview, unresponsiveness and killing the app by Android. Check this FAQ, enable the recommended restart option in Other Settings, try to reduce website complexity or increase device resources.
  • The Web Speech API (Speech Synthesis API, Speech Recognition API), Web NFC, WebUSB and Clipboard API are not supported or not fully supported by the Android Webview. Please use Fully’s JavaScript API instead for TTS, NFC and clipboard access.
  • When the screen is off Android Webview will always stop all scripting and networking after a short time. We can’t change this by any option unfortunately. Your website must be able to recognize this situation and recover gracefully when the scripting is running again.
  • After some idle time Android Webview will reload your website sometimes voluntary. This is probably because some memory got freed and the website needs to be re-rendered. This behavior can also be observed with Google Chrome on Android, particularly after screen on.
  • Download/handling files returning by HTTP POST requests isn’t supported in the Android Webview.
  • Calling JS methods across windows like window.opener.foo() is not supported by Android Webview.
  • Download/rendering of blob: URLs created by URL.createObjectURL() or other blob: URLs isn’t supported by the Android Webview. There is a workaround for downloading blob URLs working with the current Webview for the most websites.
  • Download of files with NTML or Kerberos authentication is not supported.
  • Saved HTTP Authentication credentials can’t be cleared (seems to be an Android Webview bug)
  • The capture attribute (user/environment) for camera uploads is not respected.
  • Android Webview doesn’t allow links to local files (file://) or embedding local files from HTTP/HTTPS documents. Use Localhost File Access option for workaround.
  • When JavaScript location.replace() method was used the back navigation may not work properly. Ask us for a workaround.
  • Android Accessibility Service and other apps (analyzing and pre-filling pages, like LastPass) relying on that service are not working properly with Android Webview.
  • JavaScript Interface isn’t working in popups with Android 4.4.
  • The print button is crashing the app with Android Webview 77.

Device Vendor Related Issues

  • Many Android devices are not suitable for running 24/7. We recommend long time testing prior to production deployment.
  • On Amazon Kindle/Fire devices some features are out of order. Please check this FAQ for details.
  • Devices with Android Go Edition running Android 10+ can have some restrictions. Check this FAQ for a workaround.
  • Device running Android TV can have some serious restrictions. Check this FAQ.
  • With Samsung devices running Android 9+ Fully Kiosk can’t block reliably the power menu (Power Off / Restart / Emergency) called by the longer power button press. Please use KNOX Settings to block.
  • Kiosk mode  and all features requiring the device admin permission don’t work with Chrome OS. The apps are usually running in Chromebooks on a restricted virtual subnet 100.115.92.xxx. The apps can’t see the real IP address of the device in your local network. For this reason Remote Admin sometimes can’t accept connections.
  • Some Android devices from Huawei, Honor and Xiaomi (especially Chinese versions with EMUI/MIUI 10+) may not allow to change the default launcher app. On these devices Fully Kiosk can’t maintain the Kiosk Mode reliably. You can try this workaround with disabling the default launcher by ADB on your own risk.
  • On Huawei devices with HarmonyOS in Kiosk Mode you will get issues with Smart Recovery claiming Fully Kiosk to cause a serious error. The issue likely disappears if you disable the Advanced Kiosk Protection, empty the App Whitelist and App Blacklist options (tested with Harmony OS 3). You also can’t use the Single App Kiosk mode with HarmonyOS.
  • Some Huawei and some other devices can’t show the Battery Optimization Permission dialog properly. Fully Kiosk repeatedly complains that there is the Prevent Device From Sleep Permission missing. You can import this JSON settings file in order to suppress this warnings.
  • Few device vendors like Elo Touch decided to reset the default launcher (home app) once a while to their own app. Other vendors like SUNMI changed the Android too much. Also some Lenovo devices were recently reported to reset the default launcher on device reboot. Unfortunately there is no chance to maintain the kiosk mode on such devices reliably.
  • Especially when running on battery some device vendors like Huawei decided to kill all apps running long time. Check this page for possible solutions.
  • Some TV boxes with Android 8.1 show erroneous behavior which also disallows to use the settings in the app.
  • Some Lenovo devices with Android 8.1 like Lenovo ThinkSmart View (CD-18781Y) can’t detect the screen on/off state properly (reporting ON while the screen is OFF). This can unpredictably affect many features in Fully Kiosk.
  • Some few Android 6.0.1 devices like Panasonic FZ-A2A, TbooK 16 Power(M5F6), Lenovo Yoga Tab 3 Pro (YT3-X90F), Inspiron 23 Model 5348 are crashing with Fully Kiosk 1.38+. 
  • Scheduled Wakeup may be inaccurate (up to some minutes later) or even fail at all on some devices.
  • Volume Buttons can’t be locked in Kiosk Mode on some devices.

Android Version Related Issues

  • Devices with Android 12+ can have some gaps in the kiosk mode protection. Check this FAQ for solutions.
  • Some Samsung devices with Android 11+ seem to kill apps when the screen is off and device is sleeping. You can’t use any Screen Off features with these devices. There is no workaround for now.
  • Some devices with Android 11+ don’t allow to Keep Screen On when using other apps. Enable the Keep Screen On (Advanced) option to fix it (ver. 1.44+)
  • In Android 8+ the onscreen keyboard might not show up in other apps sometimes after reboot if Unlock Screen option is enabled and Swipe Screen Lock is selected. Disable Unlock Screen option or disable Screen Lock on Android Settings as workaround. With Fully Kiosk Browser 1.34 the experimental option Unlock Swipe Screenlock seems to help to avoid this bug in most cases.
  • In Android 8+ the status bar can be pulled down in Kiosk Mode for a short time. Check this FAQ how to lock the status bar reliably.
  • Also when the device is showing the lockscreen the status bar can’t be disabled in Android 8+. Remove screen lock as workaround. Check advise in this FAQ to lock the status bar reliably.
  • Toast messages are not visible sometimes when device screen is locked in Android 6+
  • In some Android versions other apps running in Kiosk Mode can’t obtain runtime permissions (“Screen Overlay Detected“). Please run the app and set needed permission prior to enabling the kiosk mode or use device provisioning to auto-grant some permissions to other apps.
  • Looping the videos in Fully video player sometimes doesn’t work in Android 5 (Android media player bug?).
  • Black screen may be flashing in Android 5.x if your device is locked and you are pulling the system bars. You can set Screen Lock to None in Android settings in order to avoid flashes, but use Fully’s Kiosk Mode to keep the device secure.
  • Text-to-speech interface is broken with some Android 5.x devices.

Other Common Issues

  • Fullscreen mode warning (immersive mode confirmation) is sometimes shown by some Android versions and must be confirmed.
  • Screen Off Timer and other screen offs may suspend many devices completely (after few minutes). No website activity, Motion Detection or Remote Admin can be used. This is a part of the device energy management and the exact behaviour can be different depending on the device vendor and Android OS version. Please try enabling the option Prevent from Sleep while Screen Off and attend to this website. If nothing helps, disable all screen off features, enable  Keep Screen On and use the Screensaver as workaround.
  • Fully Kiosk app is terminated when Android System Webview or Google Chrome is updated. Disable the updates or use Restart Fully After Update option.
  • Any multi-user setup and operations are not supported.
  • With some devices the usage stats can’t count the screen touches reliably.
  • Screenshots do not include videos or contents from other apps.
  • Fully Kiosk can’t be used with split screen or picture in picture modes.
  • Some videos play fullscreen with broken aspect ratio (Android media player bug?)
  • Double launch on device boot in Kiosk Mode may be done, this shouldn’t cause any problems however.


Fully Factory GmbH
CEO: Аlexеy Оzеrov
Vоn-Witzleben-Str. 12
41540 Dоrmagen

VAT ID: DE314274882

Email : info@fully-kiosk.com
Phone: +49 21ЗЗ 27ЗЗЗЗ

Android Enterprise Silver Partner

Your feedback is welcome! Enjoy Fully Kiosk!