)]}'
{
  "log": [
    {
      "commit": "e0cec3cea11a0cce85bf096da2242b8181184e1c",
      "tree": "3552620b2a0ba895bf41b4587f5199ab7df863b6",
      "parents": [
        "77d90c3917c364add41e6b0ff0510ce9c6e0b54f"
      ],
      "author": {
        "name": "Oscar Montemayor",
        "email": "oam@google.com",
        "time": "Fri Mar 26 18:44:14 2010 -0700"
      },
      "committer": {
        "name": "Oscar Montemayor",
        "email": "oam@google.com",
        "time": "Mon Mar 29 18:12:24 2010 -0700"
      },
      "message": "DO NOT MERGE\nRemoving unused features from source tree.\nPlease refer to Bug#2502219.\n\nChange-Id: I879c29bfd5ffe933f64bb1082aaae7c956450a5a\n"
    },
    {
      "commit": "033b5a2fa50d4f8f17983d3888b264c204f09636",
      "tree": "506f87437a24390f4d65b8fc03ec68d6e14f3f44",
      "parents": [
        "9337e9ea1a96e711552df131934b1869e0402ab1"
      ],
      "author": {
        "name": "Neal Nguyen",
        "email": "tommyn@google.com",
        "time": "Wed Jan 13 10:42:43 2010 -0800"
      },
      "committer": {
        "name": "Neal Nguyen",
        "email": "tommyn@google.com",
        "time": "Fri Jan 29 13:35:51 2010 -0800"
      },
      "message": "Phase 2 of test cleanup: moving test files from AndroidTests closer to their sources.\n\nMost of these are file moves; a couple notable exceptions are the changes due to the move, and fixing up test code:\n- database/DatabaseCursorTest.java\n- database/DatabaseStatementTest.java\n- net/UriTest.java\n"
    },
    {
      "commit": "efcceff9396dcfed82c99e704db2bf22cf59c514",
      "tree": "b52b718752d892cf201dccf91c4f704d90b2a755",
      "parents": [
        "61de63296e9e32bb086f1bea4dd2cb2e5cdc3f81"
      ],
      "author": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Wed Nov 25 12:49:24 2009 +0800"
      },
      "committer": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Wed Nov 25 12:49:24 2009 +0800"
      },
      "message": "Fix broken build.\n"
    },
    {
      "commit": "6d8432b537ff991b74263e208eae5b0b9a5b3d04",
      "tree": "adc93794bbb9bb07e84cbb12fdd0ca9c4d8ae13b",
      "parents": [
        "9827cd86481b0055107927035db0d70a96d13488"
      ],
      "author": {
        "name": "Oscar Montemayor",
        "email": "oam@google.com",
        "time": "Wed Nov 18 10:14:20 2009 -0800"
      },
      "committer": {
        "name": "Oscar Montemayor",
        "email": "oam@google.com",
        "time": "Tue Nov 24 11:44:19 2009 -0800"
      },
      "message": "Encrypted File Systems Project. Installer modifications.\nStarted to modify isntaller for data redirection to a secure location.\n"
    },
    {
      "commit": "baf911d720b195f9bcdf2bbf11673fc0cc20de1e",
      "tree": "b60e1508c03b154b0334b3f710e85b147b8a8bb7",
      "parents": [
        "926c4b2527b50d01c9ff01a96697c48b292c9d40"
      ],
      "author": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Wed Sep 30 18:00:36 2009 +0800"
      },
      "committer": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Wed Sep 30 18:39:48 2009 +0800"
      },
      "message": "Remove deprecated VpnType.getDescription().\n"
    },
    {
      "commit": "926c4b2527b50d01c9ff01a96697c48b292c9d40",
      "tree": "d7ee5ff50202a625778d5f7e7804d8da67c45895",
      "parents": [
        "7cbc8668dfed2acc4d192d9264e8e02d999c3816"
      ],
      "author": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Wed Sep 30 16:02:17 2009 +0800"
      },
      "committer": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Wed Sep 30 17:07:10 2009 +0800"
      },
      "message": "make vpn type strings i18n ready.\n"
    },
    {
      "commit": "be8b0fc7c1d76f0ed1fc8936a85e3dd47bed2949",
      "tree": "509e3359c3b6bd04c515245d60955644ed532d90",
      "parents": [
        "734b2ba849ac94d789d127c20ffec0293922c893"
      ],
      "author": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Thu Aug 27 18:45:21 2009 +0800"
      },
      "committer": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Fri Aug 28 09:59:39 2009 +0800"
      },
      "message": "Simplifies err code propagation.\n\n* Other changes\n  + Re-assign err codes in VpnManager.\n  + Add new err codes: REMOTE_PPP_HUNG_UP, PPP_NEGOTIATION_FAILED.\n  + Delete the state file only if it exists (to prevent logging an\n    unable-to-unlink error).\n  + Extend timeout to 40 seconds.\n"
    },
    {
      "commit": "b06445818593c692c67494ce9e88be29c538f1b1",
      "tree": "21cbb81190f7b6da992c63768acfb0fe083a96ca",
      "parents": [
        "23c95b3b3277260d7ada14637d9da309695c6c40"
      ],
      "author": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Mon Aug 03 16:22:24 2009 +0800"
      },
      "committer": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Mon Aug 03 16:22:24 2009 +0800"
      },
      "message": "Issue an error when VPN connection is lost.\n\n+ Add new error code CONNECTION_LOST to VpnManager.\n+ Make VpnService call onError() instead of onDisconnect() when\nconnection is lost.\n+ Make VpnService broadcast CONNECTION_LOST when that happens.\n"
    },
    {
      "commit": "907a880fa24500aa4e3476f99cfabf4343236435",
      "tree": "83c07f6ebd791ea339e1e16372cabf8ad83e178b",
      "parents": [
        "0bd458b9f5a0cbbca24d05705dcbe562d8a40026"
      ],
      "author": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Thu Jul 30 20:36:27 2009 +0800"
      },
      "committer": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Thu Jul 30 20:36:27 2009 +0800"
      },
      "message": "Add the encryption option to PptpProfile parcel.\n"
    },
    {
      "commit": "0bd458b9f5a0cbbca24d05705dcbe562d8a40026",
      "tree": "bc19a278ea79e36d66451f381c97f00ee9a29f40",
      "parents": [
        "bbdde8293ff6aae39092332063e50739aeaa9d6c"
      ],
      "author": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Thu Jul 30 14:02:48 2009 +0800"
      },
      "committer": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Thu Jul 30 19:14:50 2009 +0800"
      },
      "message": "Add state saving mechanism to support proc restart\n\nAlso...\n+ stop daemons before getting server IP;\n+ remove setForeground();\n+ add the DBG flag for Log.d calls.\n\nPatchSet 3:\n+ add CHALLENGE_ERROR and REMOTE_HUNG_UP to VpnManager\n+ broadcast new error codes in VpnService\n+ check local IP change instead of dns change\n+ move removeStates() to VpnService.onFinalCleanUp()\n\nPatchSet 7:\n+ add encryption flag to PptpProfile\n+ PptpService and MtpdHelper are revised accordingly\n"
    },
    {
      "commit": "af8dc57ddbf9a712658268156edf7e81941f5ce9",
      "tree": "88f10a4682ed5ae1321ec8000a2fc25d524818ae",
      "parents": [
        "10e850975c08872a1b02016987aba9d2dc0851db"
      ],
      "author": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Tue Jul 14 16:19:17 2009 +0800"
      },
      "committer": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Tue Jul 14 16:29:22 2009 +0800"
      },
      "message": "Make VPN connect even when DNS is not present and other fixes.\n\n* Changes:\n  + As title.\n  + Add two new states to VpnState: UNKNOWN and UNUSABLE.\n  + Add more debug messages when stopping a service and when DNS being\n    overridden.\n"
    },
    {
      "commit": "ec0fc87a0a5ed104390e0f45c2da20fc1f846312",
      "tree": "94f28e01397d336e3fa81ed75625cffeb169ca3f",
      "parents": [
        "675e4d3db972e621b1785aa7a4b8aeecee7dbbe4"
      ],
      "author": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Sat Jul 11 22:23:30 2009 +0800"
      },
      "committer": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Mon Jul 13 13:11:36 2009 +0800"
      },
      "message": "Add error code in vpn connectivity broadcast.\n\n* Changes\n  + Add VpnConnectingError.java.\n  + Broadcast the error returned by daemons.\n  + Add error codes to VpnManager.java.\n  + Add error code to VpnManager.broadcastConnectivity().\n  Patch Set 4:\n  + Replace VPN_UP with VPN_STATUS in response to ip-up-vpn changes.\n  + Make VpnServiceBinder a foreground service so that it won\u0027t be\n    interrupted by the system.\n  Patch Set 5:\n  + Remove the support of returning 0 from daemon and restart socket in\n    AndroidServiceProxy.\n"
    },
    {
      "commit": "c0b5d8a5feef04dc56835caffdfa47f7d90dd1fa",
      "tree": "329cd910a18b76d23f32abca7ed2fe9202163a92",
      "parents": [
        "43b4f796bbfe2e64cf0da79c2efa474a066ebddb"
      ],
      "author": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Fri Jun 19 19:45:38 2009 +0800"
      },
      "committer": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Fri Jun 26 03:02:22 2009 +0800"
      },
      "message": "Add PPTP, L2TP/IPSec preshared key and other fixes.\n\n* Changes\n  + Add PptpProfile.java, PptpService.java.\n  + Add L2tpIpsecPskProfile.java\n  + Add PPTP and L2TP_IPSEC_PSK entries in VpnType.java.\n  + Add the secret option to L2tpProfile.java and have L2tpIpsecProfile\n    extend it.\n  + Add MtpdHelper to send common PPP options.\n  + Add getGatewayIp() to VpnService().\n  + Revise VpnService.reallyGetHostIp().\n\n  Patch Set 6, 7, 8:\n  + Add L2TP secret flag in L2tpProfile.\n\n  Patch Set 9:\n  + Add description to VpnType.\n\n  Patch Set 11:\n  + Pass ipparam to mtpd.\n\n  Patch Set 12:\n  + Add L2TP secret support\n  + Fix string constants\n"
    },
    {
      "commit": "e125f0ca46226b8ed2476d968ddb372c2762b985",
      "tree": "4ed7e3511c0e0b9eaa97ae7b451d024e4e7fabd1",
      "parents": [
        "fce50e129bf89c52aebe04e6f92b37c0f8c743f7"
      ],
      "author": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Mon Jun 15 18:59:01 2009 +0800"
      },
      "committer": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Mon Jun 15 19:29:26 2009 +0800"
      },
      "message": "Remove SingleServerProfile.\n\nEnd of refactoring out SingleServerProfile.java.\n"
    },
    {
      "commit": "c2843d8fa31c54c65d08c086e416d3e3da105abf",
      "tree": "7b33d455354d084ae8633b4965bb1c4edbc1557a",
      "parents": [
        "fd5212ed227c14b6fb5b876727bba7a9a536f7ab"
      ],
      "author": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Mon Jun 15 11:30:11 2009 +0800"
      },
      "committer": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Mon Jun 15 13:06:03 2009 +0800"
      },
      "message": "On the way of refactoring out SingleServerProfile.java.\n\n+ Move mServerName from SingleServerProfile and VpnProfile.\n+ Add mSavedUsername to VpnProfile.\n+ Keep empty SingleServerProfile to not break the classes that use it.\n+ Remove use of SingleServerProfile from VpnService.java.\n"
    },
    {
      "commit": "173be90a18fca170ccccb87f5a61ecb94e9008f2",
      "tree": "204526dd84f29dedc3a39aeb7021a41b92e2b244",
      "parents": [
        "fcff1ffa541e0076df6adeb437ba79bb4c3fa35d"
      ],
      "author": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Mon Jun 08 13:27:11 2009 +0800"
      },
      "committer": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Fri Jun 12 15:45:56 2009 +0800"
      },
      "message": "Add the VPN services package, VPN service base classes and L2tpIpsecService.\n\nAlso add android.security.Keystore. This is a quick solution. Will be\nevolved to a more mature implementation.\n\nPATCH SET 2:\n+ Add VpnServiceBinder to hide VpnService and its subclasses.\n+ Add sendCommand2() to AndroidServiceProxy to work with the latest mtpd.\n\nPATCH SET 3:\n+ Rebase to catch up with new commits; no changes made.\n\nPATCH SET 4:\n+ Remove/comment out @Override on interface methods to be compilable for Java 1.5.\n\nPATCH SET 5:\n+ Add L2tpService.java.\n+ Make VpnService to work on SingleServerProfile; add serverIp to\n  connect(); set system property \"net.vpn.server_ip\"; and move\n  getPppOptionFilePath() from L2tpIpsecService to VpnService\n+ Revise VpnManager to start VpnService without worrying about which\n  type (as the type info is in VpnProfile)\n+ Remove installation stuff from VpnManager\n\nPATCH SET 6:\n+ Fix PATCH SET 5 (the patch was messed up). Please ignore PATCH SET 5.\n\nPATCH SET 7:\n+ Fix styles.\n\nPATCH SET 8:\n+ Add CANCELLED to VpnState.\n\nPATCH SET 9:\n+ Make VpnProfile serializable (in order to save them to persistent storage)\n\nPATCH SET 10:\n+ Remove Keystore.java as it\u0027s added in another CL.\n"
    },
    {
      "commit": "3fd189dbf1e1336fccd161d815e66faf887176e5",
      "tree": "cda9c8976f3ca080fba3b5dd65ed345460883f4f",
      "parents": [
        "1c2a8886cd249f7edf144a266f0dd05a5fe29891"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Mon Jun 08 23:23:15 2009 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Mon Jun 08 23:23:15 2009 -0700"
      },
      "message": "Fix the build\n"
    },
    {
      "commit": "3a978c1a988b00c111f6540998700e1f3b441178",
      "tree": "1d328b42d6f97bc53f483f81c1b59652dbff45af",
      "parents": [
        "bf07da97a4a58d5d4a16e60e3f9b5478a9157ad9"
      ],
      "author": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Wed Jun 03 23:56:34 2009 +0800"
      },
      "committer": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Tue Jun 09 11:28:38 2009 +0800"
      },
      "message": "First-time check-in of the VPN APIs.\n\nPatch Set 2:\n- Fixed style issues raised by cywang.\nPatch Set 3:\n- Hide everything\n- Make VpnProfile parcelable\nPatch Set 4:\n- Add license notice\n"
    }
  ]
}
