int VolumeManager::unmountAsec(const char *id, bool force) { char asecFileName[255]; char mountPoint[255]; if (!isLegalAsecId(id)) { SLOGE("unmountAsec: Invalid asec id \"%s\"", id); errno = EINVAL; return -1; } if (findAsec(id, asecFileName, sizeof(asecFileName))) { SLOGE("Couldn't find ASEC %s", id); return -1; } int written = snprintf(mountPoint, sizeof(mountPoint), "%s/%s", Volume::ASECDIR, id); if ((written < 0) || (size_t(written) >= sizeof(mountPoint))) { SLOGE("ASEC unmount failed for %s: couldn't construct mountpoint", id); return -1; } char idHash[33]; if (!asecHash(id, idHash, sizeof(idHash))) { SLOGE("Hash of '%s' failed (%s)", id, strerror(errno)); return -1; } return unmountLoopImage(id, idHash, asecFileName, mountPoint, force); }
int VolumeManager::unmountObb(const char *fileName, bool force) { char mountPoint[255]; char idHash[33]; if (!asecHash(fileName, idHash, sizeof(idHash))) { SLOGE("Hash of '%s' failed (%s)", fileName, strerror(errno)); return -1; } snprintf(mountPoint, sizeof(mountPoint), "%s/%s", Volume::LOOPDIR, idHash); return unmountLoopImage(fileName, idHash, fileName, mountPoint, force); }
int VolumeManager::unmountAsec(const char *id, bool force) { char asecFileName[255]; char mountPoint[255]; snprintf(asecFileName, sizeof(asecFileName), "%s/%s.asec", Volume::SEC_ASECDIR, id); snprintf(mountPoint, sizeof(mountPoint), "%s/%s", Volume::ASECDIR, id); char idHash[33]; if (!asecHash(id, idHash, sizeof(idHash))) { SLOGE("Hash of '%s' failed (%s)", id, strerror(errno)); return -1; } return unmountLoopImage(id, idHash, asecFileName, mountPoint, force); }
int VolumeManager::unmountObb(const char *fileName, bool force) { char mountPoint[255]; char idHash[33]; if (!asecHash(fileName, idHash, sizeof(idHash))) { SLOGE("Hash of '%s' failed (%s)", fileName, strerror(errno)); return -1; } int written = snprintf(mountPoint, sizeof(mountPoint), "%s/%s", Volume::LOOPDIR, idHash); if ((written < 0) || (size_t(written) >= sizeof(mountPoint))) { SLOGE("OBB unmount failed for %s: couldn't construct mountpoint", fileName); return -1; } return unmountLoopImage(fileName, idHash, fileName, mountPoint, force); }