Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] Repackaging App with Adaptive Icons shows Stock Android Icon #3619

Open
kyuds opened this issue Jun 11, 2024 · 4 comments
Open

[BUG] Repackaging App with Adaptive Icons shows Stock Android Icon #3619

kyuds opened this issue Jun 11, 2024 · 4 comments

Comments

@kyuds
Copy link

kyuds commented Jun 11, 2024

Information

  1. Apktool Version (apktool -version) - 2.9.3
  2. Operating System (Mac, Linux, Windows) - macOS (Intel Chip)
  3. APK From? (Playstore, ROM, Other) - Other (cannot share, unfortunately)
  4. Java Version (java --version) - 17

So first of all, thank you for the wonderful project. I am currently in the process of editing an APK, and I've noticed that everything works fine EXCEPT for the application icon shown on the home screen (and app menu). Rebuilding the APK and installing it allows for the app to work fine, (including login and rendering), but the icon appears as the stock, green-ish background android icon.

After some inspection, I've noticed that this particular icon uses Adaptive Icons with the two layers, and observing that the decoded android manifest file, points to a completely different link (launcher_icon instead of ic_launcher), it seems that Adaptive Icons seems to be an issue.

I have already tried unpacking and repacking the APK without changing anything (except setting the extractNativeLibs field to true, as my APK is a split), and still the icon is not working properly.

Thank you!

@iBotPeaches
Copy link
Owner

Do you have a small sample of the AndroidManifest file decoded, then built/decoded again? To see the icon section.

@kyuds
Copy link
Author

kyuds commented Jun 12, 2024

Honestly don't know if this will help, but:
base.apk: AndroidManifest.xml:

<application android:appComponentFactory="androidx.core.app.CoreComponentFactory" android:extractNativeLibs="true" android:icon="@mipmap/launcher_icon" android:isSplitRequired="true" android:label="@string/app_name" android:name="<removed name>" android:requestLegacyExternalStorage="true" android:usesCleartextTraffic="false">

** pre/post rebuild shows the same output.
base.apk: The launcher_icon.xml in res/mipmap-anydpi-v26

<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon
  xmlns:android="http://schemas.android.com/apk/res/android">
    <background android:drawable="@null" />
    <foreground android:drawable="@null" />
</adaptive-icon>

The foreground and background images for the launcher icon is in split_config.xxhdpi.apk, but looking through them I wasn't able find any file similar to the "launcher_icon.xml" file in base.apk.

Also, I tried switching out the "@null" to the appropriate paths for the fore/background images, but that also didn't work.
Finally, I forgot to mention but the app is built with Flutter

@iBotPeaches
Copy link
Owner

Thanks - So I'm guessing the adaptive icons are in the split application? Since I don't see how Apktool would null out the drawable refs unless the resource is not valid in that specific application.

@kyuds
Copy link
Author

kyuds commented Jun 24, 2024

Yup. The adaptive icons are in the split apk (split_config.xxhdpi.apk). Im starting to think that it is because the application is built with Flutter

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants