1. 08 Sep, 2012 1 commit
    • Jeff Sharkey's avatar
      Include user identifier in external storage paths. · d8de46c4
      Jeff Sharkey authored
      When building external storage paths, always include user in path
      to enable cross-user paths and aid debugging.
      
      Each Zygote process continues to only have access to the appropriate
      user-specific emulated storage through bind mounts. A second set of
      mounts continue supporting legacy /sdcard-style paths. For example,
      a process running as owner has these mount points:
      
      /storage/emulated_legacy
      /storage/emulated_legacy/Android/obb
      /storage/emulated/0
      /storage/emulated/obb
      
      This change also creates two nested namespaces around zygote. The
      first namespace is created when the zygote starts, and it holds a
      single writable tmpfs, since rootfs is ro. The second namespace is
      created quickly after forking, and is used to hold the private
      user-specific bind mounts. (This design saves us from creating a
      tmpfs-per-process.)
      
      Bug: 7131382
      Change-Id: Id80403ec956f0bff6997411cb1f82f273c76b85f
      d8de46c4
  2. 06 Sep, 2012 1 commit
    • Jeff Sharkey's avatar
      Remove /sdcard hack for shell users. · 21c93dc7
      Jeff Sharkey authored
      Using a /storage/sdcard0 symlink and a tmpfs staging area was used
      to enable "/sdcard" paths for both zygote processes and the shell
      user, but it breaks on devices with both emulated and physical
      external storage.
      
      Specifically, vold can't mount a physical sdcard onto the primary
      storage symlink, and zygote can't re-bind-mount when secondary
      storage is remounted after dropping privileges.
      
      Bug: 7094858, 7064600
      Change-Id: Id91e3b3e521a3b3e1bb5358920adc66a0a43917f
      21c93dc7
  3. 05 Sep, 2012 9 commits
  4. 01 Sep, 2012 2 commits
    • Jesse Wilson's avatar
      Fix a bug where the max blowup of annotations was incorrect. · bf7dfeea
      Jesse Wilson authored
      I'm not sure where the 1.34 number comes from but it's incorrect.
      From the spec, the encoded_annotation is made up of a single byte
      plus an unlimited number of uleb128 values. Each of these values
      can double in width in the worst case. I received (personal) email
      from one user who'd run into a case worse than the incorrect 1.34
      limit.
      
      Change-Id: I3b676e6d2b274aaa538ca61ce23945b3d49aff04
      bf7dfeea
    • Jesse Wilson's avatar
      Fix an ugly bug where try/catch offsets weren't being mapped properly. · d43341a2
      Jesse Wilson authored
      In dex files, there are several places where one object refers
      to another object by its position in the file. The dex merger
      is generally very careful to adjust these mappings when combining
      dex files.
      
      Unfortunately one of these cases was broken. Each try_item refers
      to a corresponding encoded_catch_handler by its byte offset in a
      list. Most of the time this byte offset is the same in the input
      dex file and the output dex file. But encoded_catch_handlers are
      variable-length because they use a variable-length uleb128 encoding
      to address the type_idx being caught. When dex files are merged,
      some exception types may go from having a small index to having
      a large index, increasing the number of bytes required to encode
      that index. This breaks our ability to directly copy over offsets
      as we were doing previously.
      
      Bug: http://code.google.com/p/android/issues/detail?id=36490
      Change-Id: I3bdadf20899fdb5d4d074e69103b33c0404a31f8
      d43341a2
  5. 30 Aug, 2012 2 commits
  6. 29 Aug, 2012 6 commits
  7. 28 Aug, 2012 6 commits
  8. 27 Aug, 2012 3 commits
  9. 24 Aug, 2012 9 commits
  10. 23 Aug, 2012 1 commit