)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1000000,"name":"Chirayu Desai","display_name":"Chirayu Desai","username":"chirayudesai","avatars":[{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"ac499e3173a0062ac8b2141c75b08625eb491ac3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"0693219e_2410675f","updated":"2023-09-18 16:34:08.000000000","message":"Carrier apps get certain perms granted, could look into seeing if we can re-use that mechanism.\n\nIt already has package name and signature checks.","commit_id":"f5e84444a62603b1407e8714c2b66bff2401856c"},{"author":{"_account_id":1000000,"name":"Chirayu Desai","display_name":"Chirayu Desai","username":"chirayudesai","avatars":[{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"fc1b0c0c3d504ce834555babc0fec6c78cf96713","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"915b2be5_0a80fd45","updated":"2023-01-23 16:34:14.000000000","message":"Just for testing.\n\nAlso useful: https://git.sr.ht/~dylanger/Google-App-Stub","commit_id":"f5e84444a62603b1407e8714c2b66bff2401856c"},{"author":{"_account_id":1000000,"name":"Chirayu Desai","display_name":"Chirayu Desai","username":"chirayudesai","avatars":[{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"833f70f43cae5b86cbc9332526411dd8f665d829","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"9e85d869_d4e52e0a","updated":"2023-11-15 20:58:13.000000000","message":"Needs update for 14","commit_id":"f5e84444a62603b1407e8714c2b66bff2401856c"},{"author":{"_account_id":1000000,"name":"Chirayu Desai","display_name":"Chirayu Desai","username":"chirayudesai","avatars":[{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"64b4368cb95eea441e4ffdd6aaaa9cdce1799550","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"cd6d55e3_008231eb","updated":"2023-09-01 18:32:56.000000000","message":"There could be a toggle for this.\n\nEasiest way would be sysprop set via Settings, read here.\n\n","commit_id":"f5e84444a62603b1407e8714c2b66bff2401856c"},{"author":{"_account_id":1000103,"name":"Charlyo","email":"cgarriga@protonmail.com","username":"Charlyo","avatars":[{"url":"https://www.gravatar.com/avatar/fbf647872cf36e1067db656122159007.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/fbf647872cf36e1067db656122159007.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/fbf647872cf36e1067db656122159007.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/fbf647872cf36e1067db656122159007.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"5f167222712348d6b098df6c4adeee2ab8a09dd9","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"a384f59d_3f792359","updated":"2023-12-21 15:10:29.000000000","message":"https://github.com/microg/GmsCore/issues/897#issuecomment-1862785662\nThis supposedly should be the minimum required permissions.","commit_id":"f5e84444a62603b1407e8714c2b66bff2401856c"},{"author":{"_account_id":1000000,"name":"Chirayu Desai","display_name":"Chirayu Desai","username":"chirayudesai","avatars":[{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"7d328a2a4a5f099c8851dbce48c3e39a7a0a8b2e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"24f3406c_2a036a9f","in_reply_to":"915b2be5_0a80fd45","updated":"2023-06-28 17:37:20.000000000","message":"Alternative: Ship the stub.","commit_id":"f5e84444a62603b1407e8714c2b66bff2401856c"},{"author":{"_account_id":1000103,"name":"Charlyo","email":"cgarriga@protonmail.com","username":"Charlyo","avatars":[{"url":"https://www.gravatar.com/avatar/fbf647872cf36e1067db656122159007.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/fbf647872cf36e1067db656122159007.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/fbf647872cf36e1067db656122159007.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/fbf647872cf36e1067db656122159007.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"12c4de2542cc1c148898679ceb3f70c80e26fe49","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"05a52038_4006845b","in_reply_to":"9e85d869_d4e52e0a","updated":"2023-12-22 12:22:12.000000000","message":"https://github.com/microg/GmsCore/issues/897#issuecomment-1862785662\nThis supposedly should be the minimum required permissions.","commit_id":"f5e84444a62603b1407e8714c2b66bff2401856c"}],"services/core/java/com/android/server/pm/permission/PermissionManagerServiceImpl.java":[{"author":{"_account_id":1000000,"name":"Chirayu Desai","display_name":"Chirayu Desai","username":"chirayudesai","avatars":[{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"e1c72f98411fce74377c785633f556ebc5016121","unresolved":true,"context_lines":[{"line_number":178,"context_line":""},{"line_number":179,"context_line":"    /** Define allowed permissions for Android Auto */"},{"line_number":180,"context_line":"    private ArrayList\u003cString\u003e androidAutoPerms \u003d new ArrayList\u003cString\u003e("},{"line_number":181,"context_line":"    Arrays.asList(\"android.permission.MODIFY_AUDIO_ROUTING\", \"android.permission.REAL_GET_TASKS\", \"android.permission.LOCAL_MAC_ADDRESS\", \"android.permission.MANAGE_USB\", \"android.permission.MANAGE_USERS\", \"android.permission.BLUETOOTH_PRIVILEGED\", \"android.permission.TOGGLE_AUTOMOTIVE_PROJECTION\", \"android.permission.READ_PHONE_NUMBERS\"));"},{"line_number":182,"context_line":"    Set\u003cString\u003e GOOGLEAUTOHASH \u003d new ArraySet\u003c\u003e(Arrays.asList(\"FDB00C43DBDE8B51CB312AA81D3B5FA17713ADB94B28F598D77F8EB89DACEEDF\"));"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":""}],"source_content_type":"text/x-java","patch_set":1,"id":"62138a61_88823bf5","line":181,"updated":"2023-06-29 20:37:35.000000000","message":"The beauty of this is that you can get away with a lower set of permissions than full priv-app\n\n8 here vs 17 at https://review.calyxos.org/c/CalyxOS/vendor_calyx/+/18108/3/prebuilt/aa/permissions_com.google.android.projection.gearhead.xml","commit_id":"f5e84444a62603b1407e8714c2b66bff2401856c"},{"author":{"_account_id":1000000,"name":"Chirayu Desai","display_name":"Chirayu Desai","username":"chirayudesai","avatars":[{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"dd798f20a9552be821cb3413f085b5d05115b899","unresolved":true,"context_lines":[{"line_number":178,"context_line":""},{"line_number":179,"context_line":"    /** Define allowed permissions for Android Auto */"},{"line_number":180,"context_line":"    private ArrayList\u003cString\u003e androidAutoPerms \u003d new ArrayList\u003cString\u003e("},{"line_number":181,"context_line":"    Arrays.asList(\"android.permission.MODIFY_AUDIO_ROUTING\", \"android.permission.REAL_GET_TASKS\", \"android.permission.LOCAL_MAC_ADDRESS\", \"android.permission.MANAGE_USB\", \"android.permission.MANAGE_USERS\", \"android.permission.BLUETOOTH_PRIVILEGED\", \"android.permission.TOGGLE_AUTOMOTIVE_PROJECTION\", \"android.permission.READ_PHONE_NUMBERS\"));"},{"line_number":182,"context_line":"    Set\u003cString\u003e GOOGLEAUTOHASH \u003d new ArraySet\u003c\u003e(Arrays.asList(\"FDB00C43DBDE8B51CB312AA81D3B5FA17713ADB94B28F598D77F8EB89DACEEDF\"));"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":""}],"source_content_type":"text/x-java","patch_set":1,"id":"cb5ffa04_63f225ce","line":181,"in_reply_to":"62138a61_88823bf5","updated":"2023-07-03 20:25:04.000000000","message":"`deny-permission` is a thing (Thanks vzw!) so we should be able to achieve the same reduced list in theory.","commit_id":"f5e84444a62603b1407e8714c2b66bff2401856c"},{"author":{"_account_id":1000062,"name":"Tommy Webb","display_name":"Tommy Webb","email":"tmwcommits@gmail.com","username":"t-m-w","avatars":[{"url":"https://www.gravatar.com/avatar/81045b66f0d3b84f936e1445ca4f5f33.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/81045b66f0d3b84f936e1445ca4f5f33.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/81045b66f0d3b84f936e1445ca4f5f33.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/81045b66f0d3b84f936e1445ca4f5f33.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"4422ab92b4b17b51360cefd1aff953d5a748597c","unresolved":true,"context_lines":[{"line_number":968,"context_line":"                return PackageManager.PERMISSION_DENIED;"},{"line_number":969,"context_line":"            }"},{"line_number":970,"context_line":""},{"line_number":971,"context_line":"            if (pkg.getPackageName() \u003d\u003d \"com.google.android.projection.gearhead\") {"},{"line_number":972,"context_line":"             if(pkg.getSigningDetails().hasAncestorOrSelfWithDigest(GOOGLEAUTOHASH)) {"},{"line_number":973,"context_line":"                 if (androidAutoPerms.contains(permissionName)) {"},{"line_number":974,"context_line":"                     return PackageManager.PERMISSION_GRANTED;"}],"source_content_type":"text/x-java","patch_set":1,"id":"d29ca976_641d11b1","line":971,"range":{"start_line":971,"start_character":36,"end_line":971,"end_character":40},"updated":"2023-11-08 15:57:27.000000000","message":"should use `.equals()`","commit_id":"f5e84444a62603b1407e8714c2b66bff2401856c"},{"author":{"_account_id":1000000,"name":"Chirayu Desai","display_name":"Chirayu Desai","username":"chirayudesai","avatars":[{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/00000000000000000000000000000000.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"017ce659026764fef8cfb7cd9d9e071f6f5e1a3b","unresolved":false,"context_lines":[{"line_number":968,"context_line":"                return PackageManager.PERMISSION_DENIED;"},{"line_number":969,"context_line":"            }"},{"line_number":970,"context_line":""},{"line_number":971,"context_line":"            if (pkg.getPackageName() \u003d\u003d \"com.google.android.projection.gearhead\") {"},{"line_number":972,"context_line":"             if(pkg.getSigningDetails().hasAncestorOrSelfWithDigest(GOOGLEAUTOHASH)) {"},{"line_number":973,"context_line":"                 if (androidAutoPerms.contains(permissionName)) {"},{"line_number":974,"context_line":"                     return PackageManager.PERMISSION_GRANTED;"}],"source_content_type":"text/x-java","patch_set":1,"id":"8ac30b6f_3cc3867d","line":971,"range":{"start_line":971,"start_character":36,"end_line":971,"end_character":40},"in_reply_to":"d29ca976_641d11b1","updated":"2025-02-10 20:57:58.000000000","message":"Done","commit_id":"f5e84444a62603b1407e8714c2b66bff2401856c"}]}
