Support cuttlefish with an emulated 2GB SD
Currently we have an assumption that SD card's size is bigger
than the internal /data so the DSU would always choose SD as the
destination when possible. This assumption is not valid for
cuttlefish which only have an emulated 2G SD
Bug: 179980369
Bug: 171861574
Test: A physical device with a SD card inserted and
CF local instance with an emulated SD
Change-Id: I15c5d38ab316b8d65546d876fe235d0c9c6ed6aa
This commit is contained in:
@@ -28,6 +28,7 @@ import android.os.ServiceManager;
|
||||
import android.os.SystemProperties;
|
||||
import android.os.UserHandle;
|
||||
import android.os.image.IDynamicSystemService;
|
||||
import android.os.storage.DiskInfo;
|
||||
import android.os.storage.StorageManager;
|
||||
import android.os.storage.VolumeInfo;
|
||||
import android.util.Slog;
|
||||
@@ -40,6 +41,7 @@ import java.io.File;
|
||||
*/
|
||||
public class DynamicSystemService extends IDynamicSystemService.Stub {
|
||||
private static final String TAG = "DynamicSystemService";
|
||||
private static final long MINIMUM_SD_MB = (30L << 10);
|
||||
private static final int GSID_ROUGH_TIMEOUT_MS = 8192;
|
||||
private static final String PATH_DEFAULT = "/data/gsi/";
|
||||
private Context mContext;
|
||||
@@ -95,6 +97,13 @@ public class DynamicSystemService extends IDynamicSystemService.Stub {
|
||||
if (!volume.isMountedWritable()) {
|
||||
continue;
|
||||
}
|
||||
DiskInfo disk = volume.getDisk();
|
||||
long mega = disk.size >> 20;
|
||||
Slog.i(TAG, volume.getPath() + ": " + mega + " MB");
|
||||
if (mega < MINIMUM_SD_MB) {
|
||||
Slog.i(TAG, volume.getPath() + ": insufficient storage");
|
||||
continue;
|
||||
}
|
||||
File sd_internal = volume.getInternalPathForUser(userId);
|
||||
if (sd_internal != null) {
|
||||
path = new File(sd_internal, dsuSlot).getPath();
|
||||
|
||||
Reference in New Issue
Block a user