repack: move sbin to /system ramdisk and update repacking
for android-10

This will support updating the ramdisk to a different
compression format and co-exist with magisk.

We are also cleaning up and removing non android-10
api makefile actions.

We are also moving twrp repacking to its own class. We
check the new ramdisk format and if it's different
we have magisk compress using the new ramdisk format.

Change-Id: I770030aae7797e75817178b2f0fccd9f39dc23af
diff --git a/twrpRepacker.hpp b/twrpRepacker.hpp
new file mode 100755
index 0000000..346229b
--- /dev/null
+++ b/twrpRepacker.hpp
@@ -0,0 +1,48 @@
+/*

+	Copyright 2014 to 2020 TeamWin

+	This file is part of TWRP/TeamWin Recovery Project.

+

+	TWRP is free software: you can redistribute it and/or modify

+	it under the terms of the GNU General Public License as published by

+	the Free Software Foundation, either version 3 of the License, or

+	(at your option) any later version.

+

+	TWRP is distributed in the hope that it will be useful,

+	but WITHOUT ANY WARRANTY; without even the implied warranty of

+	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the

+	GNU General Public License for more details.

+

+	You should have received a copy of the GNU General Public License

+	along with TWRP.  If not, see <http://www.gnu.org/licenses/>.

+*/

+

+#include <string>

+#include "partitions.hpp"

+

+#ifndef TWRP_REPACKER

+#define TWRP_REPACKER

+

+enum Repack_Type {

+	REPLACE_NONE = 0,

+	REPLACE_RAMDISK = 1,

+	REPLACE_KERNEL = 2,

+};

+

+struct Repack_Options_struct {

+	Repack_Type Type;

+	bool Backup_First;

+	bool Disable_Verity;

+	bool Disable_Force_Encrypt;

+};

+

+class twrpRepacker {

+    public:

+        bool Backup_Image_For_Repack(TWPartition* Part, const std::string& Temp_Folder_Destination, const bool Create_Backup, const std::string& Backup_Name); // Prepares an image for repacking by unpacking it to the temp folder destination

+        std::string Unpack_Image(const std::string& Source_Path, const std::string& Temp_Folder_Destination, const bool Copy_Source, const bool Create_Destination = true); // Prepares an image for repacking by unpacking it to the temp folder destination and return the ramdisk format

+        bool Repack_Image_And_Flash(const std::string& Target_Image, const struct Repack_Options_struct& Repack_Options); // Repacks the boot image with a new kernel or a new ramdisk

+    private:

+    	bool Prepare_Empty_Folder(const std::string& Folder); // Creates an empty folder at Folder. If the folder already exists, the folder is deleted, then created

+    	std::string original_ramdisk_format;                  // Ramdisk format of boot partition

+	    std::string image_ramdisk_format;                     // Ramdisk format of boot image to repack from

+};

+#endif // TWRP_REPACKER
\ No newline at end of file