Give each feature only the system access it can justify
Do not approve every system permission during setup. Start with the feature you intend to use, wait until you invoke it, and grant the smallest option that completes that action. A useful permission boundary has six fields: feature, system resource, trigger moment, access scope, no-permission fallback and revocation test. Apply that card separately to microphone, camera, photos, contacts, location, Bluetooth, nearby devices, local network and notifications. An operating-system permission governs future access to a device resource; it does not explain service-side storage, sharing or deletion of data already uploaded. Keep those account controls in a separate column.
Inventory features before permissions
List only features you use or plan to test: voice input, taking a new picture, attaching an existing image, finding known contacts, location-based output, connecting an accessory, discovering a device on the local network, or receiving notifications. Beside each feature, write the exact system resource it needs. Do not copy the entire permission page into a single “required” list. Android says many tasks can use alternatives without broad runtime permission, and recommends waiting until the person invokes the relevant action. If a feature has no named trigger, visible output or explanation, leave its permission off and mark the mapping unresolved.
Ask at the moment of use and read the system prompt
A permission request is easier to evaluate when it follows the button that needs it: tap record before microphone, tap scan before camera, tap choose before photos. Android's runtime guidance recommends asking in context, allowing the user to cancel and keeping other parts of the app usable when permission is denied. Read the operating-system dialog rather than relying on a page styled by the app. Note whether the choice is one-time, selected items, approximate, while using or broader. If several permissions appear at startup with no feature action, deny or postpone them and open each feature deliberately later.
Prefer a picker or single action over a library
A selected-item route often gives enough access without opening an entire collection. Android documents photo and contact pickers and other scoped mechanisms as alternatives to broad permission. For an attachment, choose one photo or file; for a profile picture, consider the system camera action or one selected image; for inviting someone, enter an address manually or use a contact picker if available. The exact options depend on platform and version, so record the choice you actually see. A narrower route is useful only if the feature still works; verify upload, crop, cancel and retry with a neutral sample before using personal material.
Separate sensor access from saved results
Microphone access can enable recording, but a saved audio clip, transcript, chat attachment or downloaded file becomes a different object. Camera access can create an image that also enters the photo library, cloud backup, message history or export. Contacts access may support discovery while the service also stores selected identifiers. System denial stops or limits the next read; it does not necessarily delete existing recordings, images, derived text, uploaded contact matches or shared copies. For each feature, add a storage row naming device copy, service object, derived item, recipient and deletion control. This prevents a permission switch from being mistaken for a complete data closeout.
Review hardware and network permissions independently
Bluetooth, nearby devices and local-network access are not interchangeable. Name the accessory, peer or local service the feature is supposed to reach, whether discovery is needed once or repeatedly, and what visible state confirms connection. Do not grant them simply because a companion app offers optional integrations. Apple lets users review access categories such as Bluetooth and Local Network in privacy settings, while camera and microphone use visible indicators. Use an indicator as a prompt to inspect, not proof of inappropriate access. Disable the optional integration, revoke its permission and confirm that ordinary chat remains available.
Run a revocation matrix after setup and updates
Create one row per permission. Record granted scope, feature tested, expected behavior after denial, actual behavior, stored objects left behind and next review trigger. Revoke one permission at a time, reopen the app and test the named feature plus an unrelated core action. A good reduction blocks or narrows only the dependent feature and explains how to re-enable it without forcing unrelated access. Unexpected repeated prompts, unrelated failure or access after revocation belongs in the result. Review again after a major app or operating-system update, when enabling a new integration, or when you stop using a feature. Remove permissions whose feature has no current owner.
Keep operating-system and account controls in two columns
Finish with two columns. The system column covers camera, microphone, photos, contacts, location, nearby resources, local network and notifications. The account column covers history, uploads, transcripts, memories, sharing, model-related choices, exports and deletion. A system switch should never be used as evidence that an account object disappeared, and an in-app toggle should not be assumed to override the operating system. Record the exact route for each change and one observable test. The final state can be allowed for this feature, selected items only, allowed while using, denied with fallback, or unresolved. It should not be “allow everything because the app asked.”
Common questions
Should I grant all permissions when installing a companion app?
No. Wait for a feature action, read the system prompt and grant only the narrow option that completes it.
Does revoking microphone permission delete old voice notes?
No. It limits future microphone access; recordings, transcripts and uploads need their own deletion controls.
Is a photo picker different from full photo-library access?
Often yes. A picker can provide only selected items; use the narrow route when it completes the task.
