Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8cee5012 authored by Zim's avatar Zim
Browse files

Use /data/media path when migrating legacy OBB data

The MediaProvider process is running as the FUSE daemon and is handling
IO requests from the kernel on /sdcard. Accessing a path on /sdcard
can hang forever if the daemon is not responding.

At user 0 startup (boot), the system_server waits for migration of OBB
data and it can deadlock if the FUSE daemon is not running.

To break this cyclic dependency between the FUSE daemon and the
system_server, we now migrate OBB using /data/media instead of
/sdcard, thereby bypassing the FUSE daemon.

Test: adb shell sm set-virtual-disk true
&& adb shell sm partition disk:7,112 private && adb reboot
&& adb shell ls /sdcard

Bug: 135341433
Change-Id: Ib64f7eb7608704e1b53a1b923cc068172fe05e1c
parent e4d836a4
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -15,17 +15,17 @@
# See the License for the specific language governing permissions and
# limitations under the License.

rm -rf /sdcard/Android/obb/test_probe
mkdir -p /sdcard/Android/obb/
touch /sdcard/Android/obb/test_probe
rm -rf /data/media/Android/obb/test_probe
mkdir -p /data/media/Android/obb/
touch /data/media/Android/obb/test_probe
if ! test -f /data/media/0/Android/obb/test_probe ; then
  log -p i -t migrate_legacy_obb_data "No support for 'unshared_obb'. Not migrating"
  rm -rf /sdcard/Android/obb/test_probe
  rm -rf /data/media/Android/obb/test_probe
  exit 0
fi

# Delete the test file, and remove the obb folder if it is empty
rm -rf /sdcard/Android/obb/test_probe
rm -rf /data/media/Android/obb/test_probe
rmdir /data/media/obb

if ! test -d /data/media/obb ; then