mirror of
https://github.com/revanced/Apktool.git
synced 2024-12-24 03:35:55 +01:00
commit
d4fc7fa9ba
@ -7,7 +7,7 @@ jdk:
|
||||
before_install:
|
||||
- sudo apt-get update -qq
|
||||
- sudo apt-get install -qq libstdc++6:i386 lib32z1 expect
|
||||
script: "./gradlew build fatJar proguard"
|
||||
script: ./scripts/travis-ci/run-tests.sh
|
||||
branches:
|
||||
only:
|
||||
- master
|
||||
|
@ -1,98 +0,0 @@
|
||||
The majority of smali/baksmali is written and copyrighted by me (Ben Gruver)
|
||||
and released under the following license:
|
||||
|
||||
*******************************************************************************
|
||||
Copyright (c) 2010 Ben Gruver (JesusFreke)
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
3. The name of the author may not be used to endorse or promote products
|
||||
derived from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
||||
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*******************************************************************************
|
||||
|
||||
|
||||
Various portions of the code are taken from the Android Open Source Project,
|
||||
and are used in accordance with the following license:
|
||||
|
||||
*******************************************************************************
|
||||
Copyright (C) 2007 The Android Open Source Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*******************************************************************************
|
||||
|
||||
|
||||
The smali mojo plugin is (very loosely) based on an unknown mojo plugin with
|
||||
the following license:
|
||||
|
||||
*******************************************************************************
|
||||
Copyright 2001-2005 The Apache Software Foundation.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*******************************************************************************
|
||||
|
||||
|
||||
The RadixTree implementation in the "util" project is taken from
|
||||
http://code.google.com/p/radixtree/ (version .3), and is used with minor
|
||||
modifications in accordance with the following license:
|
||||
|
||||
*******************************************************************************
|
||||
The MIT License
|
||||
|
||||
Copyright (c) 2008 Tahseen Ur Rehman
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
*******************************************************************************
|
@ -13,7 +13,7 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
apply plugin: 'fatjar'
|
||||
apply plugin: 'eu.appsatori.fatjar'
|
||||
|
||||
configurations {
|
||||
proguard
|
||||
@ -21,7 +21,7 @@ configurations {
|
||||
|
||||
dependencies {
|
||||
compile project(':brut.apktool:apktool-lib')
|
||||
proguard 'net.sf.proguard:proguard-base:4.8'
|
||||
proguard depends.proguard
|
||||
}
|
||||
|
||||
gradle.taskGraph.whenReady {
|
||||
|
@ -13,7 +13,6 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import org.apache.tools.ant.filters.*
|
||||
|
||||
processResources {
|
||||
@ -30,21 +29,21 @@ processResources {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compile ("junit:junit:4.10") {
|
||||
exclude(module: 'hamcrest-core')
|
||||
}
|
||||
compile("junit:junit:4.10") {
|
||||
exclude(module: 'hamcrest-core')
|
||||
}
|
||||
|
||||
compile project(':brut.j.dir'),
|
||||
project(':brut.j.util'),
|
||||
project(':brut.j.common'),
|
||||
project(':brut.apktool.smali:util'),
|
||||
project(':brut.apktool.smali:dexlib2'),
|
||||
project(':brut.apktool.smali:baksmali'),
|
||||
project(':brut.apktool.smali:smali'),
|
||||
"org.yaml:snakeyaml:1.12",
|
||||
"xpp3:xpp3:1.1.4c",
|
||||
"xmlunit:xmlunit:1.3",
|
||||
"com.google.guava:guava:12.0",
|
||||
"org.apache.commons:commons-lang3:3.1"
|
||||
}
|
||||
|
||||
compile project(':brut.j.dir'),
|
||||
project(':brut.j.util'),
|
||||
project(':brut.j.common'),
|
||||
project(':brut.apktool.smali:util'),
|
||||
project(':brut.apktool.smali:dexlib2'),
|
||||
project(':brut.apktool.smali:baksmali'),
|
||||
project(':brut.apktool.smali:smali'),
|
||||
depends.snakeyaml,
|
||||
depends.xmlpull,
|
||||
depends.guava,
|
||||
depends.commons_lang
|
||||
|
||||
testCompile depends.xmlunit
|
||||
}
|
@ -15,6 +15,6 @@
|
||||
*/
|
||||
|
||||
dependencies {
|
||||
testCompile 'junit:junit:4.8.2'
|
||||
testCompile depends.junit
|
||||
}
|
||||
|
||||
|
@ -15,7 +15,7 @@
|
||||
*/
|
||||
|
||||
dependencies {
|
||||
compile project(':brut.j.common'),
|
||||
project(':brut.j.util')
|
||||
testCompile "junit:junit:3.8.1"
|
||||
compile project(':brut.j.common'),
|
||||
project(':brut.j.util')
|
||||
testCompile depends.junit
|
||||
}
|
||||
|
@ -15,8 +15,8 @@
|
||||
*/
|
||||
|
||||
dependencies {
|
||||
compile project(':brut.j.common')
|
||||
compile "commons-io:commons-io:2.4",
|
||||
"org.apache.commons:commons-compress:1.4.1"
|
||||
testCompile "junit:junit:3.8.1"
|
||||
compile project(':brut.j.common'),
|
||||
depends.commons_io,
|
||||
depends.commons_compress
|
||||
testCompile depends.junit
|
||||
}
|
||||
|
154
build.gradle
154
build.gradle
@ -15,77 +15,47 @@
|
||||
*/
|
||||
apply plugin: 'java'
|
||||
apply plugin: 'maven'
|
||||
apply from: 'gradle/functions.gradle'
|
||||
|
||||
def apktoolversion_major = '2.0.0'
|
||||
def apktoolversion_minor = 'RC2';
|
||||
|
||||
if (!('release' in gradle.startParameter.taskNames)) {
|
||||
def hash = getCheckedOutGitCommitHash();
|
||||
|
||||
if (hash == null) {
|
||||
project.ext.set("hash", "dirty")
|
||||
project.ext.set("apktool_version", apktoolversion_major + "-dirty")
|
||||
println "Building SNAPSHOT (no .git folder found)";
|
||||
} else {
|
||||
project.ext.set("hash", hash);
|
||||
project.ext.set("apktool_version", apktoolversion_major + "-" + hash + "-SNAPSHOT");
|
||||
println "Building SNAPSHOT (" + getCheckedOutBranch() + "): " + hash;
|
||||
}
|
||||
} else {
|
||||
project.ext.set("hash", "")
|
||||
project.ext.set("apktool_version", apktoolversion_major + "-" + apktoolversion_minor);
|
||||
println "Building RELEASE (" + getCheckedOutBranch() + "): " + apktoolversion_major + "-" + apktoolversion_minor;
|
||||
}
|
||||
|
||||
// https://gist.github.com/JonasGroeger/7620911
|
||||
def getCheckedOutGitCommitHash() {
|
||||
def gitFolder = "$projectDir/.git/"
|
||||
def takeFromHash = 6
|
||||
|
||||
def head
|
||||
try {
|
||||
head = new File(gitFolder + "HEAD").text.split(":")
|
||||
} catch(Exception e) {
|
||||
return null;
|
||||
}
|
||||
|
||||
def isCommit = head.length == 1
|
||||
if(isCommit) return head[0].trim().take(takeFromHash)
|
||||
|
||||
def refHead = new File(gitFolder + head[1].trim())
|
||||
refHead.text.trim().take takeFromHash
|
||||
}
|
||||
|
||||
def getCheckedOutBranch() {
|
||||
def gitFolder = "$projectDir/.git/"
|
||||
|
||||
def head
|
||||
try {
|
||||
head = new File(gitFolder + "HEAD").text.split("/")
|
||||
return head[2].trim();
|
||||
} catch(Exception e) {
|
||||
return "";
|
||||
}
|
||||
return "SNAPSHOT";
|
||||
}
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
}
|
||||
|
||||
sourceCompatibility = 1.7
|
||||
targetCompatibility = 1.7
|
||||
|
||||
if (!('release' in gradle.startParameter.taskNames)) {
|
||||
def hash = getCheckedOutGitCommitHash();
|
||||
|
||||
if (hash == null) {
|
||||
project.ext.set("hash", "dirty")
|
||||
project.ext.set("apktool_version", apktoolversion_major + "-dirty")
|
||||
println "Building SNAPSHOT (no .git folder found)";
|
||||
} else {
|
||||
project.ext.set("hash", hash);
|
||||
project.ext.set("apktool_version", apktoolversion_major + "-" + hash + "-SNAPSHOT");
|
||||
println "Building SNAPSHOT (" + getCheckedOutBranch() + "): " + hash;
|
||||
}
|
||||
} else {
|
||||
project.ext.set("hash", "")
|
||||
project.ext.set("apktool_version", apktoolversion_major + "-" + apktoolversion_minor);
|
||||
println "Building RELEASE (" + getCheckedOutBranch() + "): " + apktoolversion_major + "-" + apktoolversion_minor;
|
||||
}
|
||||
|
||||
build.doFirst {
|
||||
def javaVersion = System.getProperty("java.version")
|
||||
|
||||
//fail the build if we don't have the expected Java version
|
||||
if (!javaVersion.startsWith("1.7")) {
|
||||
throw new GradleException("You can fix this problem!\nWe found a " + javaVersion + " JDK\nPlease update JAVA_HOME to use a 1.7 JDK\nCurrently it is set to: " + System.getProperty("java.home"));
|
||||
}
|
||||
throw new GradleException("You can fix this problem!\n" +
|
||||
"We found a " + javaVersion + " JDK\n" +
|
||||
"Please update JAVA_HOME to use a 1.7 JDK\n" +
|
||||
"Currently it is set to: " + System.getProperty("java.home")
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
task wrapper(type: Wrapper) {
|
||||
gradleVersion = '1.10'
|
||||
gradleVersion = '2.1'
|
||||
}
|
||||
|
||||
// used for official releases only. Please don't use
|
||||
@ -94,44 +64,52 @@ task release {
|
||||
|
||||
buildscript {
|
||||
repositories {
|
||||
mavenCentral()
|
||||
jcenter()
|
||||
}
|
||||
tasks.withType(Compile) {
|
||||
tasks.withType(JavaCompile) {
|
||||
options.encoding = "UTF-8"
|
||||
options.incremental = true
|
||||
}
|
||||
dependencies {
|
||||
classpath 'eu.appsatori:gradle-fatjar-plugin:0.2-rc1'
|
||||
classpath 'eu.appsatori:gradle-fatjar-plugin:0.3'
|
||||
}
|
||||
}
|
||||
|
||||
subprojects {
|
||||
apply plugin: 'java'
|
||||
apply plugin: 'maven'
|
||||
apply plugin: 'idea'
|
||||
|
||||
ext {
|
||||
depends = [guava: 'com.google.guava:guava:14.0',
|
||||
findbugs: 'com.google.code.findbugs:jsr305:1.3.9',
|
||||
junit: 'junit:junit:4.6',
|
||||
antlr_runtime: 'org.antlr:antlr-runtime:3.5',
|
||||
antlr: 'org.antlr:antlr:3.5',
|
||||
commons_cli: 'commons-cli:commons-cli:1.2',
|
||||
jflex: 'de.jflex:jflex:1.4.3',
|
||||
proguard: 'net.sf.proguard:proguard-base:4.8'
|
||||
]
|
||||
}
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
}
|
||||
|
||||
dependencies {
|
||||
testCompile 'junit:junit:4.8.2'
|
||||
}
|
||||
|
||||
test {
|
||||
testLogging {
|
||||
exceptionFormat = 'full'
|
||||
apply plugin: 'java'
|
||||
apply plugin: 'maven'
|
||||
apply plugin: 'idea'
|
||||
|
||||
ext {
|
||||
depends = [
|
||||
antlr: 'org.antlr:antlr:3.5',
|
||||
antlr_runtime: 'org.antlr:antlr-runtime:3.5',
|
||||
commons_cli: 'commons-cli:commons-cli:1.2',
|
||||
commons_compress: 'org.apache.commons:commons-compress:1.4.1',
|
||||
commons_io: 'commons-io:commons-io:2.4',
|
||||
commons_lang: 'org.apache.commons:commons-lang3:3.1',
|
||||
findbugs: 'com.google.code.findbugs:jsr305:1.3.9',
|
||||
guava: 'com.google.guava:guava:14.0',
|
||||
jflex: 'de.jflex:jflex:1.4.3',
|
||||
junit: 'junit:junit:4.6',
|
||||
proguard: 'net.sf.proguard:proguard-base:4.8',
|
||||
snakeyaml: 'org.yaml:snakeyaml:1.12',
|
||||
xmlpull: 'xpp3:xpp3:1.1.4c',
|
||||
xmlunit: 'xmlunit:xmlunit:1.3',
|
||||
]
|
||||
}
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
}
|
||||
|
||||
dependencies {
|
||||
testCompile depends.junit
|
||||
}
|
||||
|
||||
test {
|
||||
testLogging {
|
||||
exceptionFormat = 'full'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
49
gradle/functions.gradle
Normal file
49
gradle/functions.gradle
Normal file
@ -0,0 +1,49 @@
|
||||
/**
|
||||
* Copyright 2011 Ryszard Wiśniewski <brut.alll@gmail.com>
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
gradle.allprojects {
|
||||
|
||||
// https://gist.github.com/JonasGroeger/7620911
|
||||
ext.getCheckedOutGitCommitHash = {
|
||||
def gitFolder = "$projectDir/.git/"
|
||||
def takeFromHash = 6
|
||||
|
||||
def head
|
||||
try {
|
||||
head = new File(gitFolder + "HEAD").text.split(":")
|
||||
} catch(Exception e) {
|
||||
return null;
|
||||
}
|
||||
|
||||
def isCommit = head.length == 1
|
||||
if(isCommit) return head[0].trim().take(takeFromHash)
|
||||
|
||||
def refHead = new File(gitFolder + head[1].trim())
|
||||
refHead.text.trim().take takeFromHash
|
||||
}
|
||||
|
||||
ext.getCheckedOutBranch = {
|
||||
def gitFolder = "$projectDir/.git/"
|
||||
|
||||
def head
|
||||
try {
|
||||
head = new File(gitFolder + "HEAD").text.split("/")
|
||||
return head[2].trim();
|
||||
} catch(Exception e) {
|
||||
return "SNAPSHOT";
|
||||
}
|
||||
}
|
||||
}
|
4
gradle/wrapper/gradle-wrapper.properties
vendored
4
gradle/wrapper/gradle-wrapper.properties
vendored
@ -1,6 +1,6 @@
|
||||
#Sat Feb 08 18:00:26 CST 2014
|
||||
#Thu Oct 23 07:11:01 CDT 2014
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=http\://downloads.gradle.org/distributions/gradle-1.10-all.zip
|
||||
distributionUrl=http\://services.gradle.org/distributions/gradle-2.1-bin.zip
|
||||
|
2
scripts/travis-ci/run-tests.sh
Executable file
2
scripts/travis-ci/run-tests.sh
Executable file
@ -0,0 +1,2 @@
|
||||
#!/usr/bin/env sh
|
||||
./gradlew build fatJar proguard
|
@ -1,10 +1,10 @@
|
||||
include 'brut.j.common',
|
||||
'brut.j.util',
|
||||
'brut.j.dir',
|
||||
'brut.apktool.smali:util',
|
||||
'brut.apktool.smali:dexlib2',
|
||||
'brut.apktool.smali:baksmali',
|
||||
'brut.apktool.smali:smali',
|
||||
'brut.apktool.smali:dexlib2:accessorTestGenerator',
|
||||
'brut.apktool:apktool-lib',
|
||||
'brut.apktool:apktool-cli'
|
||||
'brut.j.util',
|
||||
'brut.j.dir',
|
||||
'brut.apktool.smali:util',
|
||||
'brut.apktool.smali:dexlib2',
|
||||
'brut.apktool.smali:baksmali',
|
||||
'brut.apktool.smali:smali',
|
||||
'brut.apktool.smali:dexlib2:accessorTestGenerator',
|
||||
'brut.apktool:apktool-lib',
|
||||
'brut.apktool:apktool-cli'
|
Loading…
Reference in New Issue
Block a user