Merge "Refine the DSU SD card support"

This commit is contained in:
Howard Chen
2021-01-27 08:40:34 +00:00
committed by Gerrit Code Review

View File

@@ -22,7 +22,6 @@ import android.gsi.AvbPublicKey;
import android.gsi.GsiProgress;
import android.gsi.IGsiService;
import android.gsi.IGsiServiceCallback;
import android.os.Environment;
import android.os.ParcelFileDescriptor;
import android.os.RemoteException;
import android.os.ServiceManager;
@@ -30,7 +29,7 @@ import android.os.SystemProperties;
import android.os.UserHandle;
import android.os.image.IDynamicSystemService;
import android.os.storage.StorageManager;
import android.os.storage.StorageVolume;
import android.os.storage.VolumeInfo;
import android.util.Slog;
import java.io.File;
@@ -88,16 +87,17 @@ public class DynamicSystemService extends IDynamicSystemService.Stub {
String path = SystemProperties.get("os.aot.path");
if (path.isEmpty()) {
final int userId = UserHandle.myUserId();
final StorageVolume[] volumes =
StorageManager.getVolumeList(userId, StorageManager.FLAG_FOR_WRITE);
for (StorageVolume volume : volumes) {
if (volume.isEmulated()) continue;
if (!volume.isRemovable()) continue;
if (!Environment.MEDIA_MOUNTED.equals(volume.getState())) continue;
File sdCard = volume.getPathFile();
if (sdCard.isDirectory()) {
path = new File(sdCard, dsuSlot).getPath();
break;
final StorageManager sm = mContext.getSystemService(StorageManager.class);
for (VolumeInfo volume : sm.getVolumes()) {
if (volume.getType() != volume.TYPE_PUBLIC) {
continue;
}
if (!volume.isMountedWritable()) {
continue;
}
File sd_internal = volume.getInternalPathForUser(userId);
if (sd_internal != null) {
path = new File(sd_internal, dsuSlot).getPath();
}
}
if (path.isEmpty()) {