14 • What's new in Android 15 for all apps • Private Space • New Mitigation for Task Hijacking • Safer Intents • Further Foreground Service Restrictions • Privacy Sandbox Updates
with targetSdkVersion 22 or below cannot be installed • Must target 23 (aka Android 6 or M) • Installed apps are ok when upgrading to Android 14 • adb install - - bypass-low-target-sdk-block APK_FILE.apk ⚠ Spoiler: Further bumped in Android 15
if accessing hidden methods/ fi elds (i.e Re fl ection) • Testing • Logcat on Debuggable apps • StrictMode.detectNonSdkApiUsage() • Veridex static analysis tool • Google Play console ⚠ Spoiler: Further bumped in Android 15 More info https://developer.android.com/guide/app-compatibility/restrictions-non-sdk-interfaces#test-for-non-sdk
components not exported make the intent explicit by de fi ning the package. context.sendBroadcast( Intent(“com.myapp.INTERNAL_ACTION”).apply { `package` = context.packageName })
All dynamically-loaded fi les must be marked as read-only • Recommended to delete and redownload existing fi les • Zip fi le fi x to prevent path traversal vulnerability • ZipException if zip fi le entry names contain ".." or start with “/". • Can opt out with dalvik.system.ZipPathValidator.clearCallback()
with targetSdkVersion 23 or below cannot be installed • Must target 24+ (aka Android 7 or N) • Installed apps are ok when upgrading to Android 15 • adb install -- bypass-low-target-sdk-block APK_FILE.apk
if accessing hidden methods/ fi elds (i.e Re fl ection) • Testing • Logcat on Debuggable apps • StrictMode.detectNonSdkApiUsage() • Veridex static analysis tool • Google Play console More info https://developer.android.com/guide/app-compatibility/restrictions-non-sdk-interfaces#test-for-non-sdk
Pro fi le (i.e di ff erent Linux user) • Only supported for main user (not secondary/guest/managed) • Can use same or di ff erent pin code to open private space • Cannot move existing app/data - install only More info https://developer.android.com/about/versions/15/behavior-changes-all#private-space-changes
over Bluetooth from private space apps • Can send content over Bluetooth ❌ Add Widgets / Shortcuts • When sharing content or Photopicker if private space is unlocked, you’ll fi nd a “Private” tab on sharing apps • Bypass virtual private network (VPN) All apps
a DoS as you can be forces to watch/click ad before allow to exit. • Full/partial tap jacking • Same task modal or full screen phishing (impersonate recently used app)
the top UID on the stack from launching activities • Opt out whole app • <application android:allowCrossUidActivitySwitchFromBelow="false" > • Speci fi c shared activities • Activity.setAllowCrossUidActivitySwitchFromBelow(true)
to launch Foreground services for the following service types: • dataSync • camera • mediaPlayback • phoneCall • mediaProjection • microphone (since Android 14)
permission = launch a foreground service even if in the background. • Now must also have a visible overlay window • View.getWindowVisibility() • View.onWindowVisibilityChanged() • Otherwise ForegroundServiceStartNotAllowedException
to enable/con fi g • Updates to the existing 3 core APIs • Topics API (interested/topics from the device) • Fledge remarketing custom audiences • Measuring ads
you cannot be installed on Android 15 • Automate checking for non-SDK interface changes • Private space • Allows users to install another instance of your app on same device • Not suitable for any app that needs to run in the background • App’s cannot opt-out • More restrictions for Implicit Intents prefer being Explicit 😉