| |
| #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 |