Apktool icon indicating copy to clipboard operation
Apktool copied to clipboard

[FEAT] Support Universal application with fused/dynamic feature.

Open tamirda opened this issue 2 years ago • 5 comments
trafficstars

Information

  1. Apktool Version (apktool -version) - 2.7.0
  2. Operating System (Mac, Linux, Windows) - Mac
  3. APK From? (Playstore, ROM, Other) - Example app developed to demonstrate the issue.

Stacktrace/Logcat

I: Using Apktool 2.7.0 on app.apk
I: Loading resource table...
I: Decoding Shared Library (com.example.dynamicfeatures.dynlogin), pkgId: 128
W: Skipping package group: com.example.dynamicfeatures
I: Decoding AndroidManifest.xml with resources...
I: Loading resource table from file: /Users/tamirda/Library/apktool/framework/1.apk
W: Could not decode attr value, using undecoded value instead: ns=android, name=theme, value=0x7f120201
W: Could not decode attr value, using undecoded value instead: ns=android, name=label, value=0x7f11001d
W: Could not decode attr value, using undecoded value instead: ns=android, name=icon, value=0x7f0e0000
W: Could not decode attr value, using undecoded value instead: ns=android, name=fullBackupContent, value=0x7f140000
W: Could not decode attr value, using undecoded value instead: ns=android, name=roundIcon, value=0x7f0e0001
W: Could not decode attr value, using undecoded value instead: ns=android, name=dataExtractionRules, value=0x7f140001
W: Could not decode attr value, using undecoded value instead: ns=android, name=theme, value=0x7f120203
W: Could not decode attr value, using undecoded value instead: ns=android, name=label, value=0x7f11001d
W: Could not decode attr value, using undecoded value instead: ns=android, name=value, value=0x7f140002
I: Renamed manifest package found! Replacing com.example.dynamicfeatures with com.example.dynamicfeatures.dynlogin
I: Decoding file-resources...
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintEnd_toEndOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintStart_toStartOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintTop_toTopOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintEnd_toEndOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintStart_toStartOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintTop_toBottomOf, value=0x80020004
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintBottom_toBottomOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintEnd_toEndOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintStart_toStartOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintTop_toBottomOf, value=0x80020003
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintVertical_bias, value=0x3e4ccccd
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintBottom_toBottomOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintEnd_toEndOf, value=0x80020003
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintStart_toStartOf, value=0x80020003
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintTop_toTopOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintVertical_bias, value=0x3e99999a
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintEnd_toEndOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintStart_toStartOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintTop_toTopOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintEnd_toEndOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintStart_toStartOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintTop_toBottomOf, value=0x80020004
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintBottom_toBottomOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintEnd_toEndOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintStart_toStartOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintTop_toBottomOf, value=0x80020003
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintVertical_bias, value=0x3e4ccccd
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintBottom_toBottomOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintEnd_toEndOf, value=0x80020003
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintStart_toStartOf, value=0x80020003
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintTop_toTopOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintVertical_bias, value=0x3e99999a
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintEnd_toEndOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintStart_toStartOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintEnd_toEndOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintStart_toStartOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintTop_toTopOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintEnd_toEndOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintStart_toStartOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintTop_toBottomOf, value=0x80020004
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintBottom_toBottomOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintEnd_toEndOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintStart_toStartOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintTop_toBottomOf, value=0x80020003
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintVertical_bias, value=0x3e4ccccd
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintBottom_toBottomOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintEnd_toEndOf, value=0x80020003
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintStart_toStartOf, value=0x80020003
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintTop_toTopOf, value=0x00000000
W: Could not decode attr value, using undecoded value instead: ns=app, name=layout_constraintVertical_bias, value=0x3e99999a
I: Decoding values */* XMLs...
Can't find framework resources for package of id: 127. You must install proper framework files, see project website for more info.

Steps to Reproduce

  1. Create application with dynamic feature, while adding to the dynamic feature manifest the flag <dist:fusing dist:include="true" /> (this flag makes sure bundletool merges the dynamic feature into the final apk).
  2. use bundletool to create universal apk from aab
  3. apktool d app.apk

steps 1-2 already made by me, attached aab and universal apk.

Frameworks

If this APK is from an OEM ROM (Samsung, HTC, LG). Please attach framework files (.apks that live in /system/framework or /system/priv-app)

APK

If this APK can be freely shared, please upload/attach a link to it. A link to folder with aab and apk: Click Here

Questions to ask before submission

  1. Have you tried apktool d, apktool b without changing anything? Can not finish decode
  2. If you are trying to install a modified apk, did you resign it? Irrelevant
  3. Are you using the latest apktool version? Yes

tamirda avatar Dec 05 '22 12:12 tamirda

This helps to have a more isolated/reproducible example - thanks. I believe I started some research on this in here: https://github.com/iBotPeaches/Apktool/issues/2514

iBotPeaches avatar Dec 05 '22 12:12 iBotPeaches

Downloaded files and confirmed example.

iBotPeaches avatar Jan 14 '23 12:01 iBotPeaches

Sorry if this is improper to ask this here (I don't really use GitHub), but I'm assuming since this is still open this is not implemented in the latest release? If it isn't then is there some sort of vague ETA on this feature or is it just sort of a "whenever you get to it" thing. Thanks.

catweaselirl avatar Oct 21 '23 22:10 catweaselirl

but I'm assuming since this is still open this is not implemented in the latest release?

Correct, it would be closed if solved.

If it isn't then is there some sort of vague ETA on this feature or is it just sort of a "whenever you get to it" thing. Thanks.

I guess whenever I get to it. The entire idea of multi-package disassembles though is close to top of my list, as it appears to be occurring more and more.

iBotPeaches avatar Oct 22 '23 10:10 iBotPeaches

Cheers, thank you for your response and your hard work on this project

catweaselirl avatar Oct 22 '23 10:10 catweaselirl