From wiki.ginstr.com
Revision as of 12:02, 7 January 2019 by Bojan (talk | contribs) (permissions.xml)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Permissions

Permissions for ginstr launcher are given by the user in order that ginstr launcher and ginstr apps have access to system and user data.

Permission system will work differently on devices before API 23 (Marshmallow 6.0). On devices that run android pre API23 all permissions are granted to ginstr launcher by user when application is installed, if user agrees to install ginstr launcher he also agrees to entire list of permissions. On devices that are on API 23 or higher no permissions will be asked to confirm by user on ginstr launcher installation, they will be asked on runtime of ginstr launcher in different moments depending on the category of permission.

In ginstr launcher we divided permissions into few categories:

  • critical - these permissions are asked on start of ginstr launcher are crucial for operation of ginstr launcher and by declining them ginstr launcher exits.
  • required - these permissions are asked on start of ginstr app depending if they are used in specific ginstr app, if listed they are crucial for operation of ginstr app. By declining them ginstr app exits.
  • optional - these permissions are asked just before usage within ginstr app (i.e. clicking on take photo). If user declines some of ginstr app features will be limited.
  • normal - these permissions are granted implicitly as they are not related to user sensitive phone operations or user phone data.

Permissions used by launcher

Permission name Type Category Description
android.permission.WRITE_EXTERNAL_STORAGE critical ginstr launcher needs permission to access and write internal storage in order to manage ginstr application files locally.
android.permission.READ_PHONE_STATE critical ginstr launcher needs permission to read phone details in order to uniquely identify phone with ginstr cloud.
android.permission.GET_ACCOUNTS optional ginstr launcher needs permission to read account email in order to automatically configure email address where replies come to for mails sent by ginstr launcher.
android.permission.ACCESS_COARSE_LOCATION critical ginstr launcher needs permission to obtain GPS location by behavior defined in ginstr app business logic. Permission is critical because of getGPS command which can be executed regardless of ginstr app.
android.permission.ACCESS_FINE_LOCATION critical ginstr launcher needs permission to obtain GPS location by behavior defined in ginstr app business logic. Permission is critical because of getGPS command which can be executed regardless of ginstr app.
android.permission.CALL_PHONE required Phone ginstr launcher needs permission to call phones by behavior defined in ginstr app business logic.
android.permission.CAMERA optional/required Camera ginstr launcher needs permission to take pictures and record video or scan QR codes and barcodes. Optional when used by widgets, required when used by gn:act_service qr
android.permission.RECORD_AUDIO optional ginstr launcher needs permission to record audio and video.
android.permission.ACCESS_NETWORK_STATE normal ginstr launcher needs permission to access information about networks.
android.permission.ACCESS_WIFI_STATE normal ginstr launcher needs permission to access information about Wi-Fi networks.
android.permission.WAKE_LOCK normal ginstr launcher needs permission to keep processor from sleeping or screen from dimming.
android.permission.INTERNET normal ginstr launcher needs permission to open network connections to ginstr servers.
android.permission.NFC normal ginstr launcher needs permission to perform I/O operations over NFC.
com.android.launcher.permission.INSTALL_SHORTCUT normal ginstr launcher needs permission to install a shortcut in home screen launcher.
com.android.launcher.permission.UNINSTALL_SHORTCUT normal ginstr launcher needs permission to uninstall a shortcut from home screen launcher.
android.permission.VIBRATE normal ginstr launcher needs permission to get access to vibrator.
android.permission.BLUETOOTH normal ginstr launcher needs permission to connect to other Bluetooth devices.
android.permission.BLUETOOTH_ADMIN normal ginstr launcher needs permission to discover and to pair with other Bluetooth devices.
android.permission.KILL_BACKGROUND_PROCESSES normal ginstr launcher needs permission to terminate it's background processes.
android.permission.RECEIVE_BOOT_COMPLETED normal ginstr launcher needs permission to receive system broadcast when device startup (boot) was completed.
android.permission.GET_TASKS normal ginstr launcher needs permission to get list of running tasks to enforce KIOSK mode.
android.permission.SYSTEM_ALERT_WINDOW normal ginstr launcher needs permission to setup KIOSK mode and put itself on top of all other apps.
android.permission.PACKAGE_USAGE_STATS normal ginstr launcher needs permission to allow monitoring of package usage statistics of device with purpose of KIOSK mode.
android.permission.EXPAND_STATUS_BAR normal ginstr launcher needs permission to block status bar opening in kiosk mode

permissions.xml

In order to require some of permissions on start of the ginstr app that fall into a category (see table up) they need to be listed in permissions.xml file. ginstr app developer can list needed category of permission if it's used in app. In case ginstr app developer doesn't add the permissions.xml file or doesn't list required permission which is used in gintr app then it will be added automatically during upload process.

permissions.xml is located at ginstrAppId\settings\permissions.xml

xml structure of permissions.xml is defined as:

<?xml version="1.0" encoding="utf-8"?>
<requiredPermissions>
    <permission>Sms</permission>
    <permission>Phone</permission>
</requiredPermissions>

How to identify usage of certain permission. If ginstr app uses following actions or widgets then the permission should be requested in permissions.xml: