| #ifndef _IDMAP_H_ | |
| #define _IDMAP_H_ | |
| #define LOG_TAG "idmap" | |
| #include <utils/Log.h> | |
| #include <utils/Vector.h> | |
| #include <errno.h> | |
| #include <stdio.h> | |
| #ifndef TEMP_FAILURE_RETRY | |
| // Used to retry syscalls that can return EINTR. | |
| #define TEMP_FAILURE_RETRY(exp) ({ \ | |
| typeof (exp) _rc; \ | |
| do { \ | |
| _rc = (exp); \ | |
| } while (_rc == -1 && errno == EINTR); \ | |
| _rc; }) | |
| #endif | |
| int idmap_create_path(const char *target_apk_path, const char *overlay_apk_path, | |
| const char *idmap_path); | |
| int idmap_create_fd(const char *target_apk_path, const char *overlay_apk_path, int fd); | |
| // Regarding target_package_name: the idmap_scan implementation should | |
| // be able to extract this from the manifest in target_apk_path, | |
| // simplifying the external API. | |
| int idmap_scan(const char *target_package_name, const char *target_apk_path, | |
| const char *idmap_dir, const android::Vector<const char *> *overlay_dirs); | |
| int idmap_inspect(const char *idmap_path); | |
| #endif // _IDMAP_H_ |