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

Commit 490595a5 authored by Adam Lesinski's avatar Adam Lesinski
Browse files

AAPT2: Workaround for feature splits without namespacing

Android Instant Apps in its current iteration does not use namespaces,
but due to limitations on the Android resource runtime, needs to make
it look like it does.

This is due to a bug that treats any package ID that's not 0x01 or 0x7F
as a shared library. Shared libraries require unique package names.

As a workaround, and since Android Instant Apps can not have a feature
depend on another feature, we can alter the resource package name of a
feature split just before writing it out to disk. This avoids using a
unique package name while linking, thereby avoiding namespace issues.

Bug: 68820737
Test: manual
Change-Id: Ic553ed42656436bbb949393d0248ee7bb9d37860
parent 2dd3953a
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -26,6 +26,6 @@ LOCAL_APK_LIBRARIES := FeatureSplitBase
LOCAL_RES_LIBRARIES := FeatureSplitBase

LOCAL_AAPT_FLAGS += --package-id 0x80
LOCAL_AAPT_FLAGS += --rename-manifest-package com.android.test.split.feature
LOCAL_AAPT_FLAGS += --custom-package com.android.test.split.feature.one

include $(BUILD_PACKAGE)
+2 −2
Original line number Diff line number Diff line
@@ -15,13 +15,13 @@
-->

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.android.test.split.feature.one"
    package="com.android.test.split.feature"
    featureSplit="feature1">

    <uses-sdk android:minSdkVersion="21" />

    <application>
        <activity android:name=".One" android:label="Feature One">
        <activity android:name=".one.One" android:label="Feature One">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
+1 −1
Original line number Diff line number Diff line
@@ -20,7 +20,7 @@
    <integer name="test_integer2">200</integer>
    <color name="test_color2">#00ff00</color>
    <string-array name="string_array2">
        <item>@*com.android.test.split.feature:string/app_title</item>
        <item>@string/app_title</item>
    </string-array>
</resources>
+1 −1
Original line number Diff line number Diff line
@@ -26,6 +26,6 @@ LOCAL_APK_LIBRARIES := FeatureSplitBase
LOCAL_RES_LIBRARIES := FeatureSplitBase

LOCAL_AAPT_FLAGS += --package-id 0x81
LOCAL_AAPT_FLAGS += --rename-manifest-package com.android.test.split.feature
LOCAL_AAPT_FLAGS += --custom-package com.android.test.split.feature.two

include $(BUILD_PACKAGE)
+1 −1
Original line number Diff line number Diff line
@@ -15,7 +15,7 @@
-->

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.android.test.split.feature.two"
    package="com.android.test.split.feature"
    featureSplit="feature2">

    <uses-sdk android:minSdkVersion="21" />
Loading