Compare commits

...

2 Commits

Author SHA1 Message Date
yova 5c43c7b0fb repair is successful
11 months ago
nift4 85ffd688e9 vold: fix failing to format zero-ed out SD card
12 months ago

@ -45,7 +45,7 @@ status_t Check(const std::string& source) {
cmd.push_back(source); cmd.push_back(source);
int rc = ForkExecvp(cmd, nullptr, sFsckUntrustedContext); int rc = ForkExecvp(cmd, nullptr, sFsckUntrustedContext);
if (rc == 0) { if (rc == 0 || rc == 1) {
LOG(INFO) << "Check OK"; LOG(INFO) << "Check OK";
return 0; return 0;
} else { } else {

@ -471,26 +471,23 @@ status_t Disk::partitionPublic() {
std::vector<std::string> output; std::vector<std::string> output;
res = ForkExecvp(cmd, &output); res = ForkExecvp(cmd, &output);
if (res != OK) {
LOG(WARNING) << "sgdisk failed to scan " << mDevPath;
mJustPartitioned = false;
return res;
}
Table table = Table::kUnknown; Table table = Table::kUnknown;
for (auto line : output) { // fails when there is no partition table, it's okay
char* cline = (char*) line.c_str(); if (res == OK) {
char* token = strtok(cline, kSgdiskToken); for (auto line : output) {
if (token == nullptr) continue; char* cline = (char*) line.c_str();
char* token = strtok(cline, kSgdiskToken);
if (!strcmp(token, "DISK")) { if (token == nullptr) continue;
const char* type = strtok(nullptr, kSgdiskToken);
if (!strcmp(type, "mbr")) { if (!strcmp(token, "DISK")) {
table = Table::kMbr; const char* type = strtok(nullptr, kSgdiskToken);
break; if (!strcmp(type, "mbr")) {
} else if (!strcmp(type, "gpt")) { table = Table::kMbr;
table = Table::kGpt; break;
break; } else if (!strcmp(type, "gpt")) {
table = Table::kGpt;
break;
}
} }
} }
} }

Loading…
Cancel
Save