17 Commits

Author SHA1 Message Date
Igor Eisberg
b49e77087d
refactor: clean up external pull parser and introduce brut.j.xml (#3709)
* refactor: clean up external pull parser and introduce brut.j.xml

We have no need for an XML pull parser in the project,
it was only used for testing, which is now done with XPath.

The external xpp3 library from org.ogce is obsolete and has
the issue of including javax.xml.namespace.QName which conflicts
with the JRE implementation that exists for a very long time now.
This makes direct usages of QName produce very obscure NPEs that
took me hours to figure out. This patch will allow further
optimization that is WIP.
The external library was replaced by the basic xmlpull API.

The MXSerializer has been cleaned and the features used by apktool
have been integrated into the custom implementation, now part of
a separate module called brut.j.xml.
Writing has been optimized by buffering write operations, inspired
by KXmlSerializer used by Android itself.

A class XmlPullUtils also written that allows copying from a
XmlPullParser into a XmlSerializer with or without an EventHandler.
We use it for AndroidManifestPullStreamDecoder (with EventHandler,
to allow omitting the uses-sdk tag), and for ResXmlPullStreamDecoder
(direct copy, without EventHandler).

saveDocument in ResXmlPatcher was tweaked to output proper output -
a new line after declaration and a new line after root element's
end tag.

TL;DR mostly behind the scene refactor, no end user changes.
2024-10-15 06:54:03 -04:00
Connor Tumbleson
674bb4208a
build: start new dev cycle (2.10.1-SNAPSHOT) 2024-09-17 07:06:06 -04:00
Connor Tumbleson
644f114688
build: version bump (2.10.0) 2024-09-16 20:09:59 -04:00
Connor Tumbleson
5c1716ffef
Workaround invalid org.xmlpull loader with R8 (#3604)
* build: move to semi-modern xmlpull version

* fix: prevent stripping invalid service loader

* fix: rework the 'release'/'publish' plan
2024-05-17 19:43:30 -04:00
Arjuna Kumar Mohanta
d52715d1da
feat: Upgrade gradle to v8.7 (#3595) 2024-05-14 06:35:21 -04:00
Connor Tumbleson
e69ecb578d
Reproducible Builds (#3559)
* fix: remove ShadowJar plugin

 - unable to control file dates of archive entries

* refactor: use native Gradle "fatJar" method

* refactor: drop proguard for r8

* fix: wire up R8

* wip: remove fail-fast

* Revert "wip: remove fail-fast"

This reverts commit 5d005bf82e87c89efa5552ee8f8e9c0a569aea0d.

* fix: suppress unused proguard keep messages

* fix: require java11+ for r8
2024-04-07 11:45:55 -04:00
Connor Tumbleson
e08ba75776
build: start new dev cycle (2.10.0-SNAPSHOT) 2024-01-05 07:21:23 -05:00
Connor Tumbleson
841db5061a
build: version bump (2.9.2) 2024-01-05 06:29:04 -05:00
Connor Tumbleson
f56de45f38
build: start new dev cycle (2.9.2-SNAPSHOT) 2024-01-05 06:28:51 -05:00
Connor Tumbleson
077b2009da
build: version bump (2.9.1) 2023-12-05 18:26:28 -05:00
Connor Tumbleson
d2599874d8
build: start new dev cycle (2.9.1-SNAPSHOT) 2023-10-08 14:10:20 -04:00
Connor Tumbleson
b64e257c9b
build: version bump (2.9.0) 2023-10-08 09:40:30 -04:00
Connor Tumbleson
6794f54aa0
build: rename 2.8.2 to 2.9.0 2023-10-08 09:40:15 -04:00
Connor Tumbleson
93c66ef373
build: migrate towards "libs.versions.toml" (#3353) 2023-10-01 06:08:47 -04:00
Connor Tumbleson
f3936cbd22
fix: enforce java 1.8 compatibility with built artifacts (#3330) 2023-09-13 06:25:47 -04:00
Connor Tumbleson
0d7a1bc3a8
build: upgrade to shadow build 8.1.1 (#3259) 2023-08-09 06:33:22 -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