From 57ba341ae92cb246f73d4e69b3872cf83feb7386 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4=D1=80=20?= =?UTF-8?q?=D0=9A=D0=BB=D0=B5=D1=88=D0=BD=D0=B8=D0=BD?= Date: Wed, 16 Nov 2022 10:06:11 +0300 Subject: [PATCH 1/2] fix: res/layout/(name removed).xml: Invalid file name: must contain only [a-zA-Z0-9$_.] error --- .../src/main/java/brut/androlib/res/data/ResResSpec.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/data/ResResSpec.java b/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/data/ResResSpec.java index 88cded092d..ee188a1cf0 100644 --- a/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/data/ResResSpec.java +++ b/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/data/ResResSpec.java @@ -36,11 +36,14 @@ public ResResSpec(ResID id, String name, ResPackage pkg, ResTypeSpec type) { this.mId = id; String cleanName; + if (name == null || name.isEmpty() || name.equals("(name removed)")) + name = "APKTOOL_DUMMYVAL_" + id.toString(); + ResResSpec resResSpec = type.getResSpecUnsafe(name); if (resResSpec != null) { cleanName = String.format("APKTOOL_DUPLICATE_%s_%s", type, id.toString()); } else { - cleanName = ((name == null || name.isEmpty()) ? ("APKTOOL_DUMMYVAL_" + id.toString()) : name); + cleanName = name; } this.mName = cleanName; From eb3282ef684560e79873b1b9b5ef02bbedb99e1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4=D1=80=20?= =?UTF-8?q?=D0=9A=D0=BB=D0=B5=D1=88=D0=BD=D0=B8=D0=BD?= Date: Wed, 16 Nov 2022 16:41:08 +0300 Subject: [PATCH 2/2] refactored fix --- .../src/main/java/brut/androlib/res/data/ResResSpec.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/data/ResResSpec.java b/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/data/ResResSpec.java index ee188a1cf0..32b4065fc8 100644 --- a/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/data/ResResSpec.java +++ b/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/data/ResResSpec.java @@ -36,14 +36,13 @@ public ResResSpec(ResID id, String name, ResPackage pkg, ResTypeSpec type) { this.mId = id; String cleanName; - if (name == null || name.isEmpty() || name.equals("(name removed)")) - name = "APKTOOL_DUMMYVAL_" + id.toString(); + name = (("(name removed)".equals(name)) ? null : name); ResResSpec resResSpec = type.getResSpecUnsafe(name); if (resResSpec != null) { cleanName = String.format("APKTOOL_DUPLICATE_%s_%s", type, id.toString()); } else { - cleanName = name; + cleanName = ((name == null || name.isEmpty()) ? ("APKTOOL_DUMMYVAL_" + id.toString()) : name); } this.mName = cleanName;