allPermissions top-level constant

List<PermissionInfo> const allPermissions

Complete list of all available permissions.

This comprehensive database includes 100+ permissions covering:

  • Network & Connectivity (20 permissions)
  • Camera & Media Capture (3 permissions)
  • Location Services (5 permissions)
  • Storage & Files (12 permissions)
  • Contacts & Calendar (5 permissions)
  • Phone & SMS (17 permissions)
  • Bluetooth & NFC (9 permissions)
  • Sensors & Biometrics (8 permissions)
  • System & Notifications (67 permissions)

Usage

// Iterate through all permissions
for (final permission in allPermissions) {
  print('${permission.key}: ${permission.androidPermission}');
}

// Filter by category
final cameraPerms = allPermissions
    .where((p) => p.category == PermissionCategory.camera);

Implementation

const List<PermissionInfo> allPermissions = [
  // Network & Connectivity
  PermissionInfo(
    key: 'internet',
    displayName: 'Internet',
    description: 'Access the internet',
    category: PermissionCategory.network,
    androidPermission: 'android.permission.INTERNET',
  ),
  PermissionInfo(
    key: 'network_state',
    displayName: 'Network State',
    description: 'View network connectivity state',
    category: PermissionCategory.network,
    androidPermission: 'android.permission.ACCESS_NETWORK_STATE',
  ),
  PermissionInfo(
    key: 'wifi_state',
    displayName: 'WiFi State',
    description: 'View WiFi connectivity state',
    category: PermissionCategory.network,
    androidPermission: 'android.permission.ACCESS_WIFI_STATE',
  ),
  PermissionInfo(
    key: 'vibrate',
    displayName: 'Vibrate',
    description: 'Control device vibration',
    category: PermissionCategory.network,
    androidPermission: 'android.permission.VIBRATE',
  ),
  PermissionInfo(
    key: 'wake_lock',
    displayName: 'Wake Lock',
    description: 'Prevent device from sleeping',
    category: PermissionCategory.network,
    androidPermission: 'android.permission.WAKE_LOCK',
  ),
  PermissionInfo(
    key: 'boot_completed',
    displayName: 'Boot Completed',
    description: 'Run at device startup',
    category: PermissionCategory.network,
    androidPermission: 'android.permission.RECEIVE_BOOT_COMPLETED',
  ),
  PermissionInfo(
    key: 'foreground_service',
    displayName: 'Foreground Service',
    description: 'Run foreground services',
    category: PermissionCategory.network,
    androidPermission: 'android.permission.FOREGROUND_SERVICE',
  ),
  PermissionInfo(
    key: 'foreground_service_location',
    displayName: 'Foreground Service (Location)',
    description: 'Run location foreground service',
    category: PermissionCategory.network,
    androidPermission: 'android.permission.FOREGROUND_SERVICE_LOCATION',
  ),
  PermissionInfo(
    key: 'foreground_service_camera',
    displayName: 'Foreground Service (Camera)',
    description: 'Run camera foreground service',
    category: PermissionCategory.network,
    androidPermission: 'android.permission.FOREGROUND_SERVICE_CAMERA',
  ),
  PermissionInfo(
    key: 'foreground_service_microphone',
    displayName: 'Foreground Service (Microphone)',
    description: 'Run microphone foreground service',
    category: PermissionCategory.network,
    androidPermission: 'android.permission.FOREGROUND_SERVICE_MICROPHONE',
  ),
  PermissionInfo(
    key: 'foreground_service_data_sync',
    displayName: 'Foreground Service (Data Sync)',
    description: 'Run data sync foreground service',
    category: PermissionCategory.network,
    androidPermission: 'android.permission.FOREGROUND_SERVICE_DATA_SYNC',
  ),
  PermissionInfo(
    key: 'foreground_service_media_playback',
    displayName: 'Foreground Service (Media Playback)',
    description: 'Run media playback foreground service',
    category: PermissionCategory.network,
    androidPermission: 'android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK',
  ),
  PermissionInfo(
    key: 'foreground_service_phone_call',
    displayName: 'Foreground Service (Phone Call)',
    description: 'Run phone call foreground service',
    category: PermissionCategory.network,
    androidPermission: 'android.permission.FOREGROUND_SERVICE_PHONE_CALL',
  ),
  PermissionInfo(
    key: 'foreground_service_health',
    displayName: 'Foreground Service (Health)',
    description: 'Run health foreground service',
    category: PermissionCategory.network,
    androidPermission: 'android.permission.FOREGROUND_SERVICE_HEALTH',
  ),
  PermissionInfo(
    key: 'foreground_service_connected_device',
    displayName: 'Foreground Service (Connected Device)',
    description: 'Run connected device foreground service',
    category: PermissionCategory.network,
    androidPermission: 'android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE',
  ),
  PermissionInfo(
    key: 'foreground_service_remote_messaging',
    displayName: 'Foreground Service (Remote Messaging)',
    description: 'Run remote messaging foreground service',
    category: PermissionCategory.network,
    androidPermission: 'android.permission.FOREGROUND_SERVICE_REMOTE_MESSAGING',
  ),
  PermissionInfo(
    key: 'foreground_service_special_use',
    displayName: 'Foreground Service (Special Use)',
    description: 'Run special use foreground service',
    category: PermissionCategory.network,
    androidPermission: 'android.permission.FOREGROUND_SERVICE_SPECIAL_USE',
  ),
  PermissionInfo(
    key: 'change_wifi_state',
    displayName: 'Change WiFi State',
    description: 'Connect/disconnect WiFi networks',
    category: PermissionCategory.network,
    androidPermission: 'android.permission.CHANGE_WIFI_STATE',
  ),
  PermissionInfo(
    key: 'change_network_state',
    displayName: 'Change Network State',
    description: 'Change network connectivity state',
    category: PermissionCategory.network,
    androidPermission: 'android.permission.CHANGE_NETWORK_STATE',
  ),

  // Camera & Media Capture
  PermissionInfo(
    key: 'camera',
    displayName: 'Camera',
    description: 'Take photos and videos',
    category: PermissionCategory.camera,
    androidPermission: 'android.permission.CAMERA',
    iosPermissionKey: 'NSCameraUsageDescription',
    iosDefaultDescription: 'This app needs camera access to take photos and videos.',
  ),
  PermissionInfo(
    key: 'microphone',
    displayName: 'Microphone',
    description: 'Record audio',
    category: PermissionCategory.camera,
    androidPermission: 'android.permission.RECORD_AUDIO',
    iosPermissionKey: 'NSMicrophoneUsageDescription',
    iosDefaultDescription: 'This app needs microphone access to record audio.',
  ),
  PermissionInfo(
    key: 'flashlight',
    displayName: 'Flashlight',
    description: 'Control camera flashlight',
    category: PermissionCategory.camera,
    androidPermission: 'android.permission.FLASHLIGHT',
  ),

  // Location Services
  PermissionInfo(
    key: 'location',
    displayName: 'Fine Location',
    description: 'Access precise GPS location',
    category: PermissionCategory.location,
    androidPermission: 'android.permission.ACCESS_FINE_LOCATION',
    iosPermissionKey: 'NSLocationWhenInUseUsageDescription',
    iosDefaultDescription: 'This app needs location access to provide location-based features.',
  ),
  PermissionInfo(
    key: 'coarse_location',
    displayName: 'Coarse Location',
    description: 'Access approximate location (city block)',
    category: PermissionCategory.location,
    androidPermission: 'android.permission.ACCESS_COARSE_LOCATION',
    iosPermissionKey: 'NSLocationWhenInUseUsageDescription',
    iosDefaultDescription: 'This app needs location access to provide location-based features.',
  ),
  PermissionInfo(
    key: 'background_location',
    displayName: 'Background Location',
    description: 'Access location in background',
    category: PermissionCategory.location,
    androidPermission: 'android.permission.ACCESS_BACKGROUND_LOCATION',
    iosPermissionKey: 'NSLocationAlwaysAndWhenInUseUsageDescription',
    iosDefaultDescription: 'This app needs background location access for continuous tracking.',
  ),

  // Storage & Files
  PermissionInfo(
    key: 'read_storage',
    displayName: 'Read Storage (Legacy)',
    description: 'Read external storage (Android 12 and below)',
    category: PermissionCategory.storage,
    androidPermission: 'android.permission.READ_EXTERNAL_STORAGE',
    iosPermissionKey: 'NSPhotoLibraryUsageDescription',
    iosDefaultDescription: 'This app needs access to your photo library.',
  ),
  PermissionInfo(
    key: 'write_storage',
    displayName: 'Write Storage (Legacy)',
    description: 'Write to external storage (Android 12 and below)',
    category: PermissionCategory.storage,
    androidPermission: 'android.permission.WRITE_EXTERNAL_STORAGE',
    iosPermissionKey: 'NSPhotoLibraryAddUsageDescription',
    iosDefaultDescription: 'This app needs permission to save photos to your library.',
  ),
  PermissionInfo(
    key: 'images',
    displayName: 'Read Images',
    description: 'Read images (Android 13+)',
    category: PermissionCategory.storage,
    androidPermission: 'android.permission.READ_MEDIA_IMAGES',
    iosPermissionKey: 'NSPhotoLibraryUsageDescription',
    iosDefaultDescription: 'This app needs access to your photos.',
  ),
  PermissionInfo(
    key: 'video',
    displayName: 'Read Video',
    description: 'Read videos (Android 13+)',
    category: PermissionCategory.storage,
    androidPermission: 'android.permission.READ_MEDIA_VIDEO',
    iosPermissionKey: 'NSPhotoLibraryUsageDescription',
    iosDefaultDescription: 'This app needs access to your videos.',
  ),
  PermissionInfo(
    key: 'audio_files',
    displayName: 'Read Audio Files',
    description: 'Read audio files (Android 13+)',
    category: PermissionCategory.storage,
    androidPermission: 'android.permission.READ_MEDIA_AUDIO',
    iosPermissionKey: 'NSAppleMusicUsageDescription',
    iosDefaultDescription: 'This app needs access to your music library.',
  ),
  PermissionInfo(
    key: 'manage_storage',
    displayName: 'Manage All Storage',
    description: 'Full storage access (requires Play Store approval)',
    category: PermissionCategory.storage,
    androidPermission: 'android.permission.MANAGE_EXTERNAL_STORAGE',
  ),
  PermissionInfo(
    key: 'visual_user_selected',
    displayName: 'Visual User Selected',
    description: 'Access user-selected photos/videos (Android 14+)',
    category: PermissionCategory.storage,
    androidPermission: 'android.permission.READ_MEDIA_VISUAL_USER_SELECTED',
    iosPermissionKey: 'NSPhotoLibraryUsageDescription',
    iosDefaultDescription: 'This app needs access to selected photos.',
  ),
  PermissionInfo(
    key: 'documents_folder',
    displayName: 'Documents Folder',
    description: 'Access Documents folder (macOS/iOS)',
    category: PermissionCategory.storage,
    androidPermission: 'android.permission.READ_EXTERNAL_STORAGE',
    iosPermissionKey: 'NSDocumentsFolderUsageDescription',
    iosDefaultDescription: 'This app needs access to your Documents folder.',
  ),
  PermissionInfo(
    key: 'downloads_folder',
    displayName: 'Downloads Folder',
    description: 'Access Downloads folder (macOS/iOS)',
    category: PermissionCategory.storage,
    androidPermission: 'android.permission.READ_EXTERNAL_STORAGE',
    iosPermissionKey: 'NSDownloadsFolderUsageDescription',
    iosDefaultDescription: 'This app needs access to your Downloads folder.',
  ),
  PermissionInfo(
    key: 'desktop_folder',
    displayName: 'Desktop Folder',
    description: 'Access Desktop folder (macOS)',
    category: PermissionCategory.storage,
    androidPermission: 'android.permission.READ_EXTERNAL_STORAGE',
    iosPermissionKey: 'NSDesktopFolderUsageDescription',
    iosDefaultDescription: 'This app needs access to your Desktop folder.',
  ),
  PermissionInfo(
    key: 'file_provider',
    displayName: 'File Provider',
    description: 'Access file provider domains (iOS)',
    category: PermissionCategory.storage,
    androidPermission: 'android.permission.READ_EXTERNAL_STORAGE',
    iosPermissionKey: 'NSFileProviderDomainUsageDescription',
    iosDefaultDescription: 'This app needs access to file providers.',
  ),

  // Contacts & Calendar
  PermissionInfo(
    key: 'contacts_read',
    displayName: 'Read Contacts',
    description: 'Read user contacts',
    category: PermissionCategory.contacts,
    androidPermission: 'android.permission.READ_CONTACTS',
    iosPermissionKey: 'NSContactsUsageDescription',
    iosDefaultDescription: 'This app needs access to your contacts.',
  ),
  PermissionInfo(
    key: 'contacts_write',
    displayName: 'Write Contacts',
    description: 'Modify user contacts',
    category: PermissionCategory.contacts,
    androidPermission: 'android.permission.WRITE_CONTACTS',
    iosPermissionKey: 'NSContactsUsageDescription',
    iosDefaultDescription: 'This app needs access to modify your contacts.',
  ),
  PermissionInfo(
    key: 'calendar_read',
    displayName: 'Read Calendar',
    description: 'Read calendar events',
    category: PermissionCategory.contacts,
    androidPermission: 'android.permission.READ_CALENDAR',
    iosPermissionKey: 'NSCalendarsUsageDescription',
    iosDefaultDescription: 'This app needs access to your calendar.',
  ),
  PermissionInfo(
    key: 'calendar_write',
    displayName: 'Write Calendar',
    description: 'Create/modify calendar events',
    category: PermissionCategory.contacts,
    androidPermission: 'android.permission.WRITE_CALENDAR',
    iosPermissionKey: 'NSCalendarsUsageDescription',
    iosDefaultDescription: 'This app needs access to modify your calendar.',
  ),
  PermissionInfo(
    key: 'reminders',
    displayName: 'Reminders',
    description: 'Access reminders (iOS)',
    category: PermissionCategory.contacts,
    androidPermission: 'android.permission.READ_CALENDAR',
    iosPermissionKey: 'NSRemindersUsageDescription',
    iosDefaultDescription: 'This app needs access to your reminders.',
  ),

  // Phone & SMS
  PermissionInfo(
    key: 'phone_call',
    displayName: 'Make Phone Calls',
    description: 'Initiate phone calls',
    category: PermissionCategory.phone,
    androidPermission: 'android.permission.CALL_PHONE',
  ),
  PermissionInfo(
    key: 'phone_read',
    displayName: 'Read Phone State',
    description: 'Read phone state and identity',
    category: PermissionCategory.phone,
    androidPermission: 'android.permission.READ_PHONE_STATE',
  ),
  PermissionInfo(
    key: 'phone_numbers',
    displayName: 'Read Phone Numbers',
    description: 'Read device phone numbers',
    category: PermissionCategory.phone,
    androidPermission: 'android.permission.READ_PHONE_NUMBERS',
  ),
  PermissionInfo(
    key: 'call_log_read',
    displayName: 'Read Call Log',
    description: 'Read call history',
    category: PermissionCategory.phone,
    androidPermission: 'android.permission.READ_CALL_LOG',
  ),
  PermissionInfo(
    key: 'call_log_write',
    displayName: 'Write Call Log',
    description: 'Modify call history',
    category: PermissionCategory.phone,
    androidPermission: 'android.permission.WRITE_CALL_LOG',
  ),
  PermissionInfo(
    key: 'sms_send',
    displayName: 'Send SMS',
    description: 'Send text messages',
    category: PermissionCategory.phone,
    androidPermission: 'android.permission.SEND_SMS',
  ),
  PermissionInfo(
    key: 'sms_read',
    displayName: 'Read SMS',
    description: 'Read text messages',
    category: PermissionCategory.phone,
    androidPermission: 'android.permission.READ_SMS',
  ),
  PermissionInfo(
    key: 'sms_receive',
    displayName: 'Receive SMS',
    description: 'Receive text messages',
    category: PermissionCategory.phone,
    androidPermission: 'android.permission.RECEIVE_SMS',
  ),
  PermissionInfo(
    key: 'mms_receive',
    displayName: 'Receive MMS',
    description: 'Receive multimedia messages',
    category: PermissionCategory.phone,
    androidPermission: 'android.permission.RECEIVE_MMS',
  ),
  PermissionInfo(
    key: 'answer_phone_calls',
    displayName: 'Answer Phone Calls',
    description: 'Programmatically answer incoming calls',
    category: PermissionCategory.phone,
    androidPermission: 'android.permission.ANSWER_PHONE_CALLS',
  ),
  PermissionInfo(
    key: 'add_voicemail',
    displayName: 'Add Voicemail',
    description: 'Add voicemails to the system',
    category: PermissionCategory.phone,
    androidPermission: 'android.permission.ADD_VOICEMAIL',
  ),
  PermissionInfo(
    key: 'use_sip',
    displayName: 'Use SIP',
    description: 'Use SIP service for calls',
    category: PermissionCategory.phone,
    androidPermission: 'android.permission.USE_SIP',
  ),
  PermissionInfo(
    key: 'process_outgoing_calls',
    displayName: 'Process Outgoing Calls',
    description: 'Monitor/modify/abort outgoing calls',
    category: PermissionCategory.phone,
    androidPermission: 'android.permission.PROCESS_OUTGOING_CALLS',
  ),

  // Bluetooth & NFC
  PermissionInfo(
    key: 'bluetooth',
    displayName: 'Bluetooth (Legacy)',
    description: 'Bluetooth access (Android 11 and below)',
    category: PermissionCategory.bluetooth,
    androidPermission: 'android.permission.BLUETOOTH',
    iosPermissionKey: 'NSBluetoothAlwaysUsageDescription',
    iosDefaultDescription: 'This app needs Bluetooth access to connect to devices.',
  ),
  PermissionInfo(
    key: 'bluetooth_admin',
    displayName: 'Bluetooth Admin (Legacy)',
    description: 'Bluetooth admin (Android 11 and below)',
    category: PermissionCategory.bluetooth,
    androidPermission: 'android.permission.BLUETOOTH_ADMIN',
  ),
  PermissionInfo(
    key: 'bluetooth_scan',
    displayName: 'Bluetooth Scan',
    description: 'Scan for Bluetooth devices (Android 12+)',
    category: PermissionCategory.bluetooth,
    androidPermission: 'android.permission.BLUETOOTH_SCAN',
    iosPermissionKey: 'NSBluetoothAlwaysUsageDescription',
    iosDefaultDescription: 'This app needs to scan for Bluetooth devices.',
  ),
  PermissionInfo(
    key: 'bluetooth_connect',
    displayName: 'Bluetooth Connect',
    description: 'Connect to Bluetooth devices (Android 12+)',
    category: PermissionCategory.bluetooth,
    androidPermission: 'android.permission.BLUETOOTH_CONNECT',
    iosPermissionKey: 'NSBluetoothPeripheralUsageDescription',
    iosDefaultDescription: 'This app needs to connect to Bluetooth devices.',
  ),
  PermissionInfo(
    key: 'bluetooth_advertise',
    displayName: 'Bluetooth Advertise',
    description: 'Advertise to Bluetooth devices',
    category: PermissionCategory.bluetooth,
    androidPermission: 'android.permission.BLUETOOTH_ADVERTISE',
  ),
  PermissionInfo(
    key: 'nfc',
    displayName: 'NFC',
    description: 'Near Field Communication',
    category: PermissionCategory.bluetooth,
    androidPermission: 'android.permission.NFC',
    iosPermissionKey: 'NFCReaderUsageDescription',
    iosDefaultDescription: 'This app needs NFC access to read tags.',
  ),
  PermissionInfo(
    key: 'nearby_wifi',
    displayName: 'Nearby WiFi Devices',
    description: 'Discover nearby WiFi devices (Android 13+)',
    category: PermissionCategory.bluetooth,
    androidPermission: 'android.permission.NEARBY_WIFI_DEVICES',
  ),

  // Sensors & Biometrics
  PermissionInfo(
    key: 'biometric',
    displayName: 'Biometric',
    description: 'Use fingerprint/face authentication',
    category: PermissionCategory.sensors,
    androidPermission: 'android.permission.USE_BIOMETRIC',
    iosPermissionKey: 'NSFaceIDUsageDescription',
    iosDefaultDescription: 'This app uses biometric authentication for security.',
  ),
  PermissionInfo(
    key: 'fingerprint',
    displayName: 'Fingerprint (Legacy)',
    description: 'Use fingerprint (deprecated, use biometric)',
    category: PermissionCategory.sensors,
    androidPermission: 'android.permission.USE_FINGERPRINT',
    iosPermissionKey: 'NSFaceIDUsageDescription',
    iosDefaultDescription: 'This app uses fingerprint authentication.',
  ),
  PermissionInfo(
    key: 'sensors',
    displayName: 'Body Sensors',
    description: 'Access body sensors (heart rate, etc.)',
    category: PermissionCategory.sensors,
    androidPermission: 'android.permission.BODY_SENSORS',
    iosPermissionKey: 'NSMotionUsageDescription',
    iosDefaultDescription: 'This app needs access to motion and fitness data.',
  ),
  PermissionInfo(
    key: 'sensors_background',
    displayName: 'Background Body Sensors',
    description: 'Access body sensors in background',
    category: PermissionCategory.sensors,
    androidPermission: 'android.permission.BODY_SENSORS_BACKGROUND',
  ),
  PermissionInfo(
    key: 'activity_recognition',
    displayName: 'Activity Recognition',
    description: 'Detect physical activity (walking, running)',
    category: PermissionCategory.sensors,
    androidPermission: 'android.permission.ACTIVITY_RECOGNITION',
    iosPermissionKey: 'NSMotionUsageDescription',
    iosDefaultDescription: 'This app needs access to detect your physical activity.',
  ),
  PermissionInfo(
    key: 'health',
    displayName: 'Health Data',
    description: 'Access health data (iOS HealthKit)',
    category: PermissionCategory.sensors,
    androidPermission: 'android.permission.BODY_SENSORS',
    iosPermissionKey: 'NSHealthShareUsageDescription',
    iosDefaultDescription: 'This app needs access to your health data.',
  ),
  PermissionInfo(
    key: 'health_update',
    displayName: 'Health Update',
    description: 'Update health data (iOS HealthKit)',
    category: PermissionCategory.sensors,
    androidPermission: 'android.permission.BODY_SENSORS',
    iosPermissionKey: 'NSHealthUpdateUsageDescription',
    iosDefaultDescription: 'This app needs permission to update your health data.',
  ),

  // System & Notifications
  PermissionInfo(
    key: 'notifications',
    displayName: 'Notifications',
    description: 'Post notifications (Android 13+)',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.POST_NOTIFICATIONS',
  ),
  PermissionInfo(
    key: 'system_alert',
    displayName: 'System Alert Window',
    description: 'Draw over other apps',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.SYSTEM_ALERT_WINDOW',
  ),
  PermissionInfo(
    key: 'ignore_battery',
    displayName: 'Ignore Battery Optimization',
    description: 'Request to ignore battery optimizations',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS',
  ),
  PermissionInfo(
    key: 'install_packages',
    displayName: 'Install Packages',
    description: 'Install APK files',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.REQUEST_INSTALL_PACKAGES',
  ),
  PermissionInfo(
    key: 'delete_packages',
    displayName: 'Delete Packages',
    description: 'Uninstall apps',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.REQUEST_DELETE_PACKAGES',
  ),
  PermissionInfo(
    key: 'schedule_exact_alarm',
    displayName: 'Exact Alarms',
    description: 'Schedule exact alarms (Android 12+)',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.SCHEDULE_EXACT_ALARM',
  ),
  PermissionInfo(
    key: 'use_exact_alarm',
    displayName: 'Use Exact Alarms',
    description: 'Use exact alarms (Android 14+)',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.USE_EXACT_ALARM',
  ),
  PermissionInfo(
    key: 'speech_recognition',
    displayName: 'Speech Recognition',
    description: 'Use speech recognition',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.RECORD_AUDIO',
    iosPermissionKey: 'NSSpeechRecognitionUsageDescription',
    iosDefaultDescription: 'This app needs access to speech recognition.',
  ),
  PermissionInfo(
    key: 'siri',
    displayName: 'Siri',
    description: 'Integrate with Siri (iOS)',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.RECORD_AUDIO',
    iosPermissionKey: 'NSSiriUsageDescription',
    iosDefaultDescription: 'This app needs access to Siri for voice commands.',
  ),
  PermissionInfo(
    key: 'tracking',
    displayName: 'App Tracking',
    description: 'Track user across apps (iOS ATT)',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.AD_ID',
    iosPermissionKey: 'NSUserTrackingUsageDescription',
    iosDefaultDescription: 'This app uses tracking to provide personalized ads.',
  ),
  PermissionInfo(
    key: 'picture_in_picture',
    displayName: 'Picture-in-Picture',
    description: 'Enter picture-in-picture mode',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.ENTER_PICTURE_IN_PICTURE_ON_HIDE',
  ),
  PermissionInfo(
    key: 'shortcuts',
    displayName: 'Install Shortcuts',
    description: 'Create home screen shortcuts',
    category: PermissionCategory.system,
    androidPermission: 'com.android.launcher.permission.INSTALL_SHORTCUT',
  ),
  PermissionInfo(
    key: 'query_all_packages',
    displayName: 'Query All Packages',
    description: 'See all installed apps',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.QUERY_ALL_PACKAGES',
  ),
  PermissionInfo(
    key: 'homekit',
    displayName: 'HomeKit',
    description: 'Access HomeKit home automation (iOS)',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.INTERNET',
    iosPermissionKey: 'NSHomeKitUsageDescription',
    iosDefaultDescription: 'This app needs access to control your home devices.',
  ),
  PermissionInfo(
    key: 'local_network',
    displayName: 'Local Network',
    description: 'Access devices on local network (iOS)',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.INTERNET',
    iosPermissionKey: 'NSLocalNetworkUsageDescription',
    iosDefaultDescription: 'This app needs to find and connect to devices on your local network.',
  ),
  PermissionInfo(
    key: 'focus_status',
    displayName: 'Focus Status',
    description: 'Read Focus/Do Not Disturb status (iOS)',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.ACCESS_NOTIFICATION_POLICY',
    iosPermissionKey: 'NSFocusStatusUsageDescription',
    iosDefaultDescription: 'This app needs to check your Focus status.',
  ),
  PermissionInfo(
    key: 'tv_provider',
    displayName: 'TV Provider',
    description: 'Access TV provider account (iOS)',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.INTERNET',
    iosPermissionKey: 'NSVideoSubscriberAccountUsageDescription',
    iosDefaultDescription: 'This app needs access to your TV provider account.',
  ),
  PermissionInfo(
    key: 'access_notification_policy',
    displayName: 'Notification Policy',
    description: 'Access Do Not Disturb settings',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.ACCESS_NOTIFICATION_POLICY',
  ),
  PermissionInfo(
    key: 'bind_notification_listener',
    displayName: 'Notification Listener',
    description: 'Read notifications from other apps',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.BIND_NOTIFICATION_LISTENER_SERVICE',
  ),
  PermissionInfo(
    key: 'media_content_control',
    displayName: 'Media Content Control',
    description: 'Control media playback in other apps',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.MEDIA_CONTENT_CONTROL',
  ),
  PermissionInfo(
    key: 'get_accounts',
    displayName: 'Get Accounts',
    description: 'Get device accounts',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.GET_ACCOUNTS',
  ),
  PermissionInfo(
    key: 'authenticate_accounts',
    displayName: 'Authenticate Accounts',
    description: 'Manage accounts on device',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.AUTHENTICATE_ACCOUNTS',
  ),
  PermissionInfo(
    key: 'read_sync_settings',
    displayName: 'Read Sync Settings',
    description: 'Read sync settings and status',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.READ_SYNC_SETTINGS',
  ),
  PermissionInfo(
    key: 'write_sync_settings',
    displayName: 'Write Sync Settings',
    description: 'Modify sync settings',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.WRITE_SYNC_SETTINGS',
  ),
  PermissionInfo(
    key: 'write_settings',
    displayName: 'Write Settings',
    description: 'Modify system settings',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.WRITE_SETTINGS',
  ),
  PermissionInfo(
    key: 'read_app_usage',
    displayName: 'Read App Usage',
    description: 'Access app usage statistics',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.PACKAGE_USAGE_STATS',
  ),
  PermissionInfo(
    key: 'set_wallpaper',
    displayName: 'Set Wallpaper',
    description: 'Change device wallpaper',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.SET_WALLPAPER',
  ),
  PermissionInfo(
    key: 'set_wallpaper_hints',
    displayName: 'Set Wallpaper Hints',
    description: 'Set wallpaper size hints',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.SET_WALLPAPER_HINTS',
  ),
  PermissionInfo(
    key: 'expand_status_bar',
    displayName: 'Expand Status Bar',
    description: 'Expand/collapse status bar',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.EXPAND_STATUS_BAR',
  ),
  PermissionInfo(
    key: 'modify_audio_settings',
    displayName: 'Modify Audio Settings',
    description: 'Change audio settings',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.MODIFY_AUDIO_SETTINGS',
  ),
  PermissionInfo(
    key: 'disable_keyguard',
    displayName: 'Disable Keyguard',
    description: 'Disable screen lock temporarily',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.DISABLE_KEYGUARD',
  ),
  PermissionInfo(
    key: 'kill_background_processes',
    displayName: 'Kill Background Processes',
    description: 'Kill background processes',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.KILL_BACKGROUND_PROCESSES',
  ),
  PermissionInfo(
    key: 'reorder_tasks',
    displayName: 'Reorder Tasks',
    description: 'Reorder running tasks',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.REORDER_TASKS',
  ),
  PermissionInfo(
    key: 'read_sync_stats',
    displayName: 'Read Sync Stats',
    description: 'Read sync statistics',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.READ_SYNC_STATS',
  ),
  PermissionInfo(
    key: 'transmit_ir',
    displayName: 'Transmit IR',
    description: 'Use infrared transmitter',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.TRANSMIT_IR',
  ),
  PermissionInfo(
    key: 'request_companion_run_background',
    displayName: 'Companion Run in Background',
    description: 'Allow companion app to run in background',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.REQUEST_COMPANION_RUN_IN_BACKGROUND',
  ),
  PermissionInfo(
    key: 'request_companion_use_data_background',
    displayName: 'Companion Use Data in Background',
    description: 'Allow companion app to use data in background',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.REQUEST_COMPANION_USE_DATA_IN_BACKGROUND',
  ),
  PermissionInfo(
    key: 'request_companion_start_foreground',
    displayName: 'Companion Start Foreground',
    description: 'Allow companion app to start foreground services',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.REQUEST_COMPANION_START_FOREGROUND_SERVICES_FROM_BACKGROUND',
  ),
  PermissionInfo(
    key: 'manage_own_calls',
    displayName: 'Manage Own Calls',
    description: 'Manage own VoIP calls through system',
    category: PermissionCategory.phone,
    androidPermission: 'android.permission.MANAGE_OWN_CALLS',
  ),
  PermissionInfo(
    key: 'read_voicemail',
    displayName: 'Read Voicemail',
    description: 'Read voicemail messages',
    category: PermissionCategory.phone,
    androidPermission: 'android.permission.READ_VOICEMAIL',
  ),
  PermissionInfo(
    key: 'write_voicemail',
    displayName: 'Write Voicemail',
    description: 'Write voicemail messages',
    category: PermissionCategory.phone,
    androidPermission: 'android.permission.WRITE_VOICEMAIL',
  ),
  PermissionInfo(
    key: 'accept_handover',
    displayName: 'Accept Handover',
    description: 'Accept call handover from another app',
    category: PermissionCategory.phone,
    androidPermission: 'android.permission.ACCEPT_HANDOVER',
  ),
  PermissionInfo(
    key: 'uwb_ranging',
    displayName: 'UWB Ranging',
    description: 'Ultra-wideband ranging for precise location',
    category: PermissionCategory.bluetooth,
    androidPermission: 'android.permission.UWB_RANGING',
  ),
  PermissionInfo(
    key: 'access_location_extra_commands',
    displayName: 'Location Extra Commands',
    description: 'Send extra commands to location provider',
    category: PermissionCategory.location,
    androidPermission: 'android.permission.ACCESS_LOCATION_EXTRA_COMMANDS',
  ),
  PermissionInfo(
    key: 'location_always',
    displayName: 'Location Always (iOS)',
    description: 'Access location always (iOS legacy)',
    category: PermissionCategory.location,
    androidPermission: 'android.permission.ACCESS_FINE_LOCATION',
    iosPermissionKey: 'NSLocationAlwaysUsageDescription',
    iosDefaultDescription: 'This app needs to access your location at all times.',
  ),
  PermissionInfo(
    key: 'get_package_size',
    displayName: 'Get Package Size',
    description: 'Get size of installed packages',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.GET_PACKAGE_SIZE',
  ),
  PermissionInfo(
    key: 'clear_app_cache',
    displayName: 'Clear App Cache',
    description: 'Clear cache of all apps',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.CLEAR_APP_CACHE',
  ),
  PermissionInfo(
    key: 'read_install_sessions',
    displayName: 'Read Install Sessions',
    description: 'Read install sessions',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.READ_INSTALL_SESSIONS',
  ),
  PermissionInfo(
    key: 'receive_wap_push',
    displayName: 'Receive WAP Push',
    description: 'Receive WAP push messages',
    category: PermissionCategory.phone,
    androidPermission: 'android.permission.RECEIVE_WAP_PUSH',
  ),
  PermissionInfo(
    key: 'bind_quick_settings_tile',
    displayName: 'Quick Settings Tile',
    description: 'Provide quick settings tile',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.BIND_QUICK_SETTINGS_TILE',
  ),
  PermissionInfo(
    key: 'bind_device_admin',
    displayName: 'Device Admin',
    description: 'Bind to device administration receiver',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.BIND_DEVICE_ADMIN',
  ),
  PermissionInfo(
    key: 'bind_accessibility_service',
    displayName: 'Accessibility Service',
    description: 'Bind to accessibility service',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.BIND_ACCESSIBILITY_SERVICE',
  ),
  PermissionInfo(
    key: 'bind_autofill_service',
    displayName: 'Autofill Service',
    description: 'Bind to autofill service',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.BIND_AUTOFILL_SERVICE',
  ),
  PermissionInfo(
    key: 'bind_vr_listener_service',
    displayName: 'VR Listener Service',
    description: 'Bind to VR listener service',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.BIND_VR_LISTENER_SERVICE',
  ),
  PermissionInfo(
    key: 'bind_wallpaper',
    displayName: 'Wallpaper Service',
    description: 'Bind to wallpaper service',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.BIND_WALLPAPER',
  ),
  PermissionInfo(
    key: 'bind_voice_interaction',
    displayName: 'Voice Interaction',
    description: 'Bind to voice interaction service',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.BIND_VOICE_INTERACTION',
  ),
  PermissionInfo(
    key: 'bind_vpn_service',
    displayName: 'VPN Service',
    description: 'Bind to VPN service',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.BIND_VPN_SERVICE',
  ),
  PermissionInfo(
    key: 'request_password_complexity',
    displayName: 'Request Password Complexity',
    description: 'Request password complexity',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.REQUEST_PASSWORD_COMPLEXITY',
  ),
  PermissionInfo(
    key: 'use_full_screen_intent',
    displayName: 'Full Screen Intent',
    description: 'Use full screen intent notifications',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.USE_FULL_SCREEN_INTENT',
  ),
  PermissionInfo(
    key: 'start_foreground_services_from_background',
    displayName: 'Start Foreground from Background',
    description: 'Start foreground services from background',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND',
  ),
  PermissionInfo(
    key: 'high_sampling_rate_sensors',
    displayName: 'High Sampling Rate Sensors',
    description: 'Access sensors at high sampling rate',
    category: PermissionCategory.sensors,
    androidPermission: 'android.permission.HIGH_SAMPLING_RATE_SENSORS',
  ),
  PermissionInfo(
    key: 'update_packages_without_user_action',
    displayName: 'Update Packages Silently',
    description: 'Update packages without user action',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.UPDATE_PACKAGES_WITHOUT_USER_ACTION',
  ),
  PermissionInfo(
    key: 'request_observe_companion_device_presence',
    displayName: 'Observe Companion Device',
    description: 'Observe companion device presence',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.REQUEST_OBSERVE_COMPANION_DEVICE_PRESENCE',
  ),
  PermissionInfo(
    key: 'deliver_companion_messages',
    displayName: 'Deliver Companion Messages',
    description: 'Deliver messages for companion device',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.DELIVER_COMPANION_MESSAGES',
  ),
  PermissionInfo(
    key: 'schedule_exact_alarm_legacy',
    displayName: 'Schedule Exact Alarm (Legacy)',
    description: 'Schedule exact alarms (legacy permission)',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.SCHEDULE_EXACT_ALARM',
  ),
  PermissionInfo(
    key: 'read_basic_phone_state',
    displayName: 'Read Basic Phone State',
    description: 'Read basic phone state (Android 11+)',
    category: PermissionCategory.phone,
    androidPermission: 'android.permission.READ_BASIC_PHONE_STATE',
  ),
  PermissionInfo(
    key: 'nearby_devices',
    displayName: 'Nearby Devices',
    description: 'Discover and connect to nearby devices',
    category: PermissionCategory.bluetooth,
    androidPermission: 'android.permission.NEARBY_DEVICES',
  ),
  PermissionInfo(
    key: 'read_media_audio_video',
    displayName: 'Read Media (Audio/Video)',
    description: 'Read audio and video files',
    category: PermissionCategory.storage,
    androidPermission: 'android.permission.READ_MEDIA_AUDIO',
  ),
  PermissionInfo(
    key: 'detect_screen_capture',
    displayName: 'Detect Screen Capture',
    description: 'Detect when screen is being captured',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.DETECT_SCREEN_CAPTURE',
  ),
  PermissionInfo(
    key: 'read_nearby_streaming_policy',
    displayName: 'Read Nearby Streaming Policy',
    description: 'Read nearby streaming policy',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.READ_NEARBY_STREAMING_POLICY',
  ),
  PermissionInfo(
    key: 'credential_manager',
    displayName: 'Credential Manager',
    description: 'Use credential manager',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.CREDENTIAL_MANAGER_SET_ALLOWED_PROVIDERS',
  ),
  PermissionInfo(
    key: 'run_user_initiated_jobs',
    displayName: 'Run User Initiated Jobs',
    description: 'Run user-initiated data transfer jobs',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.RUN_USER_INITIATED_JOBS',
  ),
  PermissionInfo(
    key: 'foreground_service_media_projection',
    displayName: 'Foreground Service (Media Projection)',
    description: 'Run media projection foreground service',
    category: PermissionCategory.network,
    androidPermission: 'android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION',
  ),
  PermissionInfo(
    key: 'foreground_service_file_management',
    displayName: 'Foreground Service (File Management)',
    description: 'Run file management foreground service',
    category: PermissionCategory.network,
    androidPermission: 'android.permission.FOREGROUND_SERVICE_FILE_MANAGEMENT',
  ),
  PermissionInfo(
    key: 'subscribe_to_keyguard_locked_state',
    displayName: 'Subscribe to Keyguard State',
    description: 'Subscribe to keyguard locked state changes',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.SUBSCRIBE_TO_KEYGUARD_LOCKED_STATE',
  ),
  PermissionInfo(
    key: 'read_assistant_app_search_data',
    displayName: 'Read Assistant App Search Data',
    description: 'Read assistant app search data',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.READ_ASSISTANT_APP_SEARCH_DATA',
  ),
  PermissionInfo(
    key: 'execute_app_action',
    displayName: 'Execute App Action',
    description: 'Execute app actions',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.EXECUTE_APP_ACTION',
  ),
  PermissionInfo(
    key: 'request_companion_self_managed',
    displayName: 'Companion Self Managed',
    description: 'Request self-managed companion device',
    category: PermissionCategory.system,
    androidPermission: 'android.permission.REQUEST_COMPANION_SELF_MANAGED',
  ),
];