Skip to content
This repository has been archived by the owner on Mar 12, 2020. It is now read-only.

Android Permissions

Carson Farmer edited this page Sep 17, 2018 · 1 revision

Textile Photos uses a number of 3rd party libraries and tools to enhance our users' experience while using the app. This includes libraries to perform tasks in the background, track (infrequent!) crashes and issues, and even interact with your photos and camera. Each of these libraries requires specific permissions and access to certain features on your phone. The following is a fairly comprehensive list of the specific permissions required on Android, and the libraries that require them. If you have any questions or concerns about these libraries, please don't hesitate to get in touch with Textile Support, or file an issue.

Most of these can be obtained by combing through the build/outputs/logs/manifest-merger-debug-report.txt debug report.

  • Device & app history

    • retrieve running apps (for running the IPFS peer in the background)
      • android.permission.GET_TASKS required by tsbackgroundfetch (ticket)
  • Location

    • precise location (GPS and network-based) (for waking up the phone periodically to run the IPFS peer in the background)
      • android.permission.ACCESS_FINE_LOCATION required by textile-mobile
  • Phone

    • read phone status and identity (for crash reporting, issue tracking, and task scheduling)
      • android.permission.READ_PHONE_STATE required by lifecycle and crashlytics
  • Photos/Media/Files

    • read the contents of your USB storage (for accessing photos)
      • android.permission.READ_EXTERNAL_STORAGE required by react-native-image-picker and uploadservice
    • modify or delete the contents of your USB storage (for updating the local peer filestore)
      • android.permission.WRITE_EXTERNAL_STORAGE required by textile-mobile, uploadservice, react-native-fs
  • Storage

    • read the contents of your USB storage (for accessing data and photos)
      • android.permission.READ_EXTERNAL_STORAGE required by uploadservice and react-native-fs, react-native-background-fetch,
    • modify or delete the contents of your USB storage (for updating the local filestore)
      • android.permission.WRITE_EXTERNAL_STORAGE required by uploadservice and react-native-fs
  • Camera

    • take pictures and videos (for accessing the camera)
      • android.permission.CAMERA required by textile-mobile in general
  • Device ID & call information

    • read phone status and identity (for crash reporting, issue tracking, and task scheduling)
      • android.permission.READ_PHONE_STATE required by lifecycle and crashlytics
  • Other

    • receive data from Internet (for p2p communications and uploads)
      • android.permission.INTERNET required by textile-mobile in general
    • view network connections (for p2p communications and uploads)
      • android.permission.ACCESS_NETWORK_STATE required by textile-mobile, firebase, android-job
    • full network access (for p2p communications and uploads)
      • android.permission.INTERNET required by textile-mobile in general
    • run at startup (for running the IPFS peer in the background)
      • android.permission.RECEIVE_BOOT_COMPLETED required by react-native-background-fetch
    • draw over other apps (for custom windows and views via react native)
      • android.permission.SYSTEM_ALERT_WINDOW required by react-native (also requested by textile-mobile)
    • prevent device from sleeping (for crash reporting, issue tracking, and task scheduling)
      • android.permission.WAKE_LOCK requested by firebase, uploadservice, android-job
Clone this wiki locally