Skip to content

Conversation

@tylervick
Copy link

Motivation

There have been several new user permissions introduced over the last couple of major iOS versions. This change adds the missing permissions that may be modified via existing TCC.db queries.

Notably, the "Health" permission is missing since it requires modification to a standalone healthdb.sqlite database. This will be implemented in a future PR.

The following permissions have been added:

  • calendar
  • biometrics (aka FaceID)
  • media
  • reminders
  • motion
  • siri
  • speech
  • userTracking

Test Plan

  • Run idb approve -h
  • Verify the output contains added permissions:
usage: idb approve [-h] [--scheme SCHEME] [--udid UDID]
                       [--log {DEBUG,INFO,WARNING,ERROR,CRITICAL}] [--json]
                       bundle_id
                       {photos,camera,contacts,url,location,notification,microphone,calendar,faceid,media,reminders,motion,siri,speech,user_tracking}
                       [{photos,camera,contacts,url,location,notification,microphone,calendar,faceid,media,reminders,motion,siri,speech,user_tracking} ...]
  • Grant any/all of the introduced permissions for a valid bundle ID:

    • idb approve com.example.app calendar
  • Verify the supplied permissions have been successfully granted for the bundle ID

  • Revoke any/all of the introduced permissions for a valid bundle ID:

    • idb revoke com.example.app calendar
  • Verify the supplied permissions have been successfully revoked for the bundle ID

Related PRs

@facebook-github-bot
Copy link

@grzmiel has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

Copy link

@grzmiel grzmiel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You have to add those entries to RevokeRequest as well.

Permission.LOCATION: RevokeRequest.LOCATION,
Permission.NOTIFICATION: RevokeRequest.NOTIFICATION,
Permission.MICROPHONE: RevokeRequest.MICROPHONE,
Permission.CALENDAR: ApproveRequest.CALENDAR,
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Those should be RevokeRequest

LOCATION = 4;
NOTIFICATION = 5;
MICROPHONE = 6;
CALENDAR = 7;
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add the same entries in the RevokeRequest below

@fleytman
Copy link

Do you have any new about this PR?

@fleytman
Copy link

These are very useful changes, what's stopping you from making a merge of changes at this point?

@tylervick tylervick requested a review from grzmiel December 3, 2023 16:47
@tylervick
Copy link
Author

@fleytman unfortunately I don't have permission to merge this - I just re-requested a review from @grzmiel, perhaps they can help

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants