Open antoshkin opened 3 years ago
I replicate. Logging some info to help for debugging this later.
➜ 2618 aapt d resources Instagram_v196.0.0.32.126_apkpure.com.apk --values | grep 'guide_grid_row'
spec resource 0x7f0c04bc com.instagram.android:layout/guide_grid_row: flags=0x00000400
resource 0x7f0c04bc com.instagram.android:layout/guide_grid_row: t=0x03 d=0x00002781 (s=0x0008 r=0x00)
resource 0x7f0c04bc com.instagram.android:layout/guide_grid_row: t=0x03 d=0x00002174 (s=0x0008 r=0x00)
➜ Instagram_v196.0.0.32.126_apkpure.com grep -r -i 'guide_grid_row' *
Binary file build/resources.zip matches
res/values-v22/layouts.xml: <item type="layout" name="guide_grid_row">L|46188|5C4|BCF2</item>
res/values/layouts.xml: <item type="layout" name="guide_grid_row">L|2AE8F8|590|E594</item>
res/values/public.xml: <public type="layout" name="guide_grid_row" id="0x7f0c04bc" />
Can confirm having the same issue on M1 Mac and Windows. Recompiling the Instagram app.
Any update on this issue? Is there any workaround?
Hey there, just had the same error and steps how I fixed it in my case:
it seems that issue was with --use-aapt2 flag
I do confirm, it fixed the latest whatsapp beta compilation errors.
not work for me
from what ive found the file is decompiled correctly and those values are used to retrieve the layout resource from instagram's proprietary resource format (assets/layouts.bin.xz)
source: method(jadx) X.C1Mj.getLayout(int) and X.C24601Mp.A00() from instagram apk version 315.0.0.0.6 alpha (371500513)
the resource format seems to contain axml blocks too source: constructor(jadx) X.C1NA.C1NA(Resources, File)
I thought about this a bit. Clearly Instagram is doing some trickey here with storing references to their odd layouts.bin.xz
file. aapt2 screams at this and crashes compilation.
We could easily patch out this check and see how the application reacts. It just seems dangerous for Apktool as this is a good build-time check that is only becoming a problem for apps like Instagram.
@iBotPeaches Could this have been done on purpose to prevent people from reverse engineering their way out of their recent mandatory dialog box to accept being tracked for ads?
The unskippable dialog box has been driving me crazy for weeks so I spent these last few days learning about apktool and Smali, and of course now it blocks compilation at the end.
You know I don't care if instagram steals and sells all my data but I'm not giving consent. I think the resources to run this dialogBox get downloaded after logging in, and triggered in the second "onCreate" lifecycle of Instagram. Meaning the first time I log in on a clean Instagram install I'll be fine until I close the app.
Is there perhaps some other way to bypass this behaviour?
Any suggestions are highly appreciated.
I'm able to compile using --use-aapt1
but for some reason the momment I login the app crashes
First I tried to sign the original one (just to see if instagram plays any trickery) and worked just fine. Then I did the same for just the recompiled apk and (as mentioned above) althought I was able to open the app, the momment I logged-in it crashed... So I'm really skeptical as to if this is a problem with apktool
itselft or instagram does some trickery there too.
Any updates on this bug? Has anyone found a workaround ?
i also got same error + 2 more (it's start on newest updated apk's only, on old apk version still works)
I: Building resources...
W: C:\apktool\mik\res\values-land\layouts.xml:3: error: invalid value for type 'layout'. Expected a reference.
W: C:\apktool\mik\res\values-land\layouts.xml:4: error: invalid value for type 'layout'. Expected a reference.
W: C:\apktool\mik\res\values-land\layouts.xml:5: error: invalid value for type 'layout'. Expected a reference.
W: C:\apktool\mik\res\values-land\layouts.xml:6: error: invalid value for type 'layout'. Expected a reference.
W: C:\apktool\mik\res\values-land\layouts.xml: error: file failed to compile.
W: C:\apktool\mik\res\values-ldrtl\layouts.xml:3: error: invalid value for type 'layout'. Expected a reference.
W: C:\apktool\mik\res\values-ldrtl\layouts.xml: error: file failed to compile.
W: C:\apktool\mik\res\values-night\mipmaps.xml:3: error: invalid value for type 'mipmap'. Expected a reference.
W: C:\apktool\mik\res\values-night\mipmaps.xml: error: file failed to compile.
W: C:\apktool\mik\res\values-sw600dp\layouts.xml:3: error: invalid value for type 'layout'. Expected a reference.
W: C:\apktool\mik\res\values-sw600dp\layouts.xml:4: error: invalid value for type 'layout'. Expected a reference.
W: C:\apktool\mik\res\values-sw600dp\layouts.xml: error: file failed to compile.
W: C:\apktool\mik\res\values-v26\layouts.xml:3: error: invalid value for type 'layout'. Expected a reference.
W: C:\apktool\mik\res\values-v26\layouts.xml:4: error: invalid value for type 'layout'. Expected a reference.
W: C:\apktool\mik\res\values-v26\layouts.xml: error: file failed to compile.
W: C:\apktool\mik\res\values-watch\layouts.xml:3: error: invalid value for type 'layout'. Expected a reference.
W: C:\apktool\mik\res\values-watch\layouts.xml:4: error: invalid value for type 'layout'. Expected a reference.
W: C:\apktool\mik\res\values-watch\layouts.xml: error: file failed to compile.
W: C:\apktool\mik\res\values\animators.xml:3: error: invalid value for type 'animator'. Expected a reference.
W: C:\apktool\mik\res\values\animators.xml:4: error: invalid value for type 'animator'. Expected a reference.
brut.androlib.exceptions.AndrolibException: brut.common.BrutException: could not exec (exit code = 1): [C:\Users\Username\AppData\Local\Temp\brut_util_Jar_160069859907321700514368744111369315017.tmp, compile, --dir, C:\apktool\mik\res, --legacy, -o, C:\apktool\mik\build\resources.zip]
I would like to ask if this problem has been solved. I have also encountered
I also encounter this issue. Andy idea how to solve it?
any one found solution to this problem ?
i have tried "Delete framework\1.apk" and disable aapt2 , but did not work
1 - I deleted the 1.apk
From "C:\Users{username}\AppData\Local\apktool\framework\1.apk" .
2 - I installed version 2.7.0 :
https://bitbucket.org/iBotPeaches/apktool/downloads/
3 - Now run the command: apktool b <Your-File>
@Alawsi What is the solution for m1 mac?
Information
apktool -version
) - 2.5.1Stacktrace/Logcat
Sample of layouts.xml: ...
<item type="layout" name="guide_grid_row">L|46188|5C4|BCF2</item>
<item type="layout" name="guide_ufi_bar">L|4674C|F90|E5CC</item>
<item type="layout" name="gumstick">L|476DC|A50|AC5A</item>
...Steps to Reproduce
apktool d ig-196-apkpure.apk
apktool b --use-aapt2 -o out.apk ig-196-apkpure
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
armeabi-v7a / Android 5.0+
Questions to ask before submission
apktool d
,apktool b
without changing anything? yes