)]}'
{
  "commit": "35cda39422acdeb3fa47ca60f131678e52dbfcb3",
  "tree": "7e5ffcbe25bcbac09a1fa1f8be6383292c002f65",
  "parents": [
    "2a071d69b455399474d56cd2099e9944aec83224"
  ],
  "author": {
    "name": "Jeff Davidson",
    "email": "jpd@google.com",
    "time": "Mon Feb 27 09:46:00 2017 -0800"
  },
  "committer": {
    "name": "Jeff Davidson",
    "email": "jpd@google.com",
    "time": "Mon Apr 03 11:17:53 2017 -0700"
  },
  "message": "Squashed merge of master-sim into master.\n\nIncludes the following commits:\n\n\u003d\u003d\n\nNew system feature: eUICC.\n\nPresence of this feature implies that eUICC-related APIs are expected\nto function as long as an eUICC is present in the device. Note that an\neUICC may be embedded in the device but may also be removable.\n\n\u003d\u003d\n\nAdd empty EuiccManager API and plumbing.\n\n\u003d\u003d\n\nAdd stub EuiccService.\n\nEuiccService is the class that the LPA app must implement; for now,\njust define the action and priority so that the implementation can be\nfound. Actual methods will come later.\n\nAlso declare two relevant permissions: BIND_EUICC_SERVICE, which the\nimplementation must require (so that nobody else can bind to the\nservice directly), and WRITE_EMBEDDED_SUBSCRIPTIONS, which permits\nsignature|privileged apps and CTS (via development) to access\nEuiccManager APIs.\n\n\u003d\u003d\n\nAdd UiccAccessRule based off UiccCarrierPrivilegeRules#AccessRule.\n\nThis class can be used to transfer access rules between an\nEuiccService implementation and the platform.\n\nWe also add a simple encoding/decoding of a list of rules so that they\nmay be stored in the subscription info table.\n\n\u003d\u003d\n\nAdd getEid() to EuiccManager/EuiccService.\n\ngetEid() fetches the EID. It requires either a privileged permission\n(READ_PRIVILEGED_PHONE_STATE) or carrier privileges on the\ncurrently-active profile. Until there is a use case that requires\nopening this up to apps with only READ_PHONE_STATE, we shouldn\u0027t do\nso.\n\nTo avoid churn in the future, the API signatures for EuiccService\ninclude a slot ID to identify which SIM slot is being used. However,\nthis parameter is currently not populated correctly (nor is it usable,\nas no Telephony APIs accept a slot ID to address commands). There is\nno need to expose it yet in the EuiccManager APIs as we expect to\nfollow the TelephonyManager pattern of allowing per-slot instances of\nEuiccManager in the future while keeping other method signatures the\nsame.\n\n\u003d\u003d\n\nDefine Euicc UI actions in EuiccManager/EuiccService.\n\nThe EuiccManager actions are to be implemented by the platform (and\nonly the platform), which forwards the actions to the active\nimplementation.\n\nAlso, remove our explicit priority meta-data tag as we can just rely\non android:priority in the corresponding intent-filter.\n\n\u003d\u003d\n\nAPIs for downloading embedded subscriptions.\n\nIncludes:\n\n-getDownloadableSubscriptionMetadata, used by the platform and LUI to\nfetch metadata about a downloadable subscription. The platform will\nuse this to perform the necessary permission checks (only allowing\notherwise-unprivileged apps to download profiles that are permitted\nper the subscription metadata), and the LUI can use this to present\nthe name of the profile.\n\n-downloadSubscription, to actually perform a profile download.\n\nThe stub for startResolutionActivity is included but not implemented;\nresolution activities will be handled in a follow-up change.\n\n\u003d\u003d\n\nTest: TreeHugger\nChange-Id: I47b1da5a69f0736012cb137e02cd6c4e07fdaace\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "08ef6f59fe7bdf68bb80fe3a5c96e70ea68cfd22",
      "old_mode": 33188,
      "old_path": "Android.mk",
      "new_id": "4fbe09422a4b3a432e48dab69c6bbe4c434e7773",
      "new_mode": 33188,
      "new_path": "Android.mk"
    },
    {
      "type": "modify",
      "old_id": "9b349dd85614cbcf1a54e58f883abd02551a66e3",
      "old_mode": 33188,
      "old_path": "core/java/android/app/SystemServiceRegistry.java",
      "new_id": "4c217debb07dd3c7fbca2ce40079f0567bebb26e",
      "new_mode": 33188,
      "new_path": "core/java/android/app/SystemServiceRegistry.java"
    },
    {
      "type": "modify",
      "old_id": "dbbfe308868c834006f51ec346014ee7e74ad8c6",
      "old_mode": 33188,
      "old_path": "core/java/android/content/Context.java",
      "new_id": "aa2adc74bc88f0e621d482a1d4ef382650a8c4e7",
      "new_mode": 33188,
      "new_path": "core/java/android/content/Context.java"
    },
    {
      "type": "modify",
      "old_id": "136c13b6f37db66f69b9e497518d36f67a0dd582",
      "old_mode": 33188,
      "old_path": "core/java/android/content/pm/PackageManager.java",
      "new_id": "17cb027e045d01d3a2ddc97fbd0d449136cef251",
      "new_mode": 33188,
      "new_path": "core/java/android/content/pm/PackageManager.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "66ec999b6ce8fa92bbba4637f1eb64cb17625a07",
      "new_mode": 33188,
      "new_path": "core/java/android/service/euicc/DownloadResult.aidl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0aa55fbbc0ffb3828bd8f3ccd44914800b087fe9",
      "new_mode": 33188,
      "new_path": "core/java/android/service/euicc/DownloadResult.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6407507549b1d4265a8ef1921b4945ea04bec284",
      "new_mode": 33188,
      "new_path": "core/java/android/service/euicc/EuiccService.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "791ad9b469efb02d1c4c68c5a543b53c36f1b2bf",
      "new_mode": 33188,
      "new_path": "core/java/android/service/euicc/GetDownloadableSubscriptionMetadataResult.aidl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b7f46fac2461003f6fd3cf886386effc613595ef",
      "new_mode": 33188,
      "new_path": "core/java/android/service/euicc/GetDownloadableSubscriptionMetadataResult.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0677cbe3ca1c9bb9d8ad482e173d9b7680651ce0",
      "new_mode": 33188,
      "new_path": "core/java/android/service/euicc/IDownloadSubscriptionCallback.aidl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "58fe262c8541e72e67987b68e81b478170edcb79",
      "new_mode": 33188,
      "new_path": "core/java/android/service/euicc/IEuiccService.aidl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3353061ad93e658468e5e11530be18b73f404f2c",
      "new_mode": 33188,
      "new_path": "core/java/android/service/euicc/IGetDownloadableSubscriptionMetadataCallback.aidl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "35ee9c25a48eca38d4d1e66223e55ebaf0087545",
      "new_mode": 33188,
      "new_path": "core/java/android/service/euicc/IGetEidCallback.aidl"
    },
    {
      "type": "modify",
      "old_id": "1ddd2f50fa0607e187029be4d9ec4eae906440a0",
      "old_mode": 33188,
      "old_path": "core/res/AndroidManifest.xml",
      "new_id": "c98de0557edb31bb3422e178b4b149d0e98be207",
      "new_mode": 33188,
      "new_path": "core/res/AndroidManifest.xml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f923c4562754f037304c31a855d52d173b97c801",
      "new_mode": 33188,
      "new_path": "telephony/java/android/telephony/UiccAccessRule.aidl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1ac4c5cf7d8013417caa8e2e19b2e3bab193c0e1",
      "new_mode": 33188,
      "new_path": "telephony/java/android/telephony/UiccAccessRule.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "26679c913050d65f6619c1cfa97e6bcf5b1bfaa8",
      "new_mode": 33188,
      "new_path": "telephony/java/android/telephony/euicc/DownloadableSubscription.aidl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e8809781886e50a8ee169d2d32f0c37d8a6f213d",
      "new_mode": 33188,
      "new_path": "telephony/java/android/telephony/euicc/DownloadableSubscription.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "73cf162b467678fe07e7ecfeae4d33354f22d6b6",
      "new_mode": 33188,
      "new_path": "telephony/java/android/telephony/euicc/EuiccManager.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b2092bb160d175bdca4f2324d04725df3fd453c1",
      "new_mode": 33188,
      "new_path": "telephony/java/com/android/internal/telephony/euicc/IEuiccController.aidl"
    }
  ]
}
