如果要添加 emulated sdcard ,需要一下几个内容修改:
1. patch:
- diff --git a/init.rc b/init.rc
- index bd6c22e..3a55e6a 100755
- --- a/init.rc
- +++ b/init.rc
- @@ -184,11 +184,15 @@ on post-fs-data
- # create directory for DRM plug-ins
- mkdir /data/drm 0774 drm drm
- + # we will remap this as /mnt/sdcard with the sdcard fuse tool
- + mkdir /data/media 0775 media_rw media_rw
- + chown media_rw media_rw /data/media
- +
- # If there is no fs-post-data action in the init.<device>.rc file, you
- # must uncomment this line, otherwise encrypted filesystems
- # won't work.
- # Set indication (checked by vold) that we have finished this action
- - #setprop vold.post_fs_data_done 1
- + setprop vold.post_fs_data_done 1
- chown system system /sys/class/android_usb/android0/f_mass_storage/lun/file
- chmod 0660 /sys/class/android_usb/android0/f_mass_storage/lun/file
- @@ -509,3 +513,9 @@ service iprenew_eth0 /system/bin/dhcpcd -n
- disabled
- oneshot
- +# create virtual SD card at /mnt/sdcard, based on the /data/media directory
- +# daemon will drop to user/group system/media_rw after initializing
- +# underlying files in /data/media will be created with user and group media_rw (1023)
- +#service sdcard /system/bin/sdcard /data/media 1023 1023
- +service sdcard /system/bin/sdcard /data/media /mnt/shell/emulated 1023 1023
- + class late_start
- +
- diff --git a/device.mk b/device.mk
- index bd72276..c836943 100755
- --- a/device.mk
- +++ b/device.mk
- @@ -6,6 +6,8 @@ PRODUCT_PACKAGES := \
- VisualizationWallpapers \
- librs_jni
- +PRODUCT_CHARACTERISTICS += nosdcard
- +
- DEVICE_PACKAGE_OVERLAYS := \
- device/stm/kem/overlay
- diff --git a/overlay/frameworks/base/core/res/res/xml/storage_list.xml b/overlay/frameworks/base/core/res/res/xml/storage_list.xml
- new file mode 100644
- index 0000000..043530d
- --- /dev/null
- +++ b/overlay/frameworks/base/core/res/res/xml/storage_list.xml
- @@ -0,0 +1,41 @@
- +<?xml version="1.0" encoding="utf-8"?>
- +<!--
- +**
- +** Copyright 2011, The Android Open Source Project
- +**
- +** Licensed under the Apache License, Version 2.0 (the "License")
- +** you may not use this file except in compliance with the License.
- +** You may obtain a copy of the License at
- +**
- +** http://www.apache.org/licenses/LICENSE-2.0
- +**
- +** Unless required by applicable law or agreed to in writing, software
- +** distributed under the License is distributed on an "AS IS" BASIS,
- +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- +** See the License for the specific language governing permissions and
- +** limitations under the License.
- +*/
- +-->
- +
- +<!-- The <device> element should contain one or more <storage> elements.
- + Exactly one of these should have the attribute primary="true".
- + This storage will be the primary external storage and should have path="/mnt/sdcard".
- + Each storage should have both a path and description attribute set.
- + The following boolean attributes are optional:
- +
- + primary: this storage is the primary external storage
- + removable: this is removable storage (for example, a real SD card)
- + emulated: the storage is emulated via the FUSE sdcard daemon
- + mtp-reserve: number of megabytes of storage MTP should reserve for free storage
- + (used for emulated storage that is shared with system's data partition)
- +
- + A storage should not have both emulated and removable set to true
- +-->
- +
- +<StorageList xmlns:android="http://schemas.android.com/apk/res/android">
- + <storage android:storageDescription="@string/storage_internal"
- + android:emulated="true"
- + android:mtpReserve="100" />
- +</StorageList>
2. kernel config
需要 CONFIG_FUSE_FS=y
查看有没有 /mnt/sdcard:
开机后adb shell进去后df下即可
相关推荐
在Android中,外置SDCard的路径通常是`/storage/emulated/0/`,但这并不是在所有设备上都一致。因此,推荐使用Android提供的API来获取正确的路径。从API level 17开始,Android提供了`Environment....
本文将深入解析“Android应用源码SdCard读写文件实例”中的关键知识点,帮助开发者理解和实践Android系统中关于外部存储的API。 首先,Android为开发者提供了`java.io`和`android.os.Environment`两个主要的类来...
在Android系统中,SDCard(Secure Digital Card)是用于存储数据的一种外部存储设备,尤其对于移动设备来说,它提供了...无论是物理SDCard还是emulated SDCard,都需遵循Android的安全存储规则,确保用户数据的安全。
Android为开发者提供了多种文件存储方式,以适应不同的需求,包括内部存储和外部存储(通常指SDCard)。这两种存储方式各有特点,适用场景不同,下面我们将详细探讨这两种存储机制。 1. **内部存储** - **定义**:...
在Android开发中,将网络上的图片下载到SDCard并显示是一项常见的需求。这个源码示例提供了一种方法来实现这一功能。以下是基于标题和描述的相关知识点详解: 1. **Android权限管理**: 在Android中,访问SDCard...
在Android 6.0(API级别23)之前,应用默认可以访问SDcard的公共目录,如`/mnt/sdcard/`或`/storage/emulated/0/`。在之后的版本,需要用户授权才能访问。音频文件通常存放在`/storage/emulated/0/Music`或`/storage...
在Android系统中,访问外部存储(通常称为SDcard)路径的方法随着版本的更新而有所变化。这篇文章主要讨论了在不同Android版本中访问SDcard的几种常见方式,特别关注了从Android 4.1(JellyBean)及以后的版本。 在...
在Android开发中,虚拟SD卡(也称为emulated SD card)是一种重要的技术,它允许开发者在没有物理SD卡的情况下模拟外部存储空间。这对于测试、应用开发以及设备资源管理都有着显著的作用。本文将深入探讨如何在...
本文将深入探讨如何在Android TV和手机上获取SDCARD(内部或外部)以及USB设备的路径。 首先,我们要明白在Android中,存储路径的管理是基于Android的存储模型。自Android 4.4(KitKat)版本开始,引入了“可卸载的...
例如,对于SD卡中的文件,路径通常以`/storage/emulated/0/`或`/mnt/sdcard/`开头。 3. **异常处理**:上述代码中包含了对`IOException`的捕获,这是处理文件操作中可能出现的错误,如文件不存在、无权限或磁盘满等...
"Android数据存储(内置sdcard3)"这个主题聚焦于Android设备上内部存储空间的第三部分,通常称为内部SD卡或者emulated storage。在Android中,内部存储被划分为不同的分区,为不同类型的数据提供存储空间。 内部SD...
在Android系统中,`sdcard`服务是负责处理外部存储(如SD卡)的主要组件。`sdcard.c`通常包含与挂载、卸载、以及管理外部存储相关的C/C++原生代码。在这个场景中,修改`sdcard.c`可能意味着对存储分区的配置进行了...
对于未安装的APK,可以使用文件管理器应用将其复制到SD卡的适当目录,通常是`/storage/emulated/0/Download`或者`/mnt/sdcard/Download`,这取决于设备和Android版本。 4. **权限管理**:从Android 4.4 KitKat版本...
File file = new File("/storage/emulated/0/MyFolder/myfile.txt"); boolean isDeleted = file.delete(); ``` 在上面的代码中,我们创建了一个`File`对象,表示SD卡上名为"MyFolder"目录下的"myfile.txt"。然后,...
SD卡在Android设备中被挂载为一个文件系统目录,通常是`/storage/emulated/0`或`/mnt/sdcard`。你可以通过`java.io.File`类或者Android的`android.os.Environment`类来访问这个路径,获取到SD卡的根目录。 2. **...
注意,对于某些设备或Android版本,SDCard目录可能为`/storage/emulated/0`或其他路径,因此建议先用`ls`命令查看当前目录,确认SDCard的准确位置。 4. **列出所有文件夹**: 使用`ls`命令可以列出当前目录下的...
例如,图片可能位于`/storage/emulated/0/Pictures`或`/storage/sdcard0/Pictures`,而视频可能在`/storage/emulated/0/DCIM`或`/storage/sdcard0/DCIM`。 在进行文件删除操作前,你需要确保应用有相应的权限。对于...
最近在Android N 上 安装Apk时报错:android.os.FileUriExposedException: file:///storage/emulated/0/Download/appName-2.3.0.apk exposed beyond app through Intent.getData(),通过查找相关的资料终于找到了...
3. **/mnt**:挂载点,例如/sdcard指向外部存储卡,/storage/emulated/0指向内部存储空间。 4. **/etc**:系统配置文件,如网络设置、权限文件等。 5. **/dev**:设备节点,用于硬件设备的访问。 6. **/proc**:...