diff --git a/Makefile b/Makefile deleted file mode 100644 index d933fb1..0000000 --- a/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -all: - -git apply external/remove_projects.diff - make -C aosp/mkbootfs - make -C aosp/libsparse/base/ - make -C aosp/libsparse/sparse/ - make -C aosp/libsparse - make -C aosp/libavb -clean: - -git apply -R external/remove_projects.diff - make clean -C aosp/mkbootfs - make clean -C aosp/libsparse/base/ - make clean -C aosp/libsparse/sparse/ - make clean -C aosp/libsparse - make clean -C aosp/libavb diff --git a/aosp/libavb1.1/Makefile b/aosp/libavb1.1/Makefile deleted file mode 100644 index 36d33e6..0000000 --- a/aosp/libavb1.1/Makefile +++ /dev/null @@ -1,26 +0,0 @@ -.PHONY: clean nativeLibrary -.DEFAULT_GOAL: nativeLibrary -src_dir := src/avb/c -header_dir := src/avb/headers -build_dir := build -CFLAGS := \ - -I$(header_dir) \ - -D_FILE_OFFSET_BITS=64 \ - -D_POSIX_C_SOURCE=199309L \ - -DAVB_ENABLE_DEBUG \ - -DAVB_COMPILATION \ - -Wall -g -nativeLibrary: build/libs/avb/shared/libavb.dylib -CPP_FILES := $(wildcard src/avb/c/*.c) -OBJ_FILES := $(patsubst src/avb/c/%,build/%,$(CPP_FILES:.c=.o)) - -clean: - rm -fr $(build_dir) - -build/%.o: $(src_dir)/%.c - mkdir -p $(dir $@) - $(CC) -fPIC $(CFLAGS) -c -o $@ $< - -build/libs/avb/shared/libavb.dylib: $(OBJ_FILES) - mkdir -p $(dir $@) - $(CC) -shared -fPIC $^ -o $@ diff --git a/aosp/libsparse/Makefile b/aosp/libsparse/Makefile deleted file mode 100644 index 7afb864..0000000 --- a/aosp/libsparse/Makefile +++ /dev/null @@ -1,27 +0,0 @@ -.PHONY: nativeExecutable clean -osSuffix := linux -nativeExecutable: \ - build/append2simg \ - simg2img/build/install/main/release/$(osSuffix)/simg2img \ - build/simg2simg \ - build/img2simg -CFLAGS := -Isparse/src/main/public -LDFLAGS := \ - -Lsparse/build/lib/main/release/linux/ -lsparse \ - -Lbase/build/lib/main/release/linux/ -lbase \ - -lz -build/append2simg: append2simg/src/main/cpp/append2simg.cpp - mkdir -p $(dir $@) - $(CXX) $^ $(CFLAGS) $(LDFLAGS) -o $@ -simg2img/build/install/main/release/$(osSuffix)/simg2img: simg2img/src/main/cpp/simg2img.cpp - mkdir -p $(dir $@) - $(CXX) $^ $(CFLAGS) $(LDFLAGS) -o $@ -build/img2simg: img2simg/src/main/cpp/img2simg.cpp - mkdir -p $(dir $@) - $(CXX) $^ $(CFLAGS) $(LDFLAGS) -o $@ -build/simg2simg: simg2simg/src/main/cpp/simg2simg.cpp - mkdir -p $(dir $@) - $(CXX) $^ $(CFLAGS) $(LDFLAGS) -o $@ -clean: - rm -fr build - rm -fr simg2img/build/ diff --git a/aosp/libsparse/base/Makefile b/aosp/libsparse/base/Makefile deleted file mode 100644 index efd3c20..0000000 --- a/aosp/libsparse/base/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -.PHONY: clean nativeLibrary -.DEFAULT_GOAL: nativeLibrary -src_dir := src/main/cpp -header_dir := src/main/public -build_dir := build -CFLAGS := -nativeLibrary: build/lib/main/release/linux/libbase.a -CPP_FILES := $(wildcard $(src_dir)/*.cpp) -OBJ_FILES := $(patsubst $(src_dir)/%,build/%,$(CPP_FILES:.cpp=.o)) - -clean: - rm -fr $(build_dir) - -build/%.o: $(src_dir)/%.cpp - mkdir -p $(dir $@) - $(CC) $(CFLAGS) -c -o $@ $< - -build/lib/main/release/linux/libbase.a: $(OBJ_FILES) - mkdir -p $(dir $@) - ar rcs $@ $^ diff --git a/aosp/libsparse/sparse/Makefile b/aosp/libsparse/sparse/Makefile deleted file mode 100644 index 4246422..0000000 --- a/aosp/libsparse/sparse/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -.PHONY: clean nativeLibrary -.DEFAULT_GOAL: nativeLibrary -src_dir := src/main/cpp -header_dir := src/main/public -build_dir := build -CFLAGS := -I$(header_dir) -I../base/src/main/public/ -nativeLibrary: build/lib/main/release/linux/libsparse.a -CPP_FILES := $(wildcard $(src_dir)/*.cpp) -OBJ_FILES := $(patsubst $(src_dir)/%,build/%,$(CPP_FILES:.cpp=.o)) - -clean: - rm -fr $(build_dir) - -build/%.o: $(src_dir)/%.cpp - mkdir -p $(dir $@) - $(CC) $(CFLAGS) -c -o $@ $< - -build/lib/main/release/linux/libsparse.a: $(OBJ_FILES) - mkdir -p $(dir $@) - ar rcs $@ $^ diff --git a/aosp/mkbootfs.10/Makefile b/aosp/mkbootfs.10/Makefile deleted file mode 100644 index 2e7a9b8..0000000 --- a/aosp/mkbootfs.10/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -src_dir := src/mkbootfs/cpp -header_dir := src/mkbootfs/headers -build_dir := build -CXX_FLAGS := -I$(header_dir) -std=gnu++11 -Wno-write-strings -D__ANDROID_VNDK__ - -.PHONY: clean nativeExecutable -nativeExecutable: $(build_dir)/exe/mkbootfs/mkbootfs -$(build_dir)/exe/mkbootfs/mkbootfs: $(build_dir)/fs_config.o $(build_dir)/mkbootfs.o |$(build_dir)/exe/mkbootfs - $(CXX) $^ -o $@ -$(build_dir)/fs_config.o: $(src_dir)/fs_config.cpp |$(build_dir) - $(CXX) -c $(CXX_FLAGS) $< -o $@ -$(build_dir)/mkbootfs.o: $(src_dir)/mkbootfs.c |$(build_dir) - $(CXX) -c $(CXX_FLAGS) $< -o $@ -$(build_dir): - mkdir $@ -$(build_dir)/exe/mkbootfs: |$(build_dir) - mkdir -p $@ -clean: - rm -rf $(build_dir) diff --git a/aosp/mkbootfs.10/build.gradle b/aosp/mkbootfs.10/build.gradle index 8d7f6cd..0c8f4a7 100644 --- a/aosp/mkbootfs.10/build.gradle +++ b/aosp/mkbootfs.10/build.gradle @@ -11,7 +11,7 @@ model { binaries.all { cppCompiler.define "__ANDROID_VNDK__" //cppCompiler.define 'CFIG_NO_FIX_STAT' - cppCompiler.args << '-std=gnu++11' << "-Wno-write-strings" + cppCompiler.args << "-Wno-write-strings" } } } diff --git a/avbImpl/Makefile b/avbImpl/Makefile deleted file mode 100644 index f2a047f..0000000 --- a/avbImpl/Makefile +++ /dev/null @@ -1,34 +0,0 @@ -.PHONY: clean nativeLibrary -.DEFAULT_GOAL: nativeLibrary - -src_dir := src/avbx/cpp -header_dir := src/avbx/headers -build_dir := build -CFLAGS := @build/tmp/compileAvbxStaticLibraryAvbxCpp/options.txt -LD_FLAGS := -lavb -L ../aosp/libavb/build/libs/avb/shared - -CPP_FILES := $(wildcard $(src_dir)/*.cpp) -OBJ_FILES := $(patsubst $(src_dir)/%,build/%,$(CPP_FILES:.cpp=.o)) - -clean: - rm -fr $(build_dir) - -build/%.o: $(src_dir)/%.cpp - mkdir -p $(dir $@) - $(CXX) -fPIC $(CFLAGS) -o $@ $< - -build/libavbxShared.so: $(OBJ_FILES) - $(CXX) -shared -fPIC $^ $(LD_FLAGS) -o $@ - -build/libavbxStatic.a: $(OBJ_FILES) - $(warning $(OBJ_FILES)) - ar rcs $@ $^ - -build/avbxVerifier.o: src/avbVerifier/cpp/main.cpp - $(CXX) $^ @build/tmp/compileAvbVerifierExecutableAvbVerifierCpp/options.txt -o $@ -build/avbxVerifier: build/libavbxStatic.a -build/avbxVerifier: build/avbxVerifier.o - $(CXX) $< \ - -lavb -L ../aosp/libavb/build/libs/avb/static \ - -lavbxStatic -L build \ - -o $@ diff --git a/avbImpl/build.gradle b/avbImpl/build.gradle index 2d8616f..8d786d1 100644 --- a/avbImpl/build.gradle +++ b/avbImpl/build.gradle @@ -16,7 +16,7 @@ model { } binaries.all { cCompiler.args << "-Wall" << "-g" - cppCompiler.args << "--std=c++11" + cppCompiler.args << "-std=c++17" } } @@ -29,7 +29,7 @@ model { } binaries.all { cppCompiler.define "XXX" - cppCompiler.args << '-std=c++11' + cppCompiler.args << '-std=c++17' } } } diff --git a/avbImpl/config/pubkey b/avbImpl/config/pubkey new file mode 100644 index 0000000..f2e8fbd Binary files /dev/null and b/avbImpl/config/pubkey differ diff --git a/bbootimg/src/main/kotlin/packable/BootImgParser.kt b/bbootimg/src/main/kotlin/packable/BootImgParser.kt index 7b296dc..825378f 100644 --- a/bbootimg/src/main/kotlin/packable/BootImgParser.kt +++ b/bbootimg/src/main/kotlin/packable/BootImgParser.kt @@ -87,6 +87,10 @@ class BootImgParser() : IPackable { } } + override fun pull(fileName: String, deviceName: String) { + super.pull(fileName, deviceName) + } + companion object { private val log = LoggerFactory.getLogger(BootImgParser::class.java) diff --git a/bbootimg/src/main/kotlin/packable/IPackable.kt b/bbootimg/src/main/kotlin/packable/IPackable.kt index f8e3d06..73edf67 100644 --- a/bbootimg/src/main/kotlin/packable/IPackable.kt +++ b/bbootimg/src/main/kotlin/packable/IPackable.kt @@ -31,6 +31,21 @@ interface IPackable { "adb shell rm /cache/file.to.burn".check_call() } + fun pull(fileName: String = "dtbo.img", deviceName: String = "dtbo") { + "adb root".check_call() + val abUpdateProp = "adb shell getprop ro.build.ab_update".check_output() + log.info("ro.build.ab_update=$abUpdateProp") + val slotSuffix = if (abUpdateProp == "true") { + "adb shell getprop ro.boot.slot_suffix".check_output() + } else { + "" + } + log.info("slot suffix = $slotSuffix") + "adb shell dd if=/dev/block/by-name/$deviceName$slotSuffix of=/cache/file.to.pull".check_call() + "adb pull /cache/file.to.pull $fileName".check_call() + "adb shell rm /cache/file.to.pull".check_call() + } + fun cleanUp() { val workDir = Helper.prop("workDir") if (File(workDir).exists()) File(workDir).deleteRecursively() diff --git a/bbootimg/src/main/kotlin/packable/VBMetaParser.kt b/bbootimg/src/main/kotlin/packable/VBMetaParser.kt index 99f1979..87d02e2 100644 --- a/bbootimg/src/main/kotlin/packable/VBMetaParser.kt +++ b/bbootimg/src/main/kotlin/packable/VBMetaParser.kt @@ -30,4 +30,8 @@ class VBMetaParser: IPackable { val stem = fileName.substring(0, fileName.indexOf(".")) super.flash("$fileName.signed", stem) } + + override fun pull(fileName: String, deviceName: String) { + super.pull(fileName, deviceName) + } } diff --git a/bbootimg/src/main/kotlin/sparse_util/SparseImgParser.kt b/bbootimg/src/main/kotlin/sparse_util/SparseImgParser.kt index 5cd276c..e53f74e 100644 --- a/bbootimg/src/main/kotlin/sparse_util/SparseImgParser.kt +++ b/bbootimg/src/main/kotlin/sparse_util/SparseImgParser.kt @@ -20,7 +20,7 @@ class SparseImgParser : IPackable { } override fun capabilities(): List { - return listOf("^(system|vendor|product|cache|userdata)\\.img$") + return listOf("^(system|vendor|product|cache|userdata|super)\\.img$") } override fun unpack(fileName: String) { diff --git a/build.gradle.kts b/build.gradle.kts index ac77985..bf076be 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -61,6 +61,17 @@ tasks { } flashTask.dependsOn("bbootimg:jar") + + val pullTask by register("pull", JavaExec::class) { + group = GROUP_ANDROID + main = "cfig.packable.PackableLauncherKt" + classpath = files("bbootimg/build/libs/bbootimg.jar") + this.maxHeapSize = "512m" + enableAssertions = true + args("pull") + } + pullTask.dependsOn("bbootimg:jar") + //sparse image dependencies packTask.dependsOn("aosp:mkbootfs.10:mkbootfsExecutable") packTask.dependsOn("aosp:mkbootfs.11:mkbootfsExecutable")