mirror of
https://github.com/revanced/Apktool.git
synced 2025-02-23 16:51:10 +01:00
Merge pull request #1891 from iBotPeaches/issue-1889
Align aapt1/aapt2 codebases
This commit is contained in:
commit
84acc42cd9
@ -208,7 +208,8 @@ First step is using the [platform_frameworks_base](https://github.com/iBotPeache
|
||||
While previously unorganized, the repo now follows the branch naming convention depending on the current Android version.
|
||||
So `apktool_7.1` corresponds to the 7.1 Android release. This branch should work for all `android-7.1.x` tags for AOSP.
|
||||
|
||||
We didn't follow this naming convention until Android 7.1. So don't go looking for older versions.
|
||||
We didn't follow this naming convention until Android 7.1. So don't go looking for older versions. The current version
|
||||
is `apktool-9.0.0`, which corresponds to the Android 9.0 (Pie) release.
|
||||
|
||||
This repo has a variety of changes applied. These changes range from disabling optimizations to lessening the rules
|
||||
that aapt regularly has. We do this because apktool's job is to not fix apks, but rather keep them as close to the
|
||||
@ -224,8 +225,8 @@ we aren't building the entire AOSP package, the initial build is to just see if
|
||||
|
||||
We check out a certain tag. Currently we use
|
||||
|
||||
* aapt2 - `master#05c09faad2ab67ada8d354440680d40176841b6c`.
|
||||
* aapt1 - `android-8.1.0_r9`.
|
||||
* aapt2 - `android-9.0.0_r3`.
|
||||
* aapt1 - `android-9.0.0_r3`.
|
||||
|
||||
### Including our modified `frameworks/base` package.
|
||||
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -117,6 +117,8 @@ public class BaseTest {
|
||||
|
||||
if (qualifier == null) {
|
||||
XMLUnit.setIgnoreWhitespace(true);
|
||||
XMLUnit.setIgnoreAttributeOrder(true);
|
||||
XMLUnit.setCompareUnmatched(false);
|
||||
assertXMLEqual(control, test);
|
||||
return;
|
||||
}
|
||||
|
@ -20,17 +20,19 @@ import brut.androlib.*;
|
||||
import brut.directory.ExtFile;
|
||||
import brut.common.BrutException;
|
||||
import brut.util.OS;
|
||||
import org.custommonkey.xmlunit.XMLUnit;
|
||||
import org.junit.AfterClass;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Test;
|
||||
import org.xml.sax.SAXException;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Paths;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.custommonkey.xmlunit.XMLAssert.assertXMLEqual;
|
||||
|
||||
/**
|
||||
* @author Connor Tumbleson <connor.tumbleson@gmail.com>
|
||||
@ -70,16 +72,21 @@ public class DebugTagRetainedTest extends BaseTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void DebugIsTruePriorToBeingFalseTest() throws IOException {
|
||||
public void DebugIsTruePriorToBeingFalseTest() throws IOException, SAXException {
|
||||
String apk = "issue1235-new";
|
||||
|
||||
String expected = TestUtils.replaceNewlines("<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n" +
|
||||
"<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\" package=\"com.ibotpeaches.issue1235\" platformBuildVersionCode=\"23\" platformBuildVersionName=\"6.0-2438415\">\n" +
|
||||
" <application android:debuggable=\"true\"/>" +
|
||||
"</manifest>");
|
||||
String expected = TestUtils.replaceNewlines("<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>" +
|
||||
"<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\" android:compileSdkVersion=\"23\" " +
|
||||
"android:compileSdkVersionCodename=\"6.0-2438415\" package=\"com.ibotpeaches.issue1235\" platformBuildVersionCode=\"23\" " +
|
||||
"platformBuildVersionName=\"6.0-2438415\"> <application android:debuggable=\"true\"/></manifest>");
|
||||
|
||||
byte[] encoded = Files.readAllBytes(Paths.get(sTmpDir + File.separator + apk + File.separator + "AndroidManifest.xml"));
|
||||
String obtained = TestUtils.replaceNewlines(new String(encoded));
|
||||
assertEquals(expected, obtained);
|
||||
|
||||
XMLUnit.setIgnoreWhitespace(true);
|
||||
XMLUnit.setIgnoreAttributeOrder(true);
|
||||
XMLUnit.setCompareUnmatched(false);
|
||||
|
||||
assertXMLEqual(expected, obtained);
|
||||
}
|
||||
}
|
@ -23,16 +23,18 @@ import brut.androlib.TestUtils;
|
||||
import brut.directory.ExtFile;
|
||||
import brut.common.BrutException;
|
||||
import brut.util.OS;
|
||||
import org.custommonkey.xmlunit.XMLUnit;
|
||||
import org.junit.AfterClass;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Test;
|
||||
import org.xml.sax.SAXException;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Paths;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.custommonkey.xmlunit.XMLAssert.assertXMLEqual;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
public class ProviderAttributeTest extends BaseTest {
|
||||
@ -50,7 +52,7 @@ public class ProviderAttributeTest extends BaseTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void isProviderStringReplacementWorking() throws BrutException, IOException {
|
||||
public void isProviderStringReplacementWorking() throws BrutException, IOException, SAXException {
|
||||
String apk = "issue636.apk";
|
||||
|
||||
// decode issue636.apk
|
||||
@ -70,7 +72,7 @@ public class ProviderAttributeTest extends BaseTest {
|
||||
apkDecoder.decode();
|
||||
|
||||
String expected = TestUtils.replaceNewlines("<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n" +
|
||||
"<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\" package=\"com.ibotpeaches.issue636\" platformBuildVersionCode=\"23\" platformBuildVersionName=\"6.0-2438415\">\n" +
|
||||
"<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\" android:compileSdkVersion=\"23\" android:compileSdkVersionCodename=\"6.0-2438415\" package=\"com.ibotpeaches.issue636\" platformBuildVersionCode=\"23\" platformBuildVersionName=\"6.0-2438415\">\n" +
|
||||
" <application android:allowBackup=\"true\" android:debuggable=\"true\" android:icon=\"@mipmap/ic_launcher\" android:label=\"@string/app_name\" android:theme=\"@style/AppTheme\">\n" +
|
||||
" <provider android:authorities=\"com.ibotpeaches.issue636.Provider\" android:exported=\"false\" android:grantUriPermissions=\"true\" android:label=\"@string/app_name\" android:multiprocess=\"false\" android:name=\"com.ibotpeaches.issue636.Provider\"/>\n" +
|
||||
" <provider android:authorities=\"com.ibotpeaches.issue636.ProviderTwo\" android:exported=\"false\" android:grantUriPermissions=\"true\" android:label=\"@string/app_name\" android:multiprocess=\"false\" android:name=\"com.ibotpeaches.issue636.ProviderTwo\"/>\n" +
|
||||
@ -80,7 +82,12 @@ public class ProviderAttributeTest extends BaseTest {
|
||||
|
||||
byte[] encoded = Files.readAllBytes(Paths.get(sTmpDir + File.separator + apk + ".out.two" + File.separator + "AndroidManifest.xml"));
|
||||
String obtained = TestUtils.replaceNewlines(new String(encoded));
|
||||
assertEquals(expected, obtained);
|
||||
|
||||
XMLUnit.setIgnoreWhitespace(true);
|
||||
XMLUnit.setIgnoreAttributeOrder(true);
|
||||
XMLUnit.setCompareUnmatched(false);
|
||||
|
||||
assertXMLEqual(expected, obtained);
|
||||
}
|
||||
|
||||
private boolean fileExists(String filepath) {
|
||||
|
@ -62,11 +62,11 @@ public class ExternalEntityTest extends BaseTest {
|
||||
@Test
|
||||
public void doctypeTest() throws IOException {
|
||||
|
||||
String expected = TestUtils.replaceNewlines("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" +
|
||||
"<manifest android:versionCode=\"1\" android:versionName=\"1.0\" hardwareAccelerated=\"true\" package=\"com.ibotpeaches.doctype\" platformBuildVersionCode=\"23\" platformBuildVersionName=\"6.0-2438415\"\n" +
|
||||
" xmlns:android=\"http://schemas.android.com/apk/res/android\">\n" +
|
||||
" <supports-screens android:anyDensity=\"true\" android:smallScreens=\"true\" android:normalScreens=\"true\" android:largeScreens=\"true\" android:resizeable=\"true\" android:xlargeScreens=\"true\" />\n" +
|
||||
"</manifest>");
|
||||
String expected = TestUtils.replaceNewlines("<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
|
||||
"<manifest android:versionCode=\"1\" android:versionName=\"1.0\" android:compileSdkVersion=\"23\" android:compileSdkVersionCodename=\"6.0-2438415\" " +
|
||||
"hardwareAccelerated=\"true\" package=\"com.ibotpeaches.doctype\" platformBuildVersionCode=\"23\" platformBuildVersionName=\"6.0-2438415\" " +
|
||||
"xmlns:android=\"http://schemas.android.com/apk/res/android\"> <supports-screens android:anyDensity=\"true\" android:smallScreens=\"true\" " +
|
||||
"android:normalScreens=\"true\" android:largeScreens=\"true\" android:resizeable=\"true\" android:xlargeScreens=\"true\" /></manifest>");
|
||||
|
||||
byte[] encoded = Files.readAllBytes(Paths.get(sTestOrigDir + File.separator + "output" + File.separator + "AndroidManifest.xml"));
|
||||
String obtained = TestUtils.replaceNewlines(new String(encoded));
|
||||
|
Binary file not shown.
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="brut.apktool.testapp" platformBuildVersionCode="23" platformBuildVersionName="6.0-2438415">
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:compileSdkVersion="23" android:compileSdkVersionCodename="6.0-2438415" package="brut.apktool.testapp" platformBuildVersionCode="23" platformBuildVersionName="6.0-2438415">
|
||||
<uses-feature android:glEsVersion="0x00020000" />
|
||||
<uses-feature android:glEsVersion="0x00030002" />
|
||||
</manifest>
|
||||
|
@ -1,4 +1,3 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="brut.apktool.aapt2.pkgid8"
|
||||
featureName="feature">
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:compileSdkVersion="23" android:compileSdkVersionCodename="6.0-2438415" package="brut.apktool.aapt2.pkgid8" platformBuildVersionCode="23" platformBuildVersionName="6.0-2438415" featureName="feature">
|
||||
</manifest>
|
||||
|
@ -1,3 +1,3 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="brut.apktool.aapt1.testapp" platformBuildVersionCode="23" platformBuildVersionName="6.0-2438415">
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:compileSdkVersion="23" android:compileSdkVersionCodename="6.0-2438415" package="brut.apktool.aapt1.testapp" platformBuildVersionCode="23" platformBuildVersionName="6.0-2438415">
|
||||
</manifest>
|
||||
|
@ -117,7 +117,7 @@ subprojects {
|
||||
snakeyaml: 'org.yaml:snakeyaml:1.18:android',
|
||||
smali: 'org.smali:smali:2.2.2',
|
||||
xmlpull: 'xpp3:xpp3:1.1.4c',
|
||||
xmlunit: 'xmlunit:xmlunit:1.3',
|
||||
xmlunit: 'xmlunit:xmlunit:1.6',
|
||||
]
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user