patch-apk icon indicating copy to clipboard operation
patch-apk copied to clipboard

Invalid resource directory name

Open kmifka opened this issue 5 years ago • 3 comments

Really great tool!

Unfortunately it produces an error if I try to patch the Number26 app.

Output:

Getting APK path(s) for package: de.number26.android [+] APK path: /data/app/de.number26.android-volni_2uSzOHIPhw6yihkA==/base.apk [+] APK path: /data/app/de.number26.android-volni_2uSzOHIPhw6yihkA==/split_config.arm64_v8a.apk [+] APK path: /data/app/de.number26.android-volni_2uSzOHIPhw6yihkA==/split_config.xxhdpi.apk

Pulling APK file(s) from device. [+] Pulling: de.number26.android-base.apk [+] Pulling: de.number26.android-split_config.arm64_v8a.apk [+] Pulling: de.number26.android-split_config.xxhdpi.apk

App bundle/split APK detected, rebuilding as a single APK.

Extracting individual APKs with apktool. [+] Extracting: /var/folders/xy/trzzh9hs09j7mzn5zs1zh5br0000gp/T/tmpgqdkvdkr/de.number26.android-base.apk [+] Extracting: /var/folders/xy/trzzh9hs09j7mzn5zs1zh5br0000gp/T/tmpgqdkvdkr/de.number26.android-split_config.arm64_v8a.apk [+] Extracting: /var/folders/xy/trzzh9hs09j7mzn5zs1zh5br0000gp/T/tmpgqdkvdkr/de.number26.android-split_config.xxhdpi.apk

Copying files and directories from split APKs into base APK.

Found public.xml in the base APK, fixing resource identifiers across split APKs. [+] Resolving 381 resource identifiers. [+] Located 362 true resource names. [+] Updated 362 dummy resource names with true names in the base APK. [+] Updated 715 references to dummy resource names in the base APK.

Found styles.xml in the base APK, checking for duplicate

Disabling APK splitting in AndroidManifest.xml of base APK.

Rebuilding as a single APK. [+] Building APK with apktool. W: invalid resource directory name: /var/folders/xy/trzzh9hs09j7mzn5zs1zh5br0000gp/T/tmpgqdkvdkr/de.number26.android-base/res navigation brut.androlib.AndrolibException: brut.common.BrutException: could not exec (exit code = 1): [/var/folders/xy/trzzh9hs09j7mzn5zs1zh5br0000gp/T/brut_util_Jar_8450828421894022643.tmp, p, --forced-package-id, 127, --min-sdk-version, 23, --target-sdk-version, 29, --version-code, 202015002, --version-name, 3.43.1, --no-version-vectors, -F, /var/folders/xy/trzzh9hs09j7mzn5zs1zh5br0000gp/T/APKTOOL7092845724429614847.tmp, -0, arsc, -0, META-INF/androidx.activity_activity-ktx.version, -0, META-INF/androidx.activity_activity.version, -0, META-INF/androidx.appcompat_appcompat-resources.version, -0, META-INF/androidx.appcompat_appcompat.version, -0, META-INF/androidx.arch.core_core-runtime.version, -0, META-INF/androidx.asynclayoutinflater_asynclayoutinflater.version, -0, META-INF/androidx.biometric_biometric.version, -0, META-INF/androidx.browser_browser.version, -0, META-INF/androidx.cardview_cardview.version, -0, META-INF/androidx.coordinatorlayout_coordinatorlayout.version, -0, META-INF/androidx.core_core-ktx.version, -0, META-INF/androidx.core_core.version, -0, META-INF/androidx.cursoradapter_cursoradapter.version, -0, META-INF/androidx.customview_customview.version, -0, META-INF/androidx.documentfile_documentfile.version, -0, META-INF/androidx.drawerlayout_drawerlayout.version, -0, META-INF/androidx.dynamicanimation_dynamicanimation.version, -0, META-INF/androidx.fragment_fragment-ktx.version, -0, META-INF/androidx.fragment_fragment.version, -0, META-INF/androidx.interpolator_interpolator.version, -0, META-INF/androidx.legacy_legacy-support-core-ui.version, -0, META-INF/androidx.legacy_legacy-support-core-utils.version, -0, META-INF/androidx.legacy_legacy-support-v4.version, -0, META-INF/androidx.lifecycle_lifecycle-livedata-core-ktx.version, -0, META-INF/androidx.lifecycle_lifecycle-livedata-core.version, -0, META-INF/androidx.lifecycle_lifecycle-livedata-ktx.version, -0, META-INF/androidx.lifecycle_lifecycle-livedata.version, -0, META-INF/androidx.lifecycle_lifecycle-process.version, -0, META-INF/androidx.lifecycle_lifecycle-runtime-ktx.version, -0, META-INF/androidx.lifecycle_lifecycle-runtime.version, -0, META-INF/androidx.lifecycle_lifecycle-service.version, -0, META-INF/androidx.lifecycle_lifecycle-viewmodel-ktx.version, -0, META-INF/androidx.lifecycle_lifecycle-viewmodel-savedstate.version, -0, META-INF/androidx.lifecycle_lifecycle-viewmodel.version, -0, META-INF/androidx.loader_loader.version, -0, META-INF/androidx.localbroadcastmanager_localbroadcastmanager.version, -0, META-INF/androidx.media_media.version, -0, META-INF/androidx.navigation_navigation-common-ktx.version, -0, META-INF/androidx.navigation_navigation-common.version, -0, META-INF/androidx.navigation_navigation-fragment-ktx.version, -0, META-INF/androidx.navigation_navigation-fragment.version, -0, META-INF/androidx.navigation_navigation-runtime-ktx.version, -0, META-INF/androidx.navigation_navigation-runtime.version, -0, META-INF/androidx.navigation_navigation-ui-ktx.version, -0, META-INF/androidx.navigation_navigation-ui.version, -0, META-INF/androidx.print_print.version, -0, META-INF/androidx.recyclerview_recyclerview.version, -0, META-INF/androidx.room_room-runtime.version, -0, META-INF/androidx.savedstate_savedstate.version, -0, META-INF/androidx.slidingpanelayout_slidingpanelayout.version, -0, META-INF/androidx.sqlite_sqlite-framework.version, -0, META-INF/androidx.sqlite_sqlite.version, -0, META-INF/androidx.swiperefreshlayout_swiperefreshlayout.version, -0, META-INF/androidx.transition_transition.version, -0, META-INF/androidx.vectordrawable_vectordrawable-animated.version, -0, META-INF/androidx.vectordrawable_vectordrawable.version, -0, META-INF/androidx.versionedparcelable_versionedparcelable.version, -0, META-INF/androidx.viewpager2_viewpager2.version, -0, META-INF/androidx.viewpager_viewpager.version, -0, META-INF/androidx.work_work-runtime-ktx.version, -0, META-INF/androidx.work_work-runtime.version, -0, META-INF/com.google.android.material_material.version, -0, META-INF/com.google.dagger_dagger.version, -0, META-INF/services/io.grpc.f1, -0, META-INF/services/io.grpc.v0, -0, webp, -0, png, -0, res/drawable-mdpi-v4/abc_ab_share_pack_mtrl_alpha.9.png, -0, res/drawable-mdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png, -0, res/drawable-mdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png, -0, res/drawable-mdpi-v4/abc_list_divider_mtrl_alpha.9.png, -0, res/drawable-mdpi-v4/abc_list_focused_holo.9.png, -0, res/drawable-mdpi-v4/abc_list_longpressed_holo.9.png, -0, res/drawable-mdpi-v4/abc_list_pressed_holo_dark.9.png, -0, res/drawable-mdpi-v4/abc_list_pressed_holo_light.9.png, -0, res/drawable-mdpi-v4/abc_list_selector_disabled_holo_dark.9.png, -0, res/drawable-mdpi-v4/abc_list_selector_disabled_holo_light.9.png, -0, res/drawable-mdpi-v4/abc_menu_hardkey_panel_mtrl_mult.9.png, -0, res/drawable-mdpi-v4/abc_switch_track_mtrl_alpha.9.png, -0, res/drawable-mdpi-v4/abc_textfield_activated_mtrl_alpha.9.png, -0, res/drawable-mdpi-v4/abc_textfield_default_mtrl_alpha.9.png, -0, res/drawable-mdpi-v4/abc_textfield_search_activated_mtrl_alpha.9.png, -0, res/drawable-mdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png, -0, res/drawable-xhdpi-v4/chat_bubble_agent.9.png, -0, res/drawable-xhdpi-v4/chat_bubble_self.9.png, -0, res/drawable-xhdpi-v4/n26_textfield_mtrl_alpha.9.png, -0, jpg, -0, mp4, -0, res/raw/joda_atlantic_jan_mayen, -0, res/raw/joda_est, -0, res/raw/joda_etc_gmt, -0, res/raw/joda_etc_gmt_1, -0, res/raw/joda_etc_gmt_10, -0, res/raw/joda_etc_gmt_11, -0, res/raw/joda_etc_gmt_12, -0, res/raw/joda_etc_gmt_13, -0, res/raw/joda_etc_gmt_14, -0, res/raw/joda_etc_gmt_2, -0, res/raw/joda_etc_gmt_3, -0, res/raw/joda_etc_gmt_4, -0, res/raw/joda_etc_gmt_5, -0, res/raw/joda_etc_gmt_6, -0, res/raw/joda_etc_gmt_7, -0, res/raw/joda_etc_gmt_8, -0, res/raw/joda_etc_gmt_9, -0, res/raw/joda_etc_gmtplus1, -0, res/raw/joda_etc_gmtplus10, -0, res/raw/joda_etc_gmtplus11, -0, res/raw/joda_etc_gmtplus12, -0, res/raw/joda_etc_gmtplus2, -0, res/raw/joda_etc_gmtplus3, -0, res/raw/joda_etc_gmtplus4, -0, res/raw/joda_etc_gmtplus5, -0, res/raw/joda_etc_gmtplus6, -0, res/raw/joda_etc_gmtplus7, -0, res/raw/joda_etc_gmtplus8, -0, res/raw/joda_etc_gmtplus9, -0, res/raw/joda_etc_uct, -0, res/raw/joda_etc_utc, -0, res/raw/joda_hst, -0, res/raw/joda_mst, -0, res/raw/joda_pacific_johnston, -0, m4v, -0, mp3, -0, arsc, -I, /Users/korbinianmifka/Library/apktool/framework/1.apk, -S, /var/folders/xy/trzzh9hs09j7mzn5zs1zh5br0000gp/T/tmpgqdkvdkr/de.number26.android-base/res, -M, /var/folders/xy/trzzh9hs09j7mzn5zs1zh5br0000gp/T/tmpgqdkvdkr/de.number26.android-base/AndroidManifest.xml] Error: Failed to run 'apktool b /var/folders/xy/trzzh9hs09j7mzn5zs1zh5br0000gp/T/tmpgqdkvdkr/de.number26.android-base'. Run with --debug-output for more information.

kmifka avatar Apr 24 '20 18:04 kmifka

Hi @kmifka, thanks for the report. I've looked into this one and I'm about to make a minor update so that patch-apk.py calls apktool with the --use-aapt2 flag to build the single APK if it detects a res/navigation directory in the decompiled APK (see https://github.com/iBotPeaches/Apktool/issues/1978).

Unfortunately this won't be enough to rebuild the app in question as it appears apktool hits a known bug relating to the $ symbol in a resource name (see https://github.com/iBotPeaches/Apktool/issues/2271).

NickstaDB avatar Apr 29 '20 15:04 NickstaDB

Jump Mobility is also affected by this $ issue unfortunately

yoshimo avatar Apr 29 '20 19:04 yoshimo

Use latest apktool, fixed since v2.5.0

jseigelis avatar Nov 25 '21 00:11 jseigelis