From 210cda566a270121e6113f6beb43e7bfb0b45987 Mon Sep 17 00:00:00 2001 From: Mis012 Date: Mon, 18 Sep 2023 13:54:12 +0200 Subject: [PATCH] api-impl/android/content/Context: make getObbDir consistent with apps' hardcoded assumptions about the obb dir location --- src/api-impl/android/content/Context.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/api-impl/android/content/Context.java b/src/api-impl/android/content/Context.java index b012e0ce..a9c3dc93 100644 --- a/src/api-impl/android/content/Context.java +++ b/src/api-impl/android/content/Context.java @@ -79,7 +79,6 @@ public class Context extends Object { r = new Resources(assets, dm, config); theme = r.newTheme(); application_info = new ApplicationInfo(); - InputStream inStream = ClassLoader.getSystemClassLoader().getResourceAsStream("AndroidManifest.xml"); try { manifest = AndroidManifestBlock.load(inStream); @@ -260,7 +259,17 @@ public class Context extends Object { public File getObbDir() { if (obb_dir == null) { - obb_dir = new File(getDataDirFile(), "obb"); + obb_dir = new File(getDataDirFile(), "Android/obb/" + getPackageName()); + } + if (!obb_dir.exists()) { + if (!obb_dir.mkdirs()) { + if (obb_dir.exists()) { + // spurious failure; probably racing with another process for this app + return obb_dir; + } + Slog.w(TAG, "Unable to create obb directory >" + obb_dir.getPath() + "<"); + return null; + } } return obb_dir; }