|
|
|
@ -31,30 +31,8 @@ if (parseGradleVersion(gradle.gradleVersion) < 5) {
|
|
|
|
|
logger.info("Gradle Version {}", gradle.gradleVersion)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
def workdir = 'build/unzip_boot'
|
|
|
|
|
def GROUP_ANDROID = "Android"
|
|
|
|
|
project.ext.rootWorkDir = new File(workdir).getAbsolutePath()
|
|
|
|
|
String activeImg = "boot.img"
|
|
|
|
|
String activePath = "/boot"
|
|
|
|
|
if (new File("boot.img").exists()) {
|
|
|
|
|
activeImg = "boot.img"
|
|
|
|
|
activePath = "/boot"
|
|
|
|
|
} else if (new File("recovery.img").exists()) {
|
|
|
|
|
activeImg = "recovery.img"
|
|
|
|
|
activePath = "/recovery"
|
|
|
|
|
} else if (new File("recovery-two-step.img").exists()) {
|
|
|
|
|
activeImg = "recovery-two-step.img"
|
|
|
|
|
activePath = "/boot"
|
|
|
|
|
} else if (new File("vbmeta.img").exists()) {
|
|
|
|
|
activeImg = "vbmeta.img"
|
|
|
|
|
activePath = "/vbmeta"
|
|
|
|
|
}
|
|
|
|
|
project.ext.outClearIMg = new File(String.format("%s.clear", activeImg)).getAbsolutePath()
|
|
|
|
|
project.ext.mkbootimgBin = new File("tools/mkbootimg").getAbsolutePath()
|
|
|
|
|
project.ext.mkbootfsBin = new File("mkbootfs/build/exe/mkbootfs/mkbootfs").getAbsolutePath()
|
|
|
|
|
project.ext.avbtool = new File("avb/avbtool").getAbsolutePath()
|
|
|
|
|
project.ext.bootSigner = new File("boot_signer/build/libs/boot_signer.jar").getAbsolutePath()
|
|
|
|
|
logger.warn("Active image target: " + activeImg)
|
|
|
|
|
|
|
|
|
|
// ----------------------------------------------------------------------------
|
|
|
|
|
// tasks
|
|
|
|
@ -119,39 +97,6 @@ void Run(String inCmd, String inWorkdir = null) {
|
|
|
|
|
Run(Arrays.asList(inCmd.split()), inWorkdir);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void updateBootImage(String activeImg) {
|
|
|
|
|
String flashTarget = null;
|
|
|
|
|
switch (activeImg) {
|
|
|
|
|
case "boot.img":
|
|
|
|
|
case "recovery-two-step.img":
|
|
|
|
|
flashTarget = "/dev/block/by-name/boot";
|
|
|
|
|
break;
|
|
|
|
|
case "recovery.img":
|
|
|
|
|
flashTarget = "/dev/block/by-name/recovery";
|
|
|
|
|
break;
|
|
|
|
|
case "vbmeta.img":
|
|
|
|
|
flashTarget = "/dev/block/by-name/vbmeta";
|
|
|
|
|
if (!new File(activeImg + ".signed").exists()) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
Run("adb root")
|
|
|
|
|
Run("adb push " + activeImg + ".signed /cache/")
|
|
|
|
|
List<String> cmd2 = ["adb", "shell", "dd if=/cache/" + activeImg + ".signed of=" + flashTarget]
|
|
|
|
|
Run(cmd2)
|
|
|
|
|
cmd2 = ["adb", "shell", "rm -f /cache/" + activeImg + ".signed"];
|
|
|
|
|
Run(cmd2)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
task flash {
|
|
|
|
|
group GROUP_ANDROID
|
|
|
|
|
doLast {
|
|
|
|
|
updateBootImage(activeImg)
|
|
|
|
|
updateBootImage("vbmeta.img")
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void rebootRecovery() {
|
|
|
|
|
Run("adb reboot recovery")
|
|
|
|
|
}
|
|
|
|
@ -179,6 +124,14 @@ task pack(type: JavaExec, dependsOn: ["bbootimg:jar", "mkbootfs:mkbootfsExecutab
|
|
|
|
|
args "pack"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
task flash(type: JavaExec, dependsOn: ["bbootimg:jar"]) {
|
|
|
|
|
group GROUP_ANDROID
|
|
|
|
|
main = "cfig.packable.PackableLauncherKt"
|
|
|
|
|
classpath = files("bbootimg/build/libs/bbootimg.jar")
|
|
|
|
|
maxHeapSize '512m'
|
|
|
|
|
args "flash"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int parseGradleVersion(String version) {
|
|
|
|
|
Pattern VERSION_PATTERN = Pattern.compile("((\\d+)(\\.\\d+)+)(-(\\p{Alpha}+)-(\\w+))?(-(SNAPSHOT|\\d{14}([-+]\\d{4})?))?")
|
|
|
|
|
Matcher matcher = VERSION_PATTERN.matcher(version)
|
|
|
|
|