
#ifndef TWRPAPEX_HPP
#define TWRPAPEX_HPP

#include <string>
#include <vector>
#include <filesystem>
#include <regex>
#include <sstream>

#include <sys/types.h>
#include <sys/stat.h>
#include <sys/ioctl.h>
#include <linux/loop.h>
#include <sys/mount.h>
#include <sys/sysmacros.h>
#include <fcntl.h>
#include <unistd.h>
#include <android-base/properties.h>

#include <ziparchive/zip_archive.h>
#include "twcommon.h"

#define APEX_DIR "/system_root/system/apex"
#define APEX_PAYLOAD "apex_payload.img"
#define LOOP_BLOCK_DEVICE_DIR "/dev/block/"
#define APEX_BASE "/apex/"
#define LOOP_CONTROL "/dev/loop-control"

class twrpApex {
public:
	bool loadApexImages();
	bool Unmount();

private:
	std::string unzipImage(std::string file);
	bool mountApexOnLoopbackDevices(std::vector<std::string> apexFiles);
	bool loadApexImage(std::string fileToMount, size_t loop_device_number);
};
#endif
