)]}'
{
  "log": [
    {
      "commit": "c895be7bc68b6f5b37fbb9881f464dd5ea0eb017",
      "tree": "fe7ba171c41d3df63b595adaf46a67ace2a7d7d3",
      "parents": [
        "9725d80adc7426ea20f3a193fc81dc1e8b8c4b31"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 11 17:48:43 2013 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 12 12:51:38 2013 -0700"
      },
      "message": "Implement limited shared libraries in apks.\n\nYou can now declare shared libraries in apks that are\non the system image.  This is like the existing mechanism\nof using raw jar files as shared libraries, but since they\nare contained in an apk the library can actually be updated\nfrom the Play Store.  And this even (mostly) works.\n\nThere are some deliberate limitations on this feature.  A\nnew shared library *must* be declared by an apk on the system\nimage.  Installing an update to a system image apk does not\nallow you to add new shared libraries; they must be defined\nby everything on the base system image.  This allows us to\nget rid of a lot of ugly edge cases (shared libraries that were\nthere disappearing after an update is uninstalled for example)\nand give some brakes on apps that happen to be pre-installed\non devices from being able to throw in new shared libraries\nafter the fact.\n\nIn working on this, I ran into a recently introduced bug where\nuninstalling updated to system apps would fail.  This was done\nto allow for the new restricted users that don\u0027t have all\nsystem apps, but conflicts with the existing semantics for\nuninstalling system apps.  To fix this I added a new uninstall\nflag that lets you switch on the new mode if desired.\n\nAlso to implement the desired logic for limitations on declaring\nnew shared libraries in app updates, I needed to slightly tweak\nthe initial boot to keep the Package object for hidden system\npackages associated with their PackageSetting, so we can look at\nit to determine which shared libraries are allowed.  I think\nthis is probably more right than it was before -- we already\nneed to parse the package anyway, so we have it, and when you\ninstall an update to a system app we are in this same state\nuntil you reboot anyway.\n\nAnd having this fixed also allowed me to fix another bug where\nwe wouldn\u0027t grant a new permission to an updated app if its\nsystem image version is updated to request the permission but\nits version is still older than whatever is currently installed\nas an update.  So that\u0027s good.\n\nAlso add new sample code showing the implementation of an apk\nshared library and a client app using it.\n\nChange-Id: I8ccca8f3c3bffd036c5968e22bd7f8a73e69be22\n"
    }
  ]
}
