Loading cmds/idmap2/Android.bp +52 −12 Original line number Original line Diff line number Diff line Loading @@ -36,18 +36,7 @@ cc_library { ], ], host_supported: true, host_supported: true, srcs: [ srcs: [ "libidmap2/BinaryStreamVisitor.cpp", "libidmap2/**/*.cpp", "libidmap2/CommandLineOptions.cpp", "libidmap2/FileUtils.cpp", "libidmap2/Idmap.cpp", "libidmap2/Policies.cpp", "libidmap2/PrettyPrintVisitor.cpp", "libidmap2/RawPrintVisitor.cpp", "libidmap2/ResourceMapping.cpp", "libidmap2/ResourceUtils.cpp", "libidmap2/Result.cpp", "libidmap2/XmlParser.cpp", "libidmap2/ZipFile.cpp", ], ], export_include_dirs: ["include"], export_include_dirs: ["include"], target: { target: { Loading @@ -61,6 +50,7 @@ cc_library { "libcutils", "libcutils", "libutils", "libutils", "libziparchive", "libziparchive", "libidmap2_policies", ], ], }, }, host: { host: { Loading @@ -73,6 +63,37 @@ cc_library { "libcutils", "libcutils", "libutils", "libutils", "libziparchive", "libziparchive", "libidmap2_policies", ], }, }, } cc_library { name: "libidmap2_policies", defaults: [ "idmap2_defaults", ], host_supported: true, export_include_dirs: ["libidmap2_policies/include"], target: { windows: { enabled: true, }, android: { static: { enabled: false, }, shared_libs: [ "libandroidfw", ], }, host: { shared: { enabled: false, }, static_libs: [ "libandroidfw", ], ], }, }, }, }, Loading Loading @@ -118,6 +139,7 @@ cc_test { "libutils", "libutils", "libz", "libz", "libziparchive", "libziparchive", "libidmap2_policies", ], ], }, }, host: { host: { Loading @@ -129,6 +151,7 @@ cc_test { "liblog", "liblog", "libutils", "libutils", "libziparchive", "libziparchive", "libidmap2_policies", ], ], shared_libs: [ shared_libs: [ "libz", "libz", Loading Loading @@ -162,6 +185,7 @@ cc_binary { "libidmap2", "libidmap2", "libutils", "libutils", "libziparchive", "libziparchive", "libidmap2_policies", ], ], }, }, host: { host: { Loading @@ -173,12 +197,14 @@ cc_binary { "liblog", "liblog", "libutils", "libutils", "libziparchive", "libziparchive", "libidmap2_policies", ], ], shared_libs: [ shared_libs: [ "libz", "libz", ], ], }, }, }, }, } } cc_binary { cc_binary { Loading @@ -199,6 +225,7 @@ cc_binary { "libidmap2", "libidmap2", "libutils", "libutils", "libziparchive", "libziparchive", "libidmap2_policies", ], ], static_libs: [ static_libs: [ "libidmap2daidl", "libidmap2daidl", Loading Loading @@ -231,3 +258,16 @@ filegroup { ], ], path: "idmap2d/aidl", path: "idmap2d/aidl", } } aidl_interface { name: "overlayable_policy_aidl", srcs: [":overlayable_policy_aidl_files"], } filegroup { name: "overlayable_policy_aidl_files", srcs: [ "idmap2d/aidl/android/os/OverlayablePolicy.aidl", ], path: "idmap2d/aidl", } cmds/idmap2/idmap2/Create.cpp +8 −8 Original line number Original line Diff line number Diff line Loading @@ -20,15 +20,14 @@ #include <fstream> #include <fstream> #include <memory> #include <memory> #include <ostream> #include <ostream> #include <sstream> #include <string> #include <vector> #include <vector> #include "androidfw/ResourceTypes.h" #include "idmap2/BinaryStreamVisitor.h" #include "idmap2/BinaryStreamVisitor.h" #include "idmap2/CommandLineOptions.h" #include "idmap2/CommandLineOptions.h" #include "idmap2/FileUtils.h" #include "idmap2/FileUtils.h" #include "idmap2/Idmap.h" #include "idmap2/Idmap.h" #include "idmap2/Policies.h" #include "idmap2/PolicyUtils.h" #include "idmap2/SysTrace.h" #include "idmap2/SysTrace.h" using android::ApkAssets; using android::ApkAssets; Loading @@ -36,14 +35,15 @@ using android::idmap2::BinaryStreamVisitor; using android::idmap2::CommandLineOptions; using android::idmap2::CommandLineOptions; using android::idmap2::Error; using android::idmap2::Error; using android::idmap2::Idmap; using android::idmap2::Idmap; using android::idmap2::PoliciesToBitmask; using android::idmap2::PolicyBitmask; using android::idmap2::PolicyFlags; using android::idmap2::Result; using android::idmap2::Result; using android::idmap2::Unit; using android::idmap2::Unit; using android::idmap2::utils::kIdmapFilePermissionMask; using android::idmap2::utils::kIdmapFilePermissionMask; using android::idmap2::utils::PoliciesToBitmaskResult; using android::idmap2::utils::UidHasWriteAccessToPath; using android::idmap2::utils::UidHasWriteAccessToPath; using PolicyBitmask = android::ResTable_overlayable_policy_header::PolicyBitmask; using PolicyFlags = android::ResTable_overlayable_policy_header::PolicyFlags; Result<Unit> Create(const std::vector<std::string>& args) { Result<Unit> Create(const std::vector<std::string>& args) { SYSTRACE << "Create " << args; SYSTRACE << "Create " << args; std::string target_apk_path; std::string target_apk_path; Loading Loading @@ -78,7 +78,7 @@ Result<Unit> Create(const std::vector<std::string>& args) { } } PolicyBitmask fulfilled_policies = 0; PolicyBitmask fulfilled_policies = 0; auto conv_result = PoliciesToBitmask(policies); auto conv_result = PoliciesToBitmaskResult(policies); if (conv_result) { if (conv_result) { fulfilled_policies |= *conv_result; fulfilled_policies |= *conv_result; } else { } else { Loading @@ -86,7 +86,7 @@ Result<Unit> Create(const std::vector<std::string>& args) { } } if (fulfilled_policies == 0) { if (fulfilled_policies == 0) { fulfilled_policies |= PolicyFlags::POLICY_PUBLIC; fulfilled_policies |= PolicyFlags::PUBLIC; } } const std::unique_ptr<const ApkAssets> target_apk = ApkAssets::Load(target_apk_path); const std::unique_ptr<const ApkAssets> target_apk = ApkAssets::Load(target_apk_path); Loading cmds/idmap2/idmap2/CreateMultiple.cpp +4 −7 Original line number Original line Diff line number Diff line Loading @@ -20,8 +20,6 @@ #include <fstream> #include <fstream> #include <memory> #include <memory> #include <ostream> #include <ostream> #include <sstream> #include <string> #include <vector> #include <vector> #include "android-base/stringprintf.h" #include "android-base/stringprintf.h" Loading @@ -30,6 +28,7 @@ #include "idmap2/FileUtils.h" #include "idmap2/FileUtils.h" #include "idmap2/Idmap.h" #include "idmap2/Idmap.h" #include "idmap2/Policies.h" #include "idmap2/Policies.h" #include "idmap2/PolicyUtils.h" #include "idmap2/SysTrace.h" #include "idmap2/SysTrace.h" #include "Commands.h" #include "Commands.h" Loading @@ -39,13 +38,11 @@ using android::idmap2::BinaryStreamVisitor; using android::idmap2::CommandLineOptions; using android::idmap2::CommandLineOptions; using android::idmap2::Error; using android::idmap2::Error; using android::idmap2::Idmap; using android::idmap2::Idmap; using android::idmap2::PoliciesToBitmask; using android::idmap2::PolicyBitmask; using android::idmap2::PolicyFlags; using android::idmap2::Result; using android::idmap2::Result; using android::idmap2::Unit; using android::idmap2::Unit; using android::idmap2::utils::kIdmapCacheDir; using android::idmap2::utils::kIdmapCacheDir; using android::idmap2::utils::kIdmapFilePermissionMask; using android::idmap2::utils::kIdmapFilePermissionMask; using android::idmap2::utils::PoliciesToBitmaskResult; using android::idmap2::utils::UidHasWriteAccessToPath; using android::idmap2::utils::UidHasWriteAccessToPath; Result<Unit> CreateMultiple(const std::vector<std::string>& args) { Result<Unit> CreateMultiple(const std::vector<std::string>& args) { Loading Loading @@ -81,7 +78,7 @@ Result<Unit> CreateMultiple(const std::vector<std::string>& args) { } } PolicyBitmask fulfilled_policies = 0; PolicyBitmask fulfilled_policies = 0; auto conv_result = PoliciesToBitmask(policies); auto conv_result = PoliciesToBitmaskResult(policies); if (conv_result) { if (conv_result) { fulfilled_policies |= *conv_result; fulfilled_policies |= *conv_result; } else { } else { Loading @@ -89,7 +86,7 @@ Result<Unit> CreateMultiple(const std::vector<std::string>& args) { } } if (fulfilled_policies == 0) { if (fulfilled_policies == 0) { fulfilled_policies |= PolicyFlags::POLICY_PUBLIC; fulfilled_policies |= PolicyFlags::PUBLIC; } } const std::unique_ptr<const ApkAssets> target_apk = ApkAssets::Load(target_apk_path); const std::unique_ptr<const ApkAssets> target_apk = ApkAssets::Load(target_apk_path); Loading cmds/idmap2/idmap2/Scan.cpp +8 −10 Original line number Original line Diff line number Diff line Loading @@ -20,7 +20,6 @@ #include <memory> #include <memory> #include <ostream> #include <ostream> #include <set> #include <set> #include <sstream> #include <string> #include <string> #include <utility> #include <utility> #include <vector> #include <vector> Loading @@ -34,25 +33,24 @@ #include "idmap2/Result.h" #include "idmap2/Result.h" #include "idmap2/SysTrace.h" #include "idmap2/SysTrace.h" #include "idmap2/XmlParser.h" #include "idmap2/XmlParser.h" #include "idmap2/ZipFile.h" using android::idmap2::CommandLineOptions; using android::idmap2::CommandLineOptions; using android::idmap2::Error; using android::idmap2::Error; using android::idmap2::Idmap; using android::idmap2::Idmap; using android::idmap2::kPolicyOdm; using android::idmap2::kPolicyOem; using android::idmap2::kPolicyProduct; using android::idmap2::kPolicyPublic; using android::idmap2::kPolicySystem; using android::idmap2::kPolicyVendor; using android::idmap2::PolicyBitmask; using android::idmap2::PolicyFlags; using android::idmap2::Result; using android::idmap2::Result; using android::idmap2::Unit; using android::idmap2::Unit; using android::idmap2::policy::kPolicyOdm; using android::idmap2::policy::kPolicyOem; using android::idmap2::policy::kPolicyProduct; using android::idmap2::policy::kPolicyPublic; using android::idmap2::policy::kPolicySystem; using android::idmap2::policy::kPolicyVendor; using android::idmap2::utils::ExtractOverlayManifestInfo; using android::idmap2::utils::ExtractOverlayManifestInfo; using android::idmap2::utils::FindFiles; using android::idmap2::utils::FindFiles; using android::idmap2::utils::OverlayManifestInfo; using android::idmap2::utils::OverlayManifestInfo; using PolicyBitmask = android::ResTable_overlayable_policy_header::PolicyBitmask; namespace { namespace { struct InputOverlay { struct InputOverlay { Loading cmds/idmap2/idmap2d/Idmap2Service.cpp +2 −2 Original line number Original line Diff line number Diff line Loading @@ -33,7 +33,6 @@ #include "idmap2/BinaryStreamVisitor.h" #include "idmap2/BinaryStreamVisitor.h" #include "idmap2/FileUtils.h" #include "idmap2/FileUtils.h" #include "idmap2/Idmap.h" #include "idmap2/Idmap.h" #include "idmap2/Policies.h" #include "idmap2/SysTrace.h" #include "idmap2/SysTrace.h" #include "utils/String8.h" #include "utils/String8.h" Loading @@ -42,11 +41,12 @@ using android::binder::Status; using android::idmap2::BinaryStreamVisitor; using android::idmap2::BinaryStreamVisitor; using android::idmap2::Idmap; using android::idmap2::Idmap; using android::idmap2::IdmapHeader; using android::idmap2::IdmapHeader; using android::idmap2::PolicyBitmask; using android::idmap2::utils::kIdmapCacheDir; using android::idmap2::utils::kIdmapCacheDir; using android::idmap2::utils::kIdmapFilePermissionMask; using android::idmap2::utils::kIdmapFilePermissionMask; using android::idmap2::utils::UidHasWriteAccessToPath; using android::idmap2::utils::UidHasWriteAccessToPath; using PolicyBitmask = android::ResTable_overlayable_policy_header::PolicyBitmask; namespace { namespace { Status ok() { Status ok() { Loading Loading
cmds/idmap2/Android.bp +52 −12 Original line number Original line Diff line number Diff line Loading @@ -36,18 +36,7 @@ cc_library { ], ], host_supported: true, host_supported: true, srcs: [ srcs: [ "libidmap2/BinaryStreamVisitor.cpp", "libidmap2/**/*.cpp", "libidmap2/CommandLineOptions.cpp", "libidmap2/FileUtils.cpp", "libidmap2/Idmap.cpp", "libidmap2/Policies.cpp", "libidmap2/PrettyPrintVisitor.cpp", "libidmap2/RawPrintVisitor.cpp", "libidmap2/ResourceMapping.cpp", "libidmap2/ResourceUtils.cpp", "libidmap2/Result.cpp", "libidmap2/XmlParser.cpp", "libidmap2/ZipFile.cpp", ], ], export_include_dirs: ["include"], export_include_dirs: ["include"], target: { target: { Loading @@ -61,6 +50,7 @@ cc_library { "libcutils", "libcutils", "libutils", "libutils", "libziparchive", "libziparchive", "libidmap2_policies", ], ], }, }, host: { host: { Loading @@ -73,6 +63,37 @@ cc_library { "libcutils", "libcutils", "libutils", "libutils", "libziparchive", "libziparchive", "libidmap2_policies", ], }, }, } cc_library { name: "libidmap2_policies", defaults: [ "idmap2_defaults", ], host_supported: true, export_include_dirs: ["libidmap2_policies/include"], target: { windows: { enabled: true, }, android: { static: { enabled: false, }, shared_libs: [ "libandroidfw", ], }, host: { shared: { enabled: false, }, static_libs: [ "libandroidfw", ], ], }, }, }, }, Loading Loading @@ -118,6 +139,7 @@ cc_test { "libutils", "libutils", "libz", "libz", "libziparchive", "libziparchive", "libidmap2_policies", ], ], }, }, host: { host: { Loading @@ -129,6 +151,7 @@ cc_test { "liblog", "liblog", "libutils", "libutils", "libziparchive", "libziparchive", "libidmap2_policies", ], ], shared_libs: [ shared_libs: [ "libz", "libz", Loading Loading @@ -162,6 +185,7 @@ cc_binary { "libidmap2", "libidmap2", "libutils", "libutils", "libziparchive", "libziparchive", "libidmap2_policies", ], ], }, }, host: { host: { Loading @@ -173,12 +197,14 @@ cc_binary { "liblog", "liblog", "libutils", "libutils", "libziparchive", "libziparchive", "libidmap2_policies", ], ], shared_libs: [ shared_libs: [ "libz", "libz", ], ], }, }, }, }, } } cc_binary { cc_binary { Loading @@ -199,6 +225,7 @@ cc_binary { "libidmap2", "libidmap2", "libutils", "libutils", "libziparchive", "libziparchive", "libidmap2_policies", ], ], static_libs: [ static_libs: [ "libidmap2daidl", "libidmap2daidl", Loading Loading @@ -231,3 +258,16 @@ filegroup { ], ], path: "idmap2d/aidl", path: "idmap2d/aidl", } } aidl_interface { name: "overlayable_policy_aidl", srcs: [":overlayable_policy_aidl_files"], } filegroup { name: "overlayable_policy_aidl_files", srcs: [ "idmap2d/aidl/android/os/OverlayablePolicy.aidl", ], path: "idmap2d/aidl", }
cmds/idmap2/idmap2/Create.cpp +8 −8 Original line number Original line Diff line number Diff line Loading @@ -20,15 +20,14 @@ #include <fstream> #include <fstream> #include <memory> #include <memory> #include <ostream> #include <ostream> #include <sstream> #include <string> #include <vector> #include <vector> #include "androidfw/ResourceTypes.h" #include "idmap2/BinaryStreamVisitor.h" #include "idmap2/BinaryStreamVisitor.h" #include "idmap2/CommandLineOptions.h" #include "idmap2/CommandLineOptions.h" #include "idmap2/FileUtils.h" #include "idmap2/FileUtils.h" #include "idmap2/Idmap.h" #include "idmap2/Idmap.h" #include "idmap2/Policies.h" #include "idmap2/PolicyUtils.h" #include "idmap2/SysTrace.h" #include "idmap2/SysTrace.h" using android::ApkAssets; using android::ApkAssets; Loading @@ -36,14 +35,15 @@ using android::idmap2::BinaryStreamVisitor; using android::idmap2::CommandLineOptions; using android::idmap2::CommandLineOptions; using android::idmap2::Error; using android::idmap2::Error; using android::idmap2::Idmap; using android::idmap2::Idmap; using android::idmap2::PoliciesToBitmask; using android::idmap2::PolicyBitmask; using android::idmap2::PolicyFlags; using android::idmap2::Result; using android::idmap2::Result; using android::idmap2::Unit; using android::idmap2::Unit; using android::idmap2::utils::kIdmapFilePermissionMask; using android::idmap2::utils::kIdmapFilePermissionMask; using android::idmap2::utils::PoliciesToBitmaskResult; using android::idmap2::utils::UidHasWriteAccessToPath; using android::idmap2::utils::UidHasWriteAccessToPath; using PolicyBitmask = android::ResTable_overlayable_policy_header::PolicyBitmask; using PolicyFlags = android::ResTable_overlayable_policy_header::PolicyFlags; Result<Unit> Create(const std::vector<std::string>& args) { Result<Unit> Create(const std::vector<std::string>& args) { SYSTRACE << "Create " << args; SYSTRACE << "Create " << args; std::string target_apk_path; std::string target_apk_path; Loading Loading @@ -78,7 +78,7 @@ Result<Unit> Create(const std::vector<std::string>& args) { } } PolicyBitmask fulfilled_policies = 0; PolicyBitmask fulfilled_policies = 0; auto conv_result = PoliciesToBitmask(policies); auto conv_result = PoliciesToBitmaskResult(policies); if (conv_result) { if (conv_result) { fulfilled_policies |= *conv_result; fulfilled_policies |= *conv_result; } else { } else { Loading @@ -86,7 +86,7 @@ Result<Unit> Create(const std::vector<std::string>& args) { } } if (fulfilled_policies == 0) { if (fulfilled_policies == 0) { fulfilled_policies |= PolicyFlags::POLICY_PUBLIC; fulfilled_policies |= PolicyFlags::PUBLIC; } } const std::unique_ptr<const ApkAssets> target_apk = ApkAssets::Load(target_apk_path); const std::unique_ptr<const ApkAssets> target_apk = ApkAssets::Load(target_apk_path); Loading
cmds/idmap2/idmap2/CreateMultiple.cpp +4 −7 Original line number Original line Diff line number Diff line Loading @@ -20,8 +20,6 @@ #include <fstream> #include <fstream> #include <memory> #include <memory> #include <ostream> #include <ostream> #include <sstream> #include <string> #include <vector> #include <vector> #include "android-base/stringprintf.h" #include "android-base/stringprintf.h" Loading @@ -30,6 +28,7 @@ #include "idmap2/FileUtils.h" #include "idmap2/FileUtils.h" #include "idmap2/Idmap.h" #include "idmap2/Idmap.h" #include "idmap2/Policies.h" #include "idmap2/Policies.h" #include "idmap2/PolicyUtils.h" #include "idmap2/SysTrace.h" #include "idmap2/SysTrace.h" #include "Commands.h" #include "Commands.h" Loading @@ -39,13 +38,11 @@ using android::idmap2::BinaryStreamVisitor; using android::idmap2::CommandLineOptions; using android::idmap2::CommandLineOptions; using android::idmap2::Error; using android::idmap2::Error; using android::idmap2::Idmap; using android::idmap2::Idmap; using android::idmap2::PoliciesToBitmask; using android::idmap2::PolicyBitmask; using android::idmap2::PolicyFlags; using android::idmap2::Result; using android::idmap2::Result; using android::idmap2::Unit; using android::idmap2::Unit; using android::idmap2::utils::kIdmapCacheDir; using android::idmap2::utils::kIdmapCacheDir; using android::idmap2::utils::kIdmapFilePermissionMask; using android::idmap2::utils::kIdmapFilePermissionMask; using android::idmap2::utils::PoliciesToBitmaskResult; using android::idmap2::utils::UidHasWriteAccessToPath; using android::idmap2::utils::UidHasWriteAccessToPath; Result<Unit> CreateMultiple(const std::vector<std::string>& args) { Result<Unit> CreateMultiple(const std::vector<std::string>& args) { Loading Loading @@ -81,7 +78,7 @@ Result<Unit> CreateMultiple(const std::vector<std::string>& args) { } } PolicyBitmask fulfilled_policies = 0; PolicyBitmask fulfilled_policies = 0; auto conv_result = PoliciesToBitmask(policies); auto conv_result = PoliciesToBitmaskResult(policies); if (conv_result) { if (conv_result) { fulfilled_policies |= *conv_result; fulfilled_policies |= *conv_result; } else { } else { Loading @@ -89,7 +86,7 @@ Result<Unit> CreateMultiple(const std::vector<std::string>& args) { } } if (fulfilled_policies == 0) { if (fulfilled_policies == 0) { fulfilled_policies |= PolicyFlags::POLICY_PUBLIC; fulfilled_policies |= PolicyFlags::PUBLIC; } } const std::unique_ptr<const ApkAssets> target_apk = ApkAssets::Load(target_apk_path); const std::unique_ptr<const ApkAssets> target_apk = ApkAssets::Load(target_apk_path); Loading
cmds/idmap2/idmap2/Scan.cpp +8 −10 Original line number Original line Diff line number Diff line Loading @@ -20,7 +20,6 @@ #include <memory> #include <memory> #include <ostream> #include <ostream> #include <set> #include <set> #include <sstream> #include <string> #include <string> #include <utility> #include <utility> #include <vector> #include <vector> Loading @@ -34,25 +33,24 @@ #include "idmap2/Result.h" #include "idmap2/Result.h" #include "idmap2/SysTrace.h" #include "idmap2/SysTrace.h" #include "idmap2/XmlParser.h" #include "idmap2/XmlParser.h" #include "idmap2/ZipFile.h" using android::idmap2::CommandLineOptions; using android::idmap2::CommandLineOptions; using android::idmap2::Error; using android::idmap2::Error; using android::idmap2::Idmap; using android::idmap2::Idmap; using android::idmap2::kPolicyOdm; using android::idmap2::kPolicyOem; using android::idmap2::kPolicyProduct; using android::idmap2::kPolicyPublic; using android::idmap2::kPolicySystem; using android::idmap2::kPolicyVendor; using android::idmap2::PolicyBitmask; using android::idmap2::PolicyFlags; using android::idmap2::Result; using android::idmap2::Result; using android::idmap2::Unit; using android::idmap2::Unit; using android::idmap2::policy::kPolicyOdm; using android::idmap2::policy::kPolicyOem; using android::idmap2::policy::kPolicyProduct; using android::idmap2::policy::kPolicyPublic; using android::idmap2::policy::kPolicySystem; using android::idmap2::policy::kPolicyVendor; using android::idmap2::utils::ExtractOverlayManifestInfo; using android::idmap2::utils::ExtractOverlayManifestInfo; using android::idmap2::utils::FindFiles; using android::idmap2::utils::FindFiles; using android::idmap2::utils::OverlayManifestInfo; using android::idmap2::utils::OverlayManifestInfo; using PolicyBitmask = android::ResTable_overlayable_policy_header::PolicyBitmask; namespace { namespace { struct InputOverlay { struct InputOverlay { Loading
cmds/idmap2/idmap2d/Idmap2Service.cpp +2 −2 Original line number Original line Diff line number Diff line Loading @@ -33,7 +33,6 @@ #include "idmap2/BinaryStreamVisitor.h" #include "idmap2/BinaryStreamVisitor.h" #include "idmap2/FileUtils.h" #include "idmap2/FileUtils.h" #include "idmap2/Idmap.h" #include "idmap2/Idmap.h" #include "idmap2/Policies.h" #include "idmap2/SysTrace.h" #include "idmap2/SysTrace.h" #include "utils/String8.h" #include "utils/String8.h" Loading @@ -42,11 +41,12 @@ using android::binder::Status; using android::idmap2::BinaryStreamVisitor; using android::idmap2::BinaryStreamVisitor; using android::idmap2::Idmap; using android::idmap2::Idmap; using android::idmap2::IdmapHeader; using android::idmap2::IdmapHeader; using android::idmap2::PolicyBitmask; using android::idmap2::utils::kIdmapCacheDir; using android::idmap2::utils::kIdmapCacheDir; using android::idmap2::utils::kIdmapFilePermissionMask; using android::idmap2::utils::kIdmapFilePermissionMask; using android::idmap2::utils::UidHasWriteAccessToPath; using android::idmap2::utils::UidHasWriteAccessToPath; using PolicyBitmask = android::ResTable_overlayable_policy_header::PolicyBitmask; namespace { namespace { Status ok() { Status ok() { Loading