Commit Graph

2130 Commits

Author SHA1 Message Date
oSumAtrIX ad7520357f
fix: do not try to get existing AAPT binary if a path to it is provided 2023-08-11 00:50:32 +02:00
oSumAtrIX 355dae94b0
chore: change publication group id 2023-08-11 00:49:37 +02:00
Connor Tumbleson 1243dd5546
Refactor logging for chunks and sparse flags. (#3260)
* refactor: log each chunk in verbose mode

* refactor: drop unneeded ":" from log output

* refactor: spit out sparse message once
2023-08-09 08:38:34 -04:00
Connor Tumbleson 0d7a1bc3a8
build: upgrade to shadow build 8.1.1 (#3259) 2023-08-09 06:33:22 -04:00
Connor Tumbleson 0e226928ce
Remove Apktool Dummys. (#3258)
* refactor: properly parse dummy resources

* feat: remove dummys
2023-08-09 06:15:57 -04:00
Connor Tumbleson bb9519a2d0
refactor: change naming pattern of class variables in StringBlock (#3256) 2023-08-08 07:11:11 -04:00
Connor Tumbleson 2549fe983b
build: run suite if any kotlin dsl file changes 2023-08-08 06:16:10 -04:00
Connor Tumbleson 22d792e328
fix: support encode styled string if length larger than offset (#3254) 2023-08-07 19:52:34 -04:00
Connor Tumbleson 50226e50c1
fix: support decoding application with duplicate res entries (#3252) 2023-08-05 12:21:42 -04:00
Connor Tumbleson 342ff67a4c
Migrate to Gradle Kotlin DSL (#3249)
* feat: initial migration to kotlin

* feat: initial migration to kotlin

* fix: wire up dependencies

* fix: Deprecated tag for kotlin detection

* refactor: put all modules into sub-projects

* fix: include jar file (android framework)

* fix: add version message/info

* fix: wire up version/gitrev to properties

* fix: wire up proguard on cli

* fix: wire up proguard

* fix: wire up output cleaning command

* fix: drop license header on gradle files

 - fully rewritten from scratch by myself
 - no longer including license header on build files

* fix: add compile utf8/flags for java8

* refactor: remove unneeded curly braces

* feat: progress towards maven-publish

* build: publish to maven

* docs: update documentation

* refactor: prevent implicit order by removal of afterEvaluate

* build: remove unused license plugin
2023-08-05 06:28:31 -04:00
sv99 0a354a9d97
Merge ResAttrDecoder into the AXmlResourceParser (#3243) 2023-08-01 18:43:15 -04:00
sv99 9d7d58016e
ApkDecoder use apkFile and unknownFiles from ApkInfo (#3242) 2023-08-01 06:57:22 -04:00
dependabot[bot] e52c3b0f56
build(deps): bump org.apache.commons:commons-lang3 from 3.12.0 to 3.13.0 (#3240)
Bumps org.apache.commons:commons-lang3 from 3.12.0 to 3.13.0.

---
updated-dependencies:
- dependency-name: org.apache.commons:commons-lang3
  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-08-01 06:44:05 -04:00
Connor Tumbleson 7c2cb5b30a
Hardened String Block Parser (#3239)
* fix: add headerSize to stringBlock to detect larger headers

* fix: handle app with style offset, but 0 styles

* refactor: split counting stream into CountingDataInput

* fix: read strings till end of string pool chunk

* fix: support out of bound string reading

* fix: don't read string/style offset out of bounds

* refactor: cleanup comments for string parser

* style: comment on 4 byte alignment

* fix: only warn if utf16 string
2023-08-01 06:23:14 -04:00
dependabot[bot] 9f8c1b3711
build(deps): bump gradle/gradle-build-action from 2.6.1 to 2.7.0 (#3241)
Bumps [gradle/gradle-build-action](https://github.com/gradle/gradle-build-action) from 2.6.1 to 2.7.0.
- [Release notes](https://github.com/gradle/gradle-build-action/releases)
- [Commits](https://github.com/gradle/gradle-build-action/compare/v2.6.1...v2.7.0)

---
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-31 05:46:21 -04:00
Connor Tumbleson 81d6040beb
fix: skip files that attempt to break filesystem (#3238) 2023-07-30 17:32:54 -04:00
Connor Tumbleson 663088890b
fix: skip unknown chunks in AXML (#3237) 2023-07-30 16:20:07 -04:00
Connor Tumbleson 445da0e658
Move to XMLUnit Legacy (#3235)
* build: migrate to xmlunit 2.9.1

* feat: opt into xxe protection for test suite
2023-07-30 13:48:26 -04:00
Connor Tumbleson e19c44b1b1
refactor: drop unused method 2023-07-30 13:16:34 -04:00
Connor Tumbleson cd275ff48b
fix: resolve missing namespace on system resources (#3234)
* fix: resolve missing namespace on system resources

* refactor: align pkdId check to 2nd of if
2023-07-30 07:18:06 -04:00
Connor Tumbleson 57ef8a205a
fix: support duplicated namespaces (#3233) 2023-07-30 05:52:35 -04:00
Igor Eisberg 33ca2929c9
refactor: clean up style and redundancy (#3232)
* refactor: clean up redundancy

* refactor: no need for both setApkFile and setApkFileName
2023-07-29 18:56:27 -04:00
Connor Tumbleson ce180dce87
fix: un-deprecate --copy-original
-- fixes: #2129
2023-07-29 06:51:29 -04:00
Connor Tumbleson 486fb20084
Support empty resource table. (#3230)
* test: assertions for empty arsc table

* fix: don't crash if no pkgs found
2023-07-29 06:49:13 -04:00
Connor Tumbleson fe93fd21d1
refactor: manual YAML Cleanup (#3229)
* refactor: add missing license headers

* fix: remove unused exceptions

* refactor: remove unused single quote / slash param
2023-07-29 06:14:40 -04:00
ArjunaKumarMohanta 6e5d49bd66
fix: Gradle wrapper validation trigger issue (#3228)
Resolved the Gradle wrapper validation triggering problem by implementing a more precise check. Now, the validation process will only be triggered when there are actual changes in the gradle/wrapper/gradle-wrapper.jar file, preventing unnecessary validations.
2023-07-29 06:02:19 -04:00
sv99 62b9eedb9e
Remove SnakeYAML for manual YAML Parser (#3191)
* Simple straitforward yaml serialization with minimal needed functionality

* Consolidate ApkInfo tests in the package brut.androlib.apk, unify interface YamlReader and add ApkInfoSerializationTest read -> write -> read test

* remove dependencies from snakeyaml

* remove unused methods

* correct indent test value

* correct style with curly braces

* add test item with hieroglyph
2023-07-29 05:59:15 -04:00
sv99 da6ed0f729
suppress javadoc lint warning (#3222) 2023-07-26 07:28:08 -04:00
Connor Tumbleson 772646f95b
fix: end parsing if EOF is hit (#3223) 2023-07-26 07:27:15 -04:00
Connor Tumbleson ab7998439e
"--no-compile-sdk-metadata" tests. (#3220)
* refactor: move loadDocument() to base

* test: confirm manifest properties are removed/left-alone

* chore: remove unused imports
2023-07-25 07:29:53 -04:00
Connor Tumbleson 7f0d94ede9
feat: Introduce --no-compile-sdk-metadata (#3208)
* feat: ignore sdk metadata during aapt2

* test: adjust test suite for aapt2 change
2023-07-25 06:43:15 -04:00
Connor Tumbleson 5d5c33aba6
fix: adjust helper files to include system property sets (#3215) 2023-07-25 06:29:11 -04:00
sv99 7a4a20ba34
Support explicit operation for when to load full resource table (#3217) 2023-07-25 06:18:13 -04:00
Connor Tumbleson 20afa7d2e5
chore: add additional sponsor link 2023-07-24 17:35:54 -04:00
dependabot[bot] 6fb0c734c7
build(deps): bump gradle/wrapper-validation-action from 1.0.6 to 1.1.0 (#3214)
Bumps [gradle/wrapper-validation-action](https://github.com/gradle/wrapper-validation-action) from 1.0.6 to 1.1.0.
- [Release notes](https://github.com/gradle/wrapper-validation-action/releases)
- [Commits](https://github.com/gradle/wrapper-validation-action/compare/v1.0.6...v1.1.0)

---
updated-dependencies:
- dependency-name: gradle/wrapper-validation-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-24 06:44:23 -04:00
dependabot[bot] ad87eb4d15
build(deps): bump gradle/gradle-build-action from 2.6.0 to 2.6.1 (#3213)
Bumps [gradle/gradle-build-action](https://github.com/gradle/gradle-build-action) from 2.6.0 to 2.6.1.
- [Release notes](https://github.com/gradle/gradle-build-action/releases)
- [Commits](https://github.com/gradle/gradle-build-action/compare/v2.6.0...v2.6.1)

---
updated-dependencies:
- dependency-name: gradle/gradle-build-action
  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>
Co-authored-by: Connor Tumbleson <iBotPeaches@users.noreply.github.com>
2023-07-24 06:44:09 -04:00
sv99 c2ddeac3ab
Explicit ResFileDecoder initiazation and add constructors AXmlResourceParser(ResTable resTable) and AndroidManifestResourceParser(ResTable resTable) (#3211) 2023-07-24 06:43:56 -04:00
Connor Tumbleson 490b6f8aee
fix: handle larger axml namespace headers than known (#3210) 2023-07-24 06:23:25 -04:00
Connor Tumbleson 03c198c1e4
fix: support skipping entries with NO_ENTRY (-1) flag (#3209) 2023-07-24 06:06:45 -04:00
Connor Tumbleson 79f57b070c
fix: support skipping unread header sizes of ResChunk (#3180)
* fix: support skipping unread header sizes of ResChunk

* refactor: note that header skip happens too late on some

* refactor: check for chunk header end at each of each header

* chore: skip reading header on string pools

* fix: move header check prior to reading entries on tables
2023-07-23 18:14:53 -04:00
Connor Tumbleson c7bb163834
chore: fix typo on resource message, drop shorthand if logic 2023-07-23 17:39:47 -04:00
sv99 3ba9838d08
Sreamline decoding AndroidManifest.xml (#3171) 2023-07-23 17:37:55 -04:00
Connor Tumbleson d1a0c941ab
Fix LocaleNumberSystem + ConfigFlag reading (#3205)
* fix: prevent over-reading config flags

* fix: properly read localeNumberingSystem

* test: adjust test for bcp47 aapt2 test

* fix: properly add 8 to 'read' on parser

* test: add test for aapt2 bcp47 tag

* test: add additional bcp47 test

* fix: handle numbering system parsing

* fix: add comment about localeNumber usage
2023-07-23 17:25:25 -04:00
Connor Tumbleson 54836509ed
fix: correct detection of sparse/not-sparse applications (#3201)
* test: add failing/passing sparse/not-sparse test

* fix: replace sparse/not applications w/ official sample

 -ref: c8f71aa67e

* fix: properly detect sparse applications during disassembly

* refactor: remove check on bool set for sparse resources
2023-07-23 11:20:12 -04:00
Connor Tumbleson fbae38690a
build: start new dev cycle (2.8.2-SNAPSHOT) 2023-07-22 13:38:00 -04:00
Connor Tumbleson 4f3cee1157
build: version bump (2.8.1) 2023-07-22 13:25:14 -04:00
Igor Eisberg 24b0c3249d
fix: crash when decompiling framework-res.apk with a tag (regression) (#3193) 2023-07-22 09:21:19 -04:00
Igor Eisberg 79b2173b85
style: normalize command descs and redundancy (#3188) 2023-07-21 06:08:30 -04:00
Connor Tumbleson d4ec44de41
Prevent loading from resource pool if type is not a resolveable resource (#3187)
* perf: prefer the shifted resId vs expensive package calls

* fix: only lookup values if reference/value
2023-07-20 21:32:19 -04:00
Igor Eisberg 261003316e
fix: add missing hasResources check (#3182) 2023-07-20 11:40:16 -04:00