Commit Graph

2013 Commits

Author SHA1 Message Date
Connor Tumbleson
bdbe1384bf
ARSC/AXML Parser Rework (#3131)
* Supports ASRC with null renamed package.
* Rework ASRC Chunk parser to a loop to break assumption of order of chunks
* Break out unknown skips for alignment to ResourceTypes.h
* Add verbose information for file skips
* Add test for protected apk sample
* Rework chunk parsing for StringBlock
* Refactor AXML Parser to support proper header reading
* Fix parsing if attribute size reported does not align to actual size
2023-07-12 05:33:28 -04:00
Connor Tumbleson
86340503ac
Patch aapt for ignoring duplicate bag items. (#3130)
* build: update aapt (win/linux) binaries

 - bc4ca278f3

* build: update aapt2 (win/linux) binaries

* build: update aapt/aapt2 (mac) binaries
2023-07-09 21:23:07 -04:00
Connor Tumbleson
abb042772f
docs: add workaround for building on mac. 2023-07-09 21:03:59 -04:00
Connor Tumbleson
2b81215846
test: add assertions for unknown files / assets (#3074) 2023-07-04 12:47:26 -04:00
Connor Tumbleson
0e3e165d4e
refactor: extract nextChunk() out of readLibraryType (#3126) 2023-07-04 12:28:49 -04:00
Connor Tumbleson
79cfdd179c
Correct Attribute Resolution (#3123)
* refactor: rename package_ to pkgId

* refactor: ResAttrDecoder takes ResTable

* fix: fallback on attr decoding to proper prefix

* fix: reverse order of processing to trust string pool 2nd

Android prefers the resource map value over what the String block has.
This can be seen quite often in obfuscated apps where values such as:
 <item android:state_enabled="true" app:state_collapsed="false" app:state_collapsible="true">
Are improperly decoded when trusting the String block.
Leveraging the resource map allows us to get the proper value.
 <item android:state_enabled="true" app:d2="false" app:d3="true">

* refactor: set default value if no string/res value
2023-07-04 12:06:53 -04:00
Connor Tumbleson
f42ce82f0d
style: cleanup formatting from ApkInvoker introduction 2023-07-03 18:46:47 -04:00
sv99
a7e2e3e5e1
Extract into ApkInvoker and split into data classes. (#3124)
* extract AaptInvoker and rename MetaFile to ApkInfo, all decode methods from AndrolibResources moved to the ApkDecoder

* extract ARSCData and FlagsOffset from ARSCDecoder and remove unused imports

* rebase to master

* move decodeManifest and decodeResources to the ResourceDecoder

* remove commented old code
2023-07-03 18:38:52 -04:00
dependabot[bot]
e69b1ed7c0
build(deps): bump gradle/gradle-build-action from 2.4.2 to 2.5.1 (#3119)
Bumps [gradle/gradle-build-action](https://github.com/gradle/gradle-build-action) from 2.4.2 to 2.5.1.
- [Release notes](https://github.com/gradle/gradle-build-action/releases)
- [Commits](https://github.com/gradle/gradle-build-action/compare/v2.4.2...v2.5.1)

---
updated-dependencies:
- dependency-name: gradle/gradle-build-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-03 05:47:33 -04:00
Connor Tumbleson
ab6f1b416e
refactor: split child classes to own file for decoders (#3116) 2023-07-02 19:44:20 -04:00
Connor Tumbleson
e85472fee8
refactor: sparse log should be a notice (debug only) 2023-07-02 06:04:19 -04:00
ArjunaKumarMohanta
7a22af28af
feat: Upgrade gradle to v8.2 (#3111)
* feat: Upgrade gradle to v8.2

* Update Gradle distribution URL to include 'all' package
2023-07-02 05:55:28 -04:00
Connor Tumbleson
5a7e7b152d
feat: update internal framework to API 34 (Vanilla Ice Cream) (#3115) 2023-07-02 05:43:04 -04:00
Connor Tumbleson
9f71a78f10
refactor: put gradle wrapper on its own workflow (#3114) 2023-07-02 05:36:00 -04:00
Connor Tumbleson
70d941d18d
feat: support upside-down-cake/vanilla-ice-cream sdk shorthand (#3113) 2023-07-02 05:35:45 -04:00
sv99
5cd94d6aa0
refactor Apkecoder - streamline decode procedure (#3109) 2023-06-28 21:02:46 +00:00
Connor Tumbleson
1e400aa995
fix: handle invalid string id during namespace resolution (#3107) 2023-06-28 11:24:50 -04:00
Connor Tumbleson
6ed458a428
refactor: add missing license header 2023-06-28 06:16:10 -04:00
sv99
85a710f77a
refactor class ApkDecoder (#3106) 2023-06-28 06:13:22 -04:00
sv99
40d427e5bd
Extract class Framework from AndrolibResources (#3105) 2023-06-27 10:51:26 -04:00
sv99
9c495cae29
Move build functions from Androlib to the ApkBuilder (#3103) 2023-06-27 08:25:27 -04:00
Connor Tumbleson
10495cbe96
Refactor into common config object. (#3100)
* extract Config

* extract Config

* style: linting

---------

Co-authored-by: Slava Volkov <sv99@inbox.ru>
2023-06-25 15:07:23 -04:00
dependabot[bot]
25509a7498
build(deps): bump com.google.guava:guava from 32.0.0-jre to 32.0.1-jre (#3092)
Bumps [com.google.guava:guava](https://github.com/google/guava) from 32.0.0-jre to 32.0.1-jre.
- [Release notes](https://github.com/google/guava/releases)
- [Commits](https://github.com/google/guava/commits)

---
updated-dependencies:
- dependency-name: com.google.guava:guava
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-12 06:18:45 -04:00
dependabot[bot]
e2db3b93bc
build(deps): bump commons-io:commons-io from 2.12.0 to 2.13.0 (#3093)
Bumps commons-io:commons-io from 2.12.0 to 2.13.0.

---
updated-dependencies:
- dependency-name: commons-io:commons-io
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-12 05:52:15 -04:00
sv99
168aa1abc0
move AndrolidExceptions to the package brut.androlib.exceptions (renamed from brut.androlib.err) (#3088) 2023-06-10 13:16:31 -04:00
dependabot[bot]
92f70bbd0b
build(deps): bump com.google.guava:guava from 31.1-jre to 32.0.0-jre (#3085)
Bumps [com.google.guava:guava](https://github.com/google/guava) from 31.1-jre to 32.0.0-jre.
- [Release notes](https://github.com/google/guava/releases)
- [Commits](https://github.com/google/guava/commits)

---
updated-dependencies:
- dependency-name: com.google.guava:guava
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-29 07:44:07 -04:00
Marc Miltenberger
636b1a128e
Deprecated SnakeYAML methods (#3079)
I replaced the deprecated methods in SnakeYAML 1.33 with the respective non-deprecated constructor calls.
These are equivalent:
The deprecated non-arg constructor of Constructor https://bitbucket.org/snakeyaml/snakeyaml/src/snakeyaml-1.33/src/main/java/org/yaml/snakeyaml/constructor/Constructor.java
calls 7f5106920d/src/main/java/org/yaml/snakeyaml/constructor/SafeConstructor.java (lines-52), which uses a new empty LoaderOptions()

Similarly, SafeRepresenter 7f5106920d/src/main/java/org/yaml/snakeyaml/representer/SafeRepresenter.java (lines-54) uses a new empty DumperOptions.
2023-05-27 13:20:57 -04:00
Connor Tumbleson
e53869ceba
build: lock gradle actions to specific versions (#3073) 2023-05-22 06:41:03 -04:00
dependabot[bot]
56b07d284b
build(deps): bump commons-io:commons-io from 2.11.0 to 2.12.0 (#3072)
Bumps commons-io:commons-io from 2.11.0 to 2.12.0.

---
updated-dependencies:
- dependency-name: commons-io:commons-io
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-22 06:14:15 -04:00
Connor Tumbleson
deb9dcf089
fix: support 0_resource_name_obfuscated (#3067)
* fix: support `0_resource_name_obfuscated`

* refactor: drop jdk9 for jdk8 logic
2023-05-20 15:06:36 -04:00
sv99
b83b58e8e8
Correct aapt/aapt2 waiting too long on execution output (#3071)
Co-authored-by: Connor Tumbleson <iBotPeaches@users.noreply.github.com>
2023-05-20 14:01:03 -04:00
sv99
80dcdd1d34
add application plugin to the apktool-cli (#3070) 2023-05-20 13:53:29 -04:00
Connor Tumbleson
fb4889f432
feat: update internal framework to API 34 (Upside Down Cake Preview) (#3063)
* feat: update internal framework to API 34 (Upside Down Cake Preview)

* test: add assertion for API34 property
2023-05-13 06:43:31 -04:00
sv99
48b71b34b1
refactor: Replace to nio & apply CS inspection skips (#3055) 2023-05-13 06:12:22 -04:00
AARON
8d222d7f58
feat: Upgrade gradle to v8.1.1 (#3054) 2023-05-01 07:56:33 -04:00
Connor Tumbleson
a079fe74fc
Move to official Google smali fork (#3051)
* refactor: swap to google smali 3.0.3

* docs: update docs for smali change
2023-04-28 19:30:06 -04:00
Connor Tumbleson
775f1dbff3
feat: add java version to bug report
- fixes: #3049
2023-04-28 07:03:15 -04:00
Crimson
8572a97f43
feat: Upgrade gradle to v8.1 (#3043) 2023-04-14 14:29:00 -04:00
Connor Tumbleson
d3c5813442
fix: properly read 'XML_TYPE_OVERLAY_POLICY' (#3035) 2023-03-25 07:14:38 -04:00
dependabot[bot]
603e52d1f8
build(deps): bump com.guardsquare:proguard-gradle from 7.3.1 to 7.3.2 (#3032)
Bumps [com.guardsquare:proguard-gradle](https://github.com/Guardsquare/proguard) from 7.3.1 to 7.3.2.
- [Release notes](https://github.com/Guardsquare/proguard/releases)
- [Commits](https://github.com/Guardsquare/proguard/compare/v7.3.1...v7.3.2)

---
updated-dependencies:
- dependency-name: com.guardsquare:proguard-gradle
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-20 05:36:14 -04:00
Connor Tumbleson
7a15c7b13c
build: add dependabot updates (#3023) 2023-03-07 05:52:01 -05:00
ArjunaKumarMohanta
1fc7c0f8ca
build: Update guava, shadow and proguard dependencies (#3020)
* Upgrade `guava` to `31.1-jre` from `31.0.1-jre`
 * Upgrade `proguard_gradle` to `7.3.1` from `7.3.0`
 * Upgrade `shadow` to `8.0.0` from `7.1.0`
2023-03-07 05:43:21 -05:00
ArjunaKumarMohanta
a02c8c82a0
Upgrade Gradle version to 8.0.2 (#3016)
* Upgrade  gradle  version  to 8.0.2

* Fix
2023-03-05 10:55:09 -05:00
Connor Tumbleson
9153a272d3
fix: support 10mb apktool.yml parsing (#3015) 2023-03-04 14:51:21 -05:00
Connor Tumbleson
1d60523cae
build: run validations against gradle binary 2023-03-04 13:51:16 -05:00
Connor Tumbleson
56ea1cb35e
fix: allow workflow to run if gradle updates 2023-03-04 13:50:14 -05:00
Igor Eisberg
120611879c
fix: accept empty resources.arsc (#2998)
* fix: accept empty resources.arsc

* fix: accept empty resources.arsc (fix isFrameworkApk=true)
2023-02-19 06:57:03 -05:00
Connor Tumbleson
0a3c7595eb
feat: support config flags as low as 8 bytes (#2982) 2023-01-21 13:30:13 -05:00
Connor Tumbleson
a73ace23ff
build: move build step to jdk17 2023-01-14 08:09:39 -05:00
Connor Tumbleson
875fea4d9b
Restructure Testable Java versions. (#2977)
* build: drop non-lts older Java versions

* build: upgrade to gradle 7.6
2023-01-14 07:46:13 -05:00