# Changelog

## Score

- CAI 61 → 61 (-0.0)
- Rubric changed (rubric-2026.08.18 → rubric-2026.08.19) — scores are not directly comparable.

## Lenses

- Code Health 73 → 73 (-0.2)
- Architecture 100 → 100 (-0.2)
- Maturity 51 → 52 (+0.1)
- Readiness 87 → 87 (+0.0)
- Security 57 → 57 (+0.0)

## Resolved (30)

- Duplicated block (10 lines × 2) (brut.apktool/apktool-lib/src/main/java/brut/androlib/ApkBuilder.java)
- Duplicated block (10 lines × 2) (brut.apktool/apktool-lib/src/main/java/brut/androlib/res/decoder/BinaryResourceParser.java)
- Duplicated block (10 lines × 2) (brut.apktool/apktool-lib/src/main/java/brut/androlib/res/table/value/ResEnum.java)
- Duplicated block (10 lines × 2) (brut.apktool/apktool-lib/src/main/java/brut/androlib/res/table/value/ResEnum.java)
- Duplicated block (11 lines × 2) (brut.apktool/apktool-lib/src/main/java/brut/androlib/res/table/value/ResPrimitive.java)
- Duplicated block (11 lines × 2) (brut.j.util/src/main/java/brut/util/TextUtils.java)
- Duplicated block (11 lines × 2) (brut.j.util/src/main/java/brut/util/TextUtils.java)
- Duplicated block (12 lines × 2) (brut.apktool/apktool-cli/src/main/java/brut/apktool/Main.java)
- Duplicated block (12 lines × 2) (brut.apktool/apktool-lib/src/main/java/brut/androlib/res/xml/ResXmlUtils.java)
- Duplicated block (13 lines × 2) (brut.apktool/apktool-lib/src/main/java/brut/androlib/res/ResDecoder.java)
- Duplicated block (13 lines × 2) (brut.apktool/apktool-lib/src/main/java/brut/androlib/res/decoder/ResChunkPullParser.java)
- Duplicated block (13 lines × 2) (brut.apktool/apktool-lib/src/main/java/brut/androlib/res/table/value/ResEnum.java)
- Duplicated block (14 lines × 2) (brut.apktool/apktool-lib/src/main/java/brut/androlib/ApkBuilder.java)
- Duplicated block (14 lines × 2) (brut.apktool/apktool-lib/src/main/java/brut/androlib/res/table/value/ResEnum.java)
- Duplicated block (14 lines × 2) (brut.j.util/src/main/java/brut/util/TextUtils.java)
- Duplicated block (15 lines × 2) (brut.apktool/apktool-cli/src/main/java/brut/apktool/Main.java)
- Duplicated block (15 lines × 2) (brut.apktool/apktool-lib/src/main/java/brut/androlib/ApkBuilder.java)
- Duplicated block (8 lines × 2) (brut.apktool/apktool-cli/src/main/java/brut/apktool/Main.java)
- Duplicated block (9 lines × 2) (brut.apktool/apktool-lib/src/main/java/brut/androlib/res/decoder/ManifestPullEventHandler.java)
- Duplicated block (9 lines × 2) (brut.apktool/apktool-lib/src/main/java/brut/androlib/res/table/ResPackage.java)
- …and 10 more

## New (32)

- ApkDecoder.decode (cognitive 20) (brut.apktool/apktool-lib/src/main/java/brut/androlib/ApkDecoder.java)
- Boundary-crossing change coupling: ApkDecoder.java ↔ ZipRODirectory.java (brut.apktool/apktool-lib/src/main/java/brut/androlib/ApkDecoder.java)
- Duplicated block (10 lines × 2) (brut.apktool/apktool-lib/src/main/java/brut/androlib/ApkBuilder.java)
- Duplicated block (10 lines × 2) (brut.j.util/src/main/java/brut/util/TextUtils.java)
- Duplicated block (11 lines × 2) (brut.apktool/apktool-lib/src/main/java/brut/androlib/res/xml/ResXmlUtils.java)
- Duplicated block (12 lines × 2) (brut.apktool/apktool-lib/src/main/java/brut/androlib/res/ResDecoder.java)
- Duplicated block (12 lines × 2) (brut.apktool/apktool-lib/src/main/java/brut/androlib/res/decoder/ResChunkPullParser.java)
- Duplicated block (12 lines × 2) (brut.apktool/apktool-lib/src/main/java/brut/androlib/res/table/value/ResEnum.java)
- Duplicated block (13 lines × 2) (brut.apktool/apktool-lib/src/main/java/brut/androlib/ApkBuilder.java)
- Duplicated block (13 lines × 2) (brut.apktool/apktool-lib/src/main/java/brut/androlib/res/table/value/ResEnum.java)
- Duplicated block (13 lines × 2) (brut.j.util/src/main/java/brut/util/TextUtils.java)
- Duplicated block (14 lines × 2) (brut.apktool/apktool-cli/src/main/java/brut/apktool/Main.java)
- Duplicated block (14 lines × 2) (brut.apktool/apktool-lib/src/main/java/brut/androlib/ApkBuilder.java)
- Duplicated block (7 lines × 2) (brut.apktool/apktool-cli/src/main/java/brut/apktool/Main.java)
- Duplicated block (7 lines × 2) (brut.j.util/src/main/java/brut/util/TextUtils.java)
- Duplicated block (8 lines × 2) (brut.apktool/apktool-lib/src/main/java/brut/androlib/res/decoder/ManifestPullEventHandler.java)
- Duplicated block (8 lines × 2) (brut.apktool/apktool-lib/src/main/java/brut/androlib/res/table/ResPackage.java)
- Duplicated block (8 lines × 2) (brut.apktool/apktool-lib/src/main/java/brut/androlib/res/table/ResPackage.java)
- Duplicated block (9 lines × 2) (brut.apktool/apktool-lib/src/main/java/brut/androlib/ApkBuilder.java)
- Duplicated block (9 lines × 2) (brut.apktool/apktool-lib/src/main/java/brut/androlib/res/decoder/BinaryResourceParser.java)
- …and 12 more

## Changes since last survey

- 3 commits — 2 feature/other, 1 fixes

## By area

- brut.apktool/apktool-lib — 2 commits
- (root) — 1 commit

## Notable commits

- fix: fix: remove apktool-cli from maven publishing (#4191)
- change: Harden smali folder name validation during build to prevent path traversal (#4182)
- change: feat: allow outputting to empty folder without -f (#4201)
