{"push_id":918891573,"size":7,"distinct_size":7,"ref":"refs/heads/android-5.1","head":"cdbc67d56a5d6d5807520c1ac98e6e5775f0ba08","before":"181a05630382377cffc7bb8db7a81cb645801fd7","commits":[{"sha":"281f39b3b3e4fe700b49c3b45d6da68925a272e1","author":{"email":"90b51f8a5079017e81711ae9317c35b0575b34e1@gmail.com","name":"Christopher R. Palmer"},"message":"Storage; Fix apps2sd for noemulated secondary storage\n\nA recent commit:\n\n  commit 9d0514d80f9a664d5fcda0c0f870229f35afa9b1\n  Author: Thomas Wendt <thoemy@gmx.net>\n  Date:   Wed Jan 14 16:18:19 2015 +0100\n\n    Storage: Fix moving apps to external storag\n\nchanged the supported case from secondary storage that was marked\nas noemulated to external storage that was noemulated.\n\nBoth are valid use-cases for apps2sd.\n\nThis commit restores the secondary storage logic removed in\nthe previous commit and allows either configuration to work\nfor apps2sd.\n\nChange-Id: I069571dfe10c6e8e2247b26f3de0d185ba10d5a2","distinct":true,"url":"https://api.github.com/repos/AMD-Grifon/android_frameworks_base/commits/281f39b3b3e4fe700b49c3b45d6da68925a272e1"},{"sha":"55de48dceea906e22fc2061eeec093954079a3b2","author":{"email":"14b239df8f7217a8112b9da0b89be97c0169c978@codeaurora.org","name":"Xiaogang Cui"},"message":"Storage: Add secondary storage support for app installation\n\nAdd secondary external storage APIs for app installation. And\nchange the logic to allow app to be installed into external\nstorage.\n\nChange-Id: If2f67af7508d020c1d041bb955e3d55136a34acc\n\nConflicts:\n\tcore/java/com/android/internal/content/PackageHelper.java","distinct":true,"url":"https://api.github.com/repos/AMD-Grifon/android_frameworks_base/commits/55de48dceea906e22fc2061eeec093954079a3b2"},{"sha":"64c3ec7fe71e42b5146f4e5a26347b7d3d9bee3f","author":{"email":"33f927344e079e00d3fa45d8833b04e735223eec@ruesga.com","name":"Jorge Ruesga"},"message":"environment: return external dir if secondary is not defined\n\nIf the device doesn't define a secondary storage, then return external storage\nas secondary storage\n\nPatchset 2: do not break the api\n\nChange-Id: I9d94a01881f47977ef1a26c3648b3da1d8c63b57\nSigned-off-by: Jorge Ruesga <jorge@ruesga.com>","distinct":true,"url":"https://api.github.com/repos/AMD-Grifon/android_frameworks_base/commits/64c3ec7fe71e42b5146f4e5a26347b7d3d9bee3f"},{"sha":"b4e778887fe561c780c243b56421bb8f5b08ff62","author":{"email":"cad1a51755d571b4c23450786ac5dfefb8cd1cfa@intel.com","name":"Mohamed Abbas"},"message":"Make sure emulated storage path index is 0\n\nMediaProvider blindly assumes that path index 0 of the array returned by\nStorageManager::getVolumePaths() is the emulated storage.\nHowever, this is not true when you have multiple users.\nThis patch modifies StorageVolume::getVolumeList(). to make sure that\nassumption is always true.\n\nChange-Id: I4650478274a87adfed91fe53097c1e47fb2f10c7\nSigned-off-by: Fernando Guzman Lugo <fernando.guzman.lugo@intel.com>\nSigned-off-by: Mohamed Abbas <mohamed.abbas@intel.com>\nSigned-off-by: Irina Patru <irina.patru@intel.com>\nSigned-off-by: Yong Yao <yong.yao@intel.com>","distinct":true,"url":"https://api.github.com/repos/AMD-Grifon/android_frameworks_base/commits/b4e778887fe561c780c243b56421bb8f5b08ff62"},{"sha":"2a6011c5fbfa094b812aa9f5d35967e0dd31432e","author":{"email":"90b51f8a5079017e81711ae9317c35b0575b34e1@gmail.com","name":"Christopher R. Palmer"},"message":"base: Fix array bounds exception in getSecondaryStorageState\n\nFix this to use the correct helper function.\n\nChange-Id: I597e2895ee560681caa7dee95fd6b4cf17b5bcce","distinct":true,"url":"https://api.github.com/repos/AMD-Grifon/android_frameworks_base/commits/2a6011c5fbfa094b812aa9f5d35967e0dd31432e"},{"sha":"ffbc593fe2780471bbbc47b392504ee3a5a275d9","author":{"email":"90b51f8a5079017e81711ae9317c35b0575b34e1@gmail.com","name":"Christopher R. Palmer"},"message":"apps2sd: Only allow \"move to ___\" if the media is mounted [2/2]\n\nChange-Id: I025e595fbc6303f2586c5bf74f3d1fba564d4c76","distinct":true,"url":"https://api.github.com/repos/AMD-Grifon/android_frameworks_base/commits/ffbc593fe2780471bbbc47b392504ee3a5a275d9"},{"sha":"cdbc67d56a5d6d5807520c1ac98e6e5775f0ba08","author":{"email":"4b8373d016f277527198385ba72fda0feb5da015@lekensteyn.nl","name":"Peter Wu"},"message":"Fix app installation when installLocation=preferExternal\n\nThe Nexus 5 does not have an SD card and the external storage device is\ntherefore emulated (/storage/emulated/). It is possible to use an USB-OTG cable\nto add more storage (/storage/usbdisk).\n\nSince commit 50bac1a, the package manager tries to install a package with\ninstallLocation=\"preferExternal\" to external storage. This fails with:\n\n    E/Vold    (  189): Error creating imagefile (Read-only file system)\n    E/Vold    (  189): ASEC image file creation failed (Read-only file system)\n    W/Vold    (  189): Returning OperationFailed - no handler for errno 30\n    E/PackageHelper( 4399): Failed to create secure container smdl728528075.tmp\n    W/DefContainer( 4399): Failed to copy package at /data/local/tmp/biz.codefuture.svgviewer_7.apk\n    W/DefContainer( 4399): java.io.IOException: Failed to create container smdl728528075.tmp\n    W/DefContainer( 4399):       at com.android.defcontainer.DefaultContainerService.copyPackageToContainerInner(DefaultContainerService.java:327)\n    W/DefContainer( 4399):       at com.android.defcontainer.DefaultContainerService.access$000(DefaultContainerService.java:67)\n    W/DefContainer( 4399):       at com.android.defcontainer.DefaultContainerService$1.copyPackageToContainer(DefaultContainerService.java:108)\n    W/DefContainer( 4399):       at com.android.internal.app.IMediaContainerService$Stub.onTransact(IMediaContainerService.java:60)\n    W/DefContainer( 4399):       at android.os.Binder.execTransact(Binder.java:446)\n\nThis is caused by the wrong decision of PackageHelper.resolveInstallLocation()\nto install to external storage. Because Environment.isNoEmulatedStorageExist()\nreturns true (/storage/usbdisk is found), it will get the size of the directory\nreturned by getSecondaryStorageDirectory().\n\nBug: this directory is /storage/emulated/0 which is definitely not the external\nstorage (is getSecondaryStorageDirectory() broken then?). As this location has\nplenty of space, the function decides that external installation is possible...\nwhile this is not the case.\n\nThe presented half-baked patch works around the issue by ignoring unmounted\ndevices (such as USB storage). When USB storage is attached however, the\ninstallation fails again.\n\nEither this whole \"install to secondary storage\" functionality should be\nreverted, or more fixes needs to be done:\n\n - Ignore unmounted devices (this patch).\n - Check whether external media is mounted at /mnt/secure/asec before using it.\n - Make getSecondaryStorageDirectory() return no devices if there is no\n   secondary device, or check whether it is not emulated (and mounted).\n - (other bugs?)\n\nThe bug was first introduced in cm-12.0:\n\n    commit 8e46f42e6c35e9268a2bc7f82932794f8c841ddb\n    Author: Xiaogang Cui <xiaogang@codeaurora.org>\n    Date:   Mon Aug 18 11:27:10 2014 +0800\n\n        Storage: Add secondary storage support for app installation\n\nThis was then subsequently fixed by:\n\n    commit 5989b5eb07260cd1db2088418c5a2e048acc24a3\n    Author: Thomas Wendt <thoemy@gmx.net>\n    Date:   Wed Jan 14 16:18:19 2015 +0100\n\n        Storage: Fix moving apps to external storage\n\nbut it broke again in cm-12.0 after:\n\n    commit 50bac1a98d0e665252f5161d0e8c377d08bddbb6\n    Author: Christopher R. Palmer <crpalmer@gmail.com>\n    Date:   Wed Feb 18 09:12:33 2015 -0500\n\n        Storage; Fix apps2sd for noemulated secondary storage\n\nTested using\nhttps://f-droid.org/repository/browse/?fdid=biz.codefuture.svgviewer with and\nwithout external USB storage (via USB-OTG).\n\nChange-Id: I356feedeb41240da0120fc261784500b7111d081","distinct":true,"url":"https://api.github.com/repos/AMD-Grifon/android_frameworks_base/commits/cdbc67d56a5d6d5807520c1ac98e6e5775f0ba08"}]}