重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
首先,可以用个命令 cat /proc/partitions 查看分区大小如下所示:(单位KBytes)
成都创新互联公司专业为企业提供安居网站建设、安居做网站、安居网站设计、安居网站制作等企业网站建设、网页设计与制作、安居企业网站模板建站服务,十年安居做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
cat /proc/partitions
major minor #blocks name
179 0 15388672 mmcblk0
179 1 1024 mmcblk0p1
179 2 1024 mmcblk0p2
179 3 10240 mmcblk0p3
179 4 2048 mmcblk0p4
179 5 8192 mmcblk0p5
179 6 8192 mmcblk0p6
179 7 20480 mmcblk0p7
259 0 20480 mmcblk0p8
259 1 40960 mmcblk0p9
259 2 40960 mmcblk0p10
259 3 40960 mmcblk0p11
259 4 20480 mmcblk0p12
259 5 1024 mmcblk0p13
259 6 307200 mmcblk0p14
259 7 40960 mmcblk0p15
259 8 819200 mmcblk0p16
259 9 819200 mmcblk0p17
259 10 13186048 mmcblk0p18
179 16 4096 mmcblk0boot1
179 8 4096 mmcblk0boot0
第一个mmcblk0为emmc的块设备,大小为15388672 KB。
其他的分区我们可以通过命令
ls -l /dev/block/platform/soc/by-name
lrwxrwxrwx root root 2019-03-13 16:38 baseparam - /dev/block/mmcblk0p5
lrwxrwxrwx root root 2019-03-13 16:38 bootargs - /dev/block/mmcblk0p2
lrwxrwxrwx root root 2019-03-13 16:38 cache - /dev/block/mmcblk0p17
lrwxrwxrwx root root 2019-03-13 16:38 deviceinfo - /dev/block/mmcblk0p4
lrwxrwxrwx root root 2019-03-13 16:38 fastboot - /dev/block/mmcblk0p1
lrwxrwxrwx root root 2019-03-13 16:38 fastplay - /dev/block/mmcblk0p9
lrwxrwxrwx root root 2019-03-13 16:38 fastplaybak - /dev/block/mmcblk0p10
lrwxrwxrwx root root 2019-03-13 16:38 kernel - /dev/block/mmcblk0p11
lrwxrwxrwx root root 2019-03-13 16:38 logo - /dev/block/mmcblk0p7
lrwxrwxrwx root root 2019-03-13 16:38 logobak - /dev/block/mmcblk0p8
lrwxrwxrwx root root 2019-03-13 16:38 misc - /dev/block/mmcblk0p12
lrwxrwxrwx root root 2019-03-13 16:38 pqparam - /dev/block/mmcblk0p6
lrwxrwxrwx root root 2019-03-13 16:38 qbboot - /dev/block/mmcblk0p13
lrwxrwxrwx root root 2019-03-13 16:38 qbdata - /dev/block/mmcblk0p14
lrwxrwxrwx root root 2019-03-13 16:38 recovery - /dev/block/mmcblk0p3
lrwxrwxrwx root root 2019-03-13 16:38 system - /dev/block/mmcblk0p16
lrwxrwxrwx root root 2019-03-13 16:38 trustedcore - /dev/block/mmcblk0p15
lrwxrwxrwx root root 2019-03-13 16:38 userdata - /dev/block/mmcblk0p18
我们可以找到 userdata - /dev/block/mmcblk0p18 userdata分区被链接到了mmcblk0p18这个分区,再对应到第一条命令中我们可以查找到13186048 KB
在android中,device里面的BroadConfig.mk中可以修改userdata的大小,注意这里面的单位为字节
TARGET_USERIMAGES_USE_EXT4 := true
BOARD_SYSTEMIMAGE_PARTITION_SIZE := 838860800
BOARD_USERDATAIMAGE_PARTITION_SIZE := 13502513152
BOARD_CACHEIMAGE_PARTITION_SIZE := 838860800
BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4
BOARD_FLASH_BLOCK_SIZE := 4096
BOARD_HAVE_BLUETOOTH := true
在Android10以前,只要程序获得了READ_EXTERNAL_STORAGE权限,就可以随意读取外部的存储公有目录。只要程序获得了WRITE_EXTERNAL_STORAGE权限,就可以随意在写入外部存储的公有目录上新建文件或文件夹
于是Google在Android10中提出了分区存储,意在限制程序对外部存储中公有目录的使用。
分区存储对内部存储私有目录和外部存储私有目录都没有影响
简单来说就是,在Android10中,
使用分区存储的应用对自己创建的文件始终拥有读/写权限, 无论文件是否位于应用的私有目录内 ,所以,如果应用仅保存和访问自己创建的文件,则无需请求获得READ_EXTERNAL_STORAGE或WRITE_EXTERNAL_STORAGE权限
如果要访问其他应用创建的文件,则需要READ_EXTERNAL_STORAGE权限。并且仍然只能使用MediaStore提供的API或是SAF访问。
这里需要注意的是,MediaStore提供的API只能访问图片、视频、音频,如果需要访问其它任意格式的文件,需要使用SAF,它会调用系统内置的文件浏览器供用户自主选择文件
Android Q规定了App有两种存储空间模式视图:Legacy View、Filtered View
系统通过下列方式确定App的运行模式:
判断当前App运行的是什么模式,可以通过Environment提供的API进行判断
MediaStore提供了下列几种类型的访问Uri,通过查找对应Uri数据,达到访问的目的。
我们还可以使用getContentUri获取所有volumeName
MediaProvider对于App存放到公共目录文件,通过ContentResolver insert方法中Uri来确定
MediaStroe通过不同Uri,为用户提供了增、删、改方法,权限对应如下
例如PDF,PDF为非媒体类文件,因此我们不能通过MediaStore来获取,对于这种其他类型的文件,一般使用SAF来让用户选择
我们也推荐使用SAF让用户自己去创建,IntentAction为:ACTION_CREATE_DOCUMENT
访问app-specific分为两种情况,一种是访问App自身App-specific目录,第二是访问其他App目录文件
Android Q,App如果启动了Filtered View,那么只能直接访问自己目录的文件:
App是FilteredView,其他App无法直接访问当前App私有目录,需要通过以下方法:
路径: android/device/qcom/xxxx/BoardConfig.mk
cache分区大小250M修改为800M
BOARD_RECOVERYIMAGE_PARTITION_SIZE := 0x04000000
BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4
-BOARD_CACHEIMAGE_PARTITION_SIZE := 268435456
+BOARD_CACHEIMAGE_PARTITION_SIZE := 858993459
路径: common/config/partition.xml
- partition label="cache" size_in_kb=" 262144 " type="5594C694-C871-4B5F-90B1-690A6F68E0F7" bootable="false" readonly="false" filename="cache.img" sparse="true"/
+ partition label="cache" size_in_kb=" 838860 " type="5594C694-C871-4B5F-90B1-690A6F68E0F7" bootable="false" readonly="false" filename="cache.img" sparse="true"/
相信许多新手机友都有感慨过手机内存太小,软件总是装的不够,于是就会上网寻找解决得办法,接着就会看到一些平常不熟悉的术语如a2sd,EXT2/3等,接下来就有我百信手机大全为大家详细地展示如何进行EXT2分区的过程。欢迎阅读。
先需要软件PartitionManager9.0,把TF卡插入读卡器后,运行PM软件。
选择盘符,一般读卡器上的TF卡盘符显示为...USB...,且为最后一个盘符。我这里演示的是V880自带的'2G卡。
鼠标右键选中TF卡,选择"移动/ 调整分区大小。按需调整第三个选择"free space after"选项里面的空间,即即将分配给EXT2分区的大小,我这里约900M,再点确定。看见没有?原来一个分区变为2个了!
右键新分出的分区,点击"创建分区"。出现新界面后,选择"主分区"-"EXT2分区格式"。这里千万别错了,其它不用动。点确定继续操作。
完成后点PM软件左上角的"钩钩",继续。完成后即可把卡拔出放入手机了。
假设手机设备能正常开机的情况,就可以通过df进行备份。下面以备份boot分区为例介绍如何备份和恢复分区内容。
1查看boot属于哪个分区
进入手机路径dev/block/platform/ff0f0000.rksdhci/by-name输入查看命令ll。比如我这里看到的是 /dev/block/mmcblk0p5
2查看boot分区的大小
输入cat proc/partitions
3用dd命令将分区boot复制到data分区下
dd if=/dev/block/mmcblk0p7 of=/sdcard/boot.img bs=1024 count=32768
4将备份的boot.img 拷贝到PC
adb pull /sdcard/boot.img .
5恢复boot分区内容
dd of=/dev/block/mmcblk0p5 if=/sdcard/boot.img bs=1024 count=32768
参照修改:《备份和恢复Android手机分区的方法》:
文件位置:/FFTool/xxParameter.txt,文件可以在直接打开,内容如下:
上面都是跟硬件相关的信息,我们直奔主题,找到/data分区的信息:0x00400000@0x0039C000(userdata),第一串十六进制数据表示分区大小,第二串表示位置。分区大小的计算:16进制数据转成10进制x512/1024/1024,按照我这个大小得到的是2048MB,也就是2GB,我想要改成3GB,那我就要换算成16进制:0X00600000;大小改变后,后面所有分区的地址也都要改变,下面是改完后的数据: