将Android APP安装到sm8550 HDK的NVMe SSD

APP存储路径

在Android中,App在运行过程中主要访问的数据路径通常包括以下几个方面:

内部存储(Internal Storage):App会访问其私有的内部存储空间,这个空间通常位于:

/data/data//:这个目录是每个App的专属内存空间,用于存储私有数据,如数据库、SharedPreferences、文件等。

外部存储(External Storage):如果App需要存储对用户可见的数据或是共享文件,可能会访问外部存储:

/sdcard/Android/data// 或 /storage/emulated/0/Android/data//:用于存储可被用户或者设备上其他App访问的非私有数据。

缓存目录(Cache):App运行过程中会产生临时数据,内部缓存路径为:

/data/data//cache/:内部缓存目录,用于临时存储数据。

外部缓存路径为:

/sdcard/Android/data//cache/:外部缓存目录,也用于临时存储,但存储在外部存储上。
应用程序资源和代码(Application Resources and Code):
/data/app//:App安装在这个位置,在这里可以找到APK文件以及和App相关的其他执行文件。

系统提供的公共目录:一些公共的数据,如音乐、照片等,App可以通过相应权限访问系统提供的公共目录:

/sdcard/Music/
/sdcard/Pictures/
/sdcard/Download/等等。

方法一:基于mount --bind方法

# selinux会检测权限问题所以先关闭它
setenforce 0
# 创建挂载点
mkdir /data/nvme_ssd
# 挂载nvme ssd
mount /dev/block/nvme0n1p1 /data/nvme_ssd
# 复制目录到nvme ssd
cp -r -p /data/data /data/nvme_ssd/
cp -r -p /data/app /data/nvme_ssd/
cp -r -p /sdcard/Android /data/nvme_ssd/
# 挂载目录到nvme ssd
mount --bind /data/nvme_ssd/data /data/data
mount --bind /data/nvme_ssd/app /data/app
mount --bind /data/nvme_ssd/Android /sdcard/Android
# 查看挂载结果
df -h -a

方法二:/data/app路径转移到NVMe设备

# selinux会检测权限问题所以先关闭它
setenforce 0
# 将盘挂载到/data/app路径下
mount /dev/block/nvme0n1p1 /data/app
# 修改目录权限
chown -R system:system /data/app

方法三:/data/data路径软连接到NVMe设备

因为这里已经存储了很多原厂的app数据,而且各个目录/各级目录的权限也不同,因此修改起来比较麻烦
确定要迁移的APP,这里以com.sohu.inputmethod.sogou为例

# 在/data/app下创建新的data目录
mkdir /data/app/data
# 修改权限
chown -R system:system /data/app/data
# 迁移APP数据
mv /data/data/com.sohu.inputmethod.sogou /data/app/data/
# 看一下权限所有者,应该没有变,是app号
ls -lh /data/app/data
total 3.0K
drwx------ 9 u0_a163 u0_a163 3.4K 2024-02-26 01:42 com.sohu.inputmethod.sogou
# 创建软连接
ln -s /data/app/data/com.sohu.inputmethod.sogou /data/data/com.sohu.inputmethod.sogou
# 修改软连接权限
chown -h u0_a163:u0_a163  /data/data/com.sohu.inputmethod.sogou
#看一下修改结果
cd /data/data
ls -lh
lrwxrwxrwx  1 u0_a163 u0_a163 41 2024-02-26 01:46 com.sohu.inputmethod.sogou -> /data/app/data/com.sohu.inputmethod.sogou

你可能感兴趣的:(Android,linux内核,android,linux)