Home | History | Annotate | Download | only in idmap
      1 
      2 #ifndef _IDMAP_H_
      3 #define _IDMAP_H_
      4 
      5 #define LOG_TAG "idmap"
      6 
      7 #include <utils/Log.h>
      8 #include <utils/Vector.h>
      9 
     10 #include <errno.h>
     11 #include <stdio.h>
     12 
     13 #ifndef TEMP_FAILURE_RETRY
     14 // Used to retry syscalls that can return EINTR.
     15 #define TEMP_FAILURE_RETRY(exp) ({         \
     16     typeof (exp) _rc;                      \
     17     do {                                   \
     18         _rc = (exp);                       \
     19     } while (_rc == -1 && errno == EINTR); \
     20     _rc; })
     21 #endif
     22 
     23 int idmap_create_path(const char *target_apk_path, const char *overlay_apk_path,
     24         const char *idmap_path);
     25 
     26 int idmap_create_fd(const char *target_apk_path, const char *overlay_apk_path, int fd);
     27 
     28 int idmap_verify_fd(const char *target_apk_path, const char *overlay_apk_path, int fd);
     29 
     30 // Regarding target_package_name: the idmap_scan implementation should
     31 // be able to extract this from the manifest in target_apk_path,
     32 // simplifying the external API.
     33 int idmap_scan(const char *target_package_name, const char *target_apk_path,
     34         const char *idmap_dir, const android::Vector<const char *> *overlay_dirs);
     35 
     36 int idmap_inspect(const char *idmap_path);
     37 
     38 #endif // _IDMAP_H_
     39