Lines Matching +full:post +full:- +full:fs
8 * http://www.apache.org/licenses/LICENSE-2.0
19 #include <android-base/file.h>
20 #include <android-base/logging.h>
21 #include <android-base/stringprintf.h>
22 #include <android-base/strings.h>
44 namespace fs = std::filesystem;
50 static constexpr const fs::perms kForbiddenFilePermissions =
51 fs::perms::owner_exec | fs::perms::group_exec | fs::perms::others_exec;
56 "etc/permissions/signature-permission-allowlist.xml",
78 "priv-app/CtsShimPriv/CtsShimPriv.apk",
79 "priv-app/CtsShimPriv@1/CtsShimPriv.apk",
80 "priv-app/CtsShimPriv@2/CtsShimPriv.apk",
81 "priv-app/CtsShimPriv@3/CtsShimPriv.apk",
82 "priv-app/CtsShimPriv@AOSP.MASTER/CtsShimPriv.apk",
83 "priv-app/CtsShimPriv@MASTER/CtsShimPriv.apk",
84 "priv-app/CtsShimPriv@MAIN/CtsShimPriv.apk",
118 return Errorf("Shim apex is not allowed to have pre or post install hooks"); in ValidateShimApex()
126 auto iter = fs::recursive_directory_iterator(mount_point, ec); in ValidateShimApex()
127 // Unfortunately fs::recursive_directory_iterator::operator++ can throw an in ValidateShimApex()
128 // exception, which means that it's impossible to use range-based for loop in ValidateShimApex()
130 while (iter != fs::end(iter)) { in ValidateShimApex()
131 auto path = iter->path(); in ValidateShimApex()
133 auto resolved_mount_point = fs::path(mount_point).string(); in ValidateShimApex()
135 fs::file_status status = iter->status(ec); in ValidateShimApex()
137 if (fs::is_symlink(status)) { in ValidateShimApex()
141 } else if (fs::is_regular_file(status)) { in ValidateShimApex()
143 fs::perms::none) { in ValidateShimApex()
152 } else if (!fs::is_directory(status)) { in ValidateShimApex()
154 return Error() << "Unexpected file entry in shim apex: " << iter->path(); in ValidateShimApex()
178 auto it = std::find(allowed->begin(), allowed->end(), *actual); in ValidateUpdate()
179 if (it == allowed->end()) { in ValidateUpdate()