@ -50,7 +50,10 @@ static const char* kSdcardFsPath = "/system/bin/sdcard";
static const char * kAsecPath = " /mnt/secure/asec " ;
static const char * kAsecPath = " /mnt/secure/asec " ;
PublicVolume : : PublicVolume ( dev_t device ) : VolumeBase ( Type : : kPublic ) , mDevice ( device ) {
PublicVolume : : PublicVolume ( dev_t device , const std : : string & fstype /* = "" */ ,
const std : : string & mntopts /* = "" */ )
: VolumeBase ( Type : : kPublic ) , mDevice ( device ) ,
mFsType ( fstype ) , mMntOpts ( mntopts ) {
setId ( StringPrintf ( " public:%u,%u " , major ( device ) , minor ( device ) ) ) ;
setId ( StringPrintf ( " public:%u,%u " , major ( device ) , minor ( device ) ) ) ;
mDevPath = StringPrintf ( " /dev/block/vold/%s " , getId ( ) . c_str ( ) ) ;
mDevPath = StringPrintf ( " /dev/block/vold/%s " , getId ( ) . c_str ( ) ) ;
mFuseMounted = false ;
mFuseMounted = false ;
@ -156,9 +159,9 @@ status_t PublicVolume::doMount() {
ret = exfat : : Mount ( mDevPath , mRawPath , AID_ROOT ,
ret = exfat : : Mount ( mDevPath , mRawPath , AID_ROOT ,
( isVisible ? AID_MEDIA_RW : AID_EXTERNAL_STORAGE ) , 0007 ) ;
( isVisible ? AID_MEDIA_RW : AID_EXTERNAL_STORAGE ) , 0007 ) ;
} else if ( mFsType = = " ext4 " ) {
} else if ( mFsType = = " ext4 " ) {
ret = ext4 : : Mount ( mDevPath , mRawPath , false , false , true );
ret = ext4 : : Mount ( mDevPath , mRawPath , false , false , true , mMntOpts );
} else if ( mFsType = = " f2fs " ) {
} else if ( mFsType = = " f2fs " ) {
ret = f2fs : : Mount ( mDevPath , mRawPath );
ret = f2fs : : Mount ( mDevPath , mRawPath , mMntOpts );
} else if ( mFsType = = " ntfs " ) {
} else if ( mFsType = = " ntfs " ) {
ret = ntfs : : Mount ( mDevPath , mRawPath , AID_ROOT ,
ret = ntfs : : Mount ( mDevPath , mRawPath , AID_ROOT ,
( isVisible ? AID_MEDIA_RW : AID_EXTERNAL_STORAGE ) , 0007 ) ;
( isVisible ? AID_MEDIA_RW : AID_EXTERNAL_STORAGE ) , 0007 ) ;