
#ifndef TWRPAPEX_HPP
#define TWRPAPEX_HPP

#include <string>
#include <vector>
#include <filesystem>
#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
