Lines Matching refs:id
187 char *VolumeManager::asecHash(const char *id, char *buffer, size_t len) { in asecHash() argument
196 } else if (id == NULL) { in asecHash()
207 MD5(reinterpret_cast<const unsigned char*>(id), strlen(id), sig); in asecHash()
331 int VolumeManager::getAsecMountPath(const char *id, char *buffer, int maxlen) { in getAsecMountPath() argument
334 if (!isLegalAsecId(id)) { in getAsecMountPath()
335 SLOGE("getAsecMountPath: Invalid asec id \"%s\"", id); in getAsecMountPath()
340 if (findAsec(id, asecFileName, sizeof(asecFileName))) { in getAsecMountPath()
341 SLOGE("Couldn't find ASEC %s", id); in getAsecMountPath()
351 int written = snprintf(buffer, maxlen, "%s/%s", Volume::ASECDIR, id); in getAsecMountPath()
353 SLOGE("getAsecMountPath failed for %s: couldn't construct path in buffer", id); in getAsecMountPath()
361 int VolumeManager::getAsecFilesystemPath(const char *id, char *buffer, int maxlen) { in getAsecFilesystemPath() argument
364 if (!isLegalAsecId(id)) { in getAsecFilesystemPath()
365 SLOGE("getAsecFilesystemPath: Invalid asec id \"%s\"", id); in getAsecFilesystemPath()
370 if (findAsec(id, asecFileName, sizeof(asecFileName))) { in getAsecFilesystemPath()
371 SLOGE("Couldn't find ASEC %s", id); in getAsecFilesystemPath()
390 int VolumeManager::createAsec(const char *id, unsigned int numSectors, const char *fstype, in createAsec() argument
395 if (!isLegalAsecId(id)) { in createAsec()
396 SLOGE("createAsec: Invalid asec id \"%s\"", id); in createAsec()
423 if (lookupVolume(id)) { in createAsec()
424 SLOGE("ASEC id '%s' currently exists", id); in createAsec()
431 if (!findAsec(id, asecFileName, sizeof(asecFileName))) { in createAsec()
440 int written = snprintf(asecFileName, sizeof(asecFileName), "%s/%s.asec", asecDir, id); in createAsec()
466 if (!asecHash(id, idHash, sizeof(idHash))) { in createAsec()
467 SLOGE("Hash of '%s' failed (%s)", id, strerror(errno)); in createAsec()
514 int written = snprintf(mountPoint, sizeof(mountPoint), "%s/%s", Volume::ASECDIR, id); in createAsec()
582 SLOGI("Created raw secure container %s (no filesystem)", id); in createAsec()
585 mActiveContainers->push_back(new ContainerData(strdup(id), ASEC)); in createAsec()
589 int VolumeManager::resizeAsec(const char *id, unsigned numSectors, const char *key) { in resizeAsec() argument
594 if (!isLegalAsecId(id)) { in resizeAsec()
595 SLOGE("resizeAsec: Invalid asec id \"%s\"", id); in resizeAsec()
600 if (findAsec(id, asecFileName, sizeof(asecFileName))) { in resizeAsec()
601 SLOGE("Couldn't find ASEC %s", id); in resizeAsec()
605 int written = snprintf(mountPoint, sizeof(mountPoint), "%s/%s", Volume::ASECDIR, id); in resizeAsec()
607 SLOGE("ASEC resize failed for %s: couldn't construct mountpoint", id); in resizeAsec()
612 SLOGE("ASEC %s mounted. Unmount before resizing", id); in resizeAsec()
685 SLOGE("Resize of ASEC image file failed. Could not resize %s", id); in resizeAsec()
696 if (!asecHash(id, idHash, sizeof(idHash))) { in resizeAsec()
697 SLOGE("Hash of '%s' failed (%s)", id, strerror(errno)); in resizeAsec()
718 SLOGE("Unable to resize %s (%s)", id, strerror(errno)); in resizeAsec()
732 int VolumeManager::finalizeAsec(const char *id) { in finalizeAsec() argument
737 if (!isLegalAsecId(id)) { in finalizeAsec()
738 SLOGE("finalizeAsec: Invalid asec id \"%s\"", id); in finalizeAsec()
743 if (findAsec(id, asecFileName, sizeof(asecFileName))) { in finalizeAsec()
744 SLOGE("Couldn't find ASEC %s", id); in finalizeAsec()
749 if (!asecHash(id, idHash, sizeof(idHash))) { in finalizeAsec()
750 SLOGE("Hash of '%s' failed (%s)", id, strerror(errno)); in finalizeAsec()
755 SLOGE("Unable to finalize %s (%s)", id, strerror(errno)); in finalizeAsec()
766 int written = snprintf(mountPoint, sizeof(mountPoint), "%s/%s", Volume::ASECDIR, id); in finalizeAsec()
785 SLOGD("ASEC %s finalized", id); in finalizeAsec()
790 int VolumeManager::fixupAsecPermissions(const char *id, gid_t gid, const char* filename) { in fixupAsecPermissions() argument
800 if (!isLegalAsecId(id)) { in fixupAsecPermissions()
801 SLOGE("fixupAsecPermissions: Invalid asec id \"%s\"", id); in fixupAsecPermissions()
806 if (findAsec(id, asecFileName, sizeof(asecFileName))) { in fixupAsecPermissions()
807 SLOGE("Couldn't find ASEC %s", id); in fixupAsecPermissions()
812 if (!asecHash(id, idHash, sizeof(idHash))) { in fixupAsecPermissions()
813 SLOGE("Hash of '%s' failed (%s)", id, strerror(errno)); in fixupAsecPermissions()
818 SLOGE("Unable fix permissions during lookup on %s (%s)", id, strerror(errno)); in fixupAsecPermissions()
829 int written = snprintf(mountPoint, sizeof(mountPoint), "%s/%s", Volume::ASECDIR, id); in fixupAsecPermissions()
831 SLOGE("Unable remount to fix permissions for %s: couldn't construct mountpoint", id); in fixupAsecPermissions()
845 SLOGE("Unable remount to fix permissions for %s (%s)", id, strerror(errno)); in fixupAsecPermissions()
913 SLOGD("ASEC %s permissions fixed", id); in fixupAsecPermissions()
989 int VolumeManager::unmountAsec(const char *id, bool force) { in unmountAsec() argument
993 if (!isLegalAsecId(id)) { in unmountAsec()
994 SLOGE("unmountAsec: Invalid asec id \"%s\"", id); in unmountAsec()
999 if (findAsec(id, asecFileName, sizeof(asecFileName))) { in unmountAsec()
1000 SLOGE("Couldn't find ASEC %s", id); in unmountAsec()
1004 int written = snprintf(mountPoint, sizeof(mountPoint), "%s/%s", Volume::ASECDIR, id); in unmountAsec()
1006 SLOGE("ASEC unmount failed for %s: couldn't construct mountpoint", id); in unmountAsec()
1011 if (!asecHash(id, idHash, sizeof(idHash))) { in unmountAsec()
1012 SLOGE("Hash of '%s' failed (%s)", id, strerror(errno)); in unmountAsec()
1016 return unmountLoopImage(id, idHash, asecFileName, mountPoint, force); in unmountAsec()
1037 int VolumeManager::unmountLoopImage(const char *id, const char *idHash, in unmountLoopImage() argument
1040 SLOGE("Unmount request for %s when not mounted", id); in unmountLoopImage()
1052 SLOGI("Container %s unmounted OK", id); in unmountLoopImage()
1057 id, i, strerror(errno)); in unmountLoopImage()
1074 SLOGE("Failed to unmount container %s (%s)", id, strerror(errno)); in unmountLoopImage()
1113 if (!strcmp(cd->id, id)) { in unmountLoopImage()
1125 int VolumeManager::destroyAsec(const char *id, bool force) { in destroyAsec() argument
1129 if (!isLegalAsecId(id)) { in destroyAsec()
1130 SLOGE("destroyAsec: Invalid asec id \"%s\"", id); in destroyAsec()
1135 if (findAsec(id, asecFileName, sizeof(asecFileName))) { in destroyAsec()
1136 SLOGE("Couldn't find ASEC %s", id); in destroyAsec()
1140 int written = snprintf(mountPoint, sizeof(mountPoint), "%s/%s", Volume::ASECDIR, id); in destroyAsec()
1142 SLOGE("ASEC destroy failed for %s: couldn't construct mountpoint", id); in destroyAsec()
1150 if (unmountAsec(id, force)) { in destroyAsec()
1151 SLOGE("Failed to unmount asec %s for destroy (%s)", id, strerror(errno)); in destroyAsec()
1162 SLOGD("ASEC %s destroyed", id); in destroyAsec()
1172 bool VolumeManager::isLegalAsecId(const char *id) const { in isLegalAsecId()
1174 size_t len = strlen(id); in isLegalAsecId()
1179 if ((id[0] == '.') || (id[len - 1] == '.')) { in isLegalAsecId()
1184 if (id[i] == '.') { in isLegalAsecId()
1186 if (id[i-1] == '.') return false; in isLegalAsecId()
1189 if (id[i] == '_' || id[i] == '-') continue; in isLegalAsecId()
1190 if (id[i] >= 'a' && id[i] <= 'z') continue; in isLegalAsecId()
1191 if (id[i] >= 'A' && id[i] <= 'Z') continue; in isLegalAsecId()
1192 if (id[i] >= '0' && id[i] <= '9') continue; in isLegalAsecId()
1217 int VolumeManager::findAsec(const char *id, char *asecPath, size_t asecPathLen, in findAsec() argument
1220 const int idLen = strlen(id); in findAsec()
1223 if (!isLegalAsecId(id)) { in findAsec()
1224 SLOGE("findAsec: Invalid asec id \"%s\"", id); in findAsec()
1229 if (asprintf(&asecName, "%s.asec", id) < 0) { in findAsec()
1251 SLOGE("findAsec failed for %s: couldn't construct ASEC path", id); in findAsec()
1261 int VolumeManager::mountAsec(const char *id, const char *key, int ownerUid, bool readOnly) { in mountAsec() argument
1265 if (!isLegalAsecId(id)) { in mountAsec()
1266 SLOGE("mountAsec: Invalid asec id \"%s\"", id); in mountAsec()
1271 if (findAsec(id, asecFileName, sizeof(asecFileName))) { in mountAsec()
1272 SLOGE("Couldn't find ASEC %s", id); in mountAsec()
1276 int written = snprintf(mountPoint, sizeof(mountPoint), "%s/%s", Volume::ASECDIR, id); in mountAsec()
1278 SLOGE("ASEC mount failed for %s: couldn't construct mountpoint", id); in mountAsec()
1283 SLOGE("ASEC %s already mounted", id); in mountAsec()
1289 if (!asecHash(id, idHash, sizeof(idHash))) { in mountAsec()
1290 SLOGE("Hash of '%s' failed (%s)", id, strerror(errno)); in mountAsec()
1356 mActiveContainers->push_back(new ContainerData(strdup(id), ASEC)); in mountAsec()
1358 SLOGD("ASEC %s mounted", id); in mountAsec()
1775 char id[ID_BUF_LEN]; in unmountAllAsecsInDir() local
1776 strlcpy(id, dent->d_name, name_len - 4); in unmountAllAsecsInDir()
1777 if (unmountAsec(id, true)) { in unmountAllAsecsInDir()
1847 if (findAsec(cd->id, asecFileName, sizeof(asecFileName))) { in cleanupAsec()
1848 SLOGE("Couldn't find ASEC %s; cleaning up", cd->id); in cleanupAsec()
1858 if (v == getVolumeForFile(cd->id)) { in cleanupAsec()
1868 SLOGI("Unmounting ASEC %s (dependent on %s)", cd->id, v->getLabel()); in cleanupAsec()
1869 if (unmountAsec(cd->id, force)) { in cleanupAsec()
1870 SLOGE("Failed to unmount ASEC %s (%s)", cd->id, strerror(errno)); in cleanupAsec()
1877 SLOGI("Unmounting OBB %s (dependent on %s)", cd->id, v->getLabel()); in cleanupAsec()
1878 if (unmountObb(cd->id, force)) { in cleanupAsec()
1879 SLOGE("Failed to unmount OBB %s (%s)", cd->id, strerror(errno)); in cleanupAsec()