./out/host/linux-x86/bin/make_ext4fs -l 1024M -s out/target/product/msm8953_64/custom.img out/target/product/msm8953_64/custom
./out/host/linux-x86/bin/make_ext4fs -l 1024M -s custom.img /custom
制作img 文件前,将要放到img文件之中的内容拷贝到 custom目录,然后执行此命令,执行后,img中有此拷贝的内容
mkdir -p custom
/mnt/data/xxxx/Workfolder/carl/aili/d/d-1/sc60_android7.1.2_xxxx/out/host/linux-x86/bin/make_ext4fs -l 1024M -s custom.img custom
制作img 文件前,将要放到img文件之中的内容拷贝到 custom目录,然后执行此命令,执行后,img中有此拷贝的内容
mkdir -p custom
/mnt/data/xxxx/Workfolder/carl/aili/d/d-1/sc60_android7.1.2_xxxx/out/host/linux-x86/bin/make_ext4fs -l 1024M -s custom.img custom
Try 'mkdir --help' for more information.
xxxx@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-1/sc60_android7.1.2_xxxx/out/host/linux-x86/bin/test$ mkdir der/carl/aili/d/d-1/sc60_android7.1.2_xxxx/out/host/linux-x86/bin/test$ ./../make_ext4fs -s out/target/prod^Ct/msm8953_64/custom.img o
xxxx@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-1/sc60_android7.1.2_xxxx/out/host/linux-x86/bin/test$
xxxx@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-1/sc60_android7.1.2_xxxx/out/host/linux-x86/bin/test$
xxxx@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-1/sc60_android7.1.2_xxxx/out/host/linux-x86/bin/test$
xxxx@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-1/sc60_android7.1.2_xxxx/out/host/linux-x86/bin/test$
xxxx@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-1/sc60_android7.1.2_xxxx/out/target/product$ cd ^C
xxxx@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-1/sc60_android7.1.2_xxxx/out/target/product$ cd msm8953_64/
xxxx@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-1/sc60_android7.1.2_xxxx/out/target/product/msm8953_64$ ls
OTA_Binary_Packs cache data installed-files.json module-info.json oem3.img previous_build_config.mk recovery.img symbols
OTA_Target_Files cache.img dex_bootjars installed-files.txt obj oem4.img ramdisk-recovery.img root system
android-info.txt clean_steps.mk emmc_appsboot.mbn integrity obj_arm ota.zip ramdisk.img secimage.log system.img
boot.img custom fake_packages kernel oem persist recovery signed userdata.img
build_fingerprint.txt custom.img gen mdtp.img oem2.img persist.img recovery.id signed_encrypted
xxxx@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-1/sc60_android7.1.2_xxxx/out/target/product/msm8953_64$
xxxx@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-1/sc60_android7.1.2_xxxx/out/target/product/msm8953_64$ /mnt/data/xxxx/Workfolder/carl/aili/d/d-1/sc60_android7.1.2_xxxx/out/host/linux-x86/bin/make_ext4fs -l 1024M -s custom.img custom
Creating filesystem with parameters:
Size: 1073741824
Block size: 4096
Blocks per group: 32768
Inodes per group: 8192
Inode size: 256
Journal blocks: 4096
Label:
Blocks: 262144
Block groups: 8
Reserved block group size: 63
Created filesystem with 11/65536 inodes and 8536/262144 blocks
xxxx@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-1/sc60_android7.1.2_xxxx/out/target/product/msm8953_64$
product/msm8953_64# mount -o loop custom.img custom
NTFS signature is missing.
Failed to mount '/dev/loop17': Invalid argument
The device '/dev/loop17' doesn't seem to have a valid NTFS.
Maybe the wrong device is used? Or the whole disk instead of a
partition (e.g. /dev/sda, not /dev/sda1)? Or the other way around?
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-1/sc60_android7.1.2_xxxx/out/target/product/msm8953_64#
1946 mkfs.ext4 custom.img
1947 mount -o loop temp_mnt/ custom.img
1948 cd temp_mnt/
1949 ls
1950 sync
1951 ls
1952 tree -d
1953 cd algorithm/
1954 ls
1955 cd call/
1956 ls
1957 df -h
1958 du -lh
1959 sync
1960 du -lh
1961 cd ../
1962 ls
1963 cd ../
1964 ls
1965 du -lh
1966 cd ../
1967 umount temp_mnt/
1968 sunc
1969 sync
1970 ls
1971 umount temp_mnt/
1972 cd temp_mnt/
1973 ls
1974 cd ../
1975 ls
1976 ls custom.img
1977 cd /mnt/
1978 ls
1979 cd -
1980 mkdir mnt
1981 mount -o loop ./mnt/ custom.img
1982 mount ./mnt/ custom.img
1983 cd /tmp/
1984 mkdir mnt
1985 cd -
1986 mount /tmp/mnt/ custom.img
1987 mount /tmp/mnt/ custom.img -o loop
1988 mount -t ext4 -o loop custom.img /tmp/mnt/
1989 cd temp_mnt/
1990 cp * /tmp/mnt
1991 cp * /tmp/mnt -raf
1992 ls
1993 cp algorithm/ /tmp/mnt/ -raf
1994 cp face/ /tmp//mnt/ -raf
1995 cd /tmp/mnt/
1996 ls
1997 cd -
1998 umount /tmp/mnt/
这个流程是没有问题的。。。。
制作ext4文件系统
zue 2017-07-06 11:02:09 4685 收藏 3
展开
制作ext4文件系统
beaglebone对应硬件设备存储器均为emmc,并不是传统的nand flash,因此文件系统格式也不再是传统的yaffs或是jffs文件系统了。需要ext4文件系统。
在debian用户目录下新建目录rootfs_tmp文件,用于临时挂载文件系统:
mkdir -p rootfs_tmp
复制代码
制作一个128M(128x1024=131072)的ext4空白文件:
dd if=/dev/zero of=rootfs.ext4 bs=1024 count=131072
复制代码
再将新建的rootfs.ext4文件格式化为ext4格式:
sudo mkfs.ext4 rootfs.ext4
复制代码
将rootfs.ext4文件挂载到前面我们新建的临时目录rootfs_tmp,注意这里我们要使用mount –o loop的属性,表示我们要把rootfs.ext4当作硬盘分区挂载到rootfs_tmp:
sudo mount -o loop rootfs.ext4 ./rootfs_tmp
复制代码
这时,我们就可以给rootfs.ext4填充内容了。执行如下指令拷贝文件系统内容:
cd ./rootfs_tmp
cp -avrf ../busybox_rootfs/* ./
复制代码
拷贝完后,卸载挂载的rootfs.ext4文件,即完成了文件系统的制作:
sudo umount ./rootfs_tmp
这样就完成ext4格式的rooffs文件系统的制作。
Password:
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-1/sc60_android7.1.2_xxxx/out/target/product/msm8953_64# ls *.img
boot.img cache.img custom_zhu.img mdtp.img oem2.img oem3.img oem4.img persist.img ramdisk-recovery.img ramdisk.img recovery.img system.img userdata.img
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-1/sc60_android7.1.2_xxxx/out/target/product/msm8953_64# file custom_zhu.img
custom_zhu.img: Linux rev 1.0 ext4 filesystem data, UUID=2329e6df-a5f0-4218-911d-15cdd54d406e (extents) (64bit) (large files) (huge files)
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-1/sc60_android7.1.2_xxxx/out/target/product/msm8953_64#
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-1/sc60_android7.1.2_xxxx/out/target/product/msm8953_64# /mnt/data/xxxx/Workfolder/carl/aili/d/d-1/sc60_android7.1.2_xxxx/out/host/linux-x86/bin/img2simg custom_zhu.img custom_zhu_sparse.img
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-1/sc60_android7.1.2_xxxx/out/target/product/msm8953_64# file custom_zhu_sparse.img
custom_zhu_sparse.img: Android sparse image, version: 1.0, Total of 262144 4096-byte output blocks in 47 input chunks.
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-1/sc60_android7.1.2_xxxx/out/target/product/msm8953_64#
1.建立目录
mkdir -p custom
make_ext4fs -l 1024M -s custom.img custom
2.建立raw img或者 sparse img
3.打包数据
make_ext4fs -l 1024M -s out/target/product/msm8953_64/custom.img out/target/product/msm8953_64/custom
mkdir custom
chmod 777 -R ./custom
mount -o loop custom.img custom
将文件 拷贝进去
umount custom
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/sc60_android7.1.2_xxxx/out/target/product/msm8953_64# dd if=/dev/zero of=custom.img bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 0.338186 s, 3.2 GB/s
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/sc60_android7.1.2_xxxx/out/target/product/msm8953_64# ls custom.img
custom.img
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/sc60_android7.1.2_xxxx/out/target/product/msm8953_64# ls custom.img -l
-rw-r--r-- 1 root root 1073741824 Aug 13 17:08 custom.img
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/sc60_android7.1.2_xxxx/out/target/product/msm8953_64#
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/sc60_android7.1.2_xxxx/out/target/product/msm8953_64# mkfs.ext4 custom.img
mke2fs 1.44.1 (24-Mar-2018)
The file custom.img does not exist and no size was specified.
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/sc60_android7.1.2_xxxx/out/target/product/msm8953_64# dd if=/dev/zero of=custom.img bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 0.338186 s, 3.2 GB/s
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/sc60_android7.1.2_xxxx/out/target/product/msm8953_64# ls custom.img
custom.img
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/sc60_android7.1.2_xxxx/out/target/product/msm8953_64# ls custom.img -l
-rw-r--r-- 1 root root 1073741824 Aug 13 17:08 custom.img
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/sc60_android7.1.2_xxxx/out/target/product/msm8953_64# mkdir custom
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/sc60_android7.1.2_xxxx/out/target/product/msm8953_64# chmod 777 -R custom
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/sc60_android7.1.2_xxxx/out/target/product/msm8953_64# mount -o loop custom.img custom
mount: /mnt/data/xxxx/Workfolder/carl/aili/d/d-3/sc60_android7.1.2_xxxx/out/target/product/msm8953_64/custom: wrong fs type, bad option, bad superblock on /dev/loop3, missing codepage or helper program, or other error.
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/sc60_android7.1.2_xxxx/out/target/product/msm8953_64# mkfs.ext4 custom.img
mke2fs 1.44.1 (24-Mar-2018)
Discarding device blocks: done
Creating filesystem with 262144 4k blocks and 65536 inodes
Filesystem UUID: fea7199b-0ee0-4b5e-bf92-6aca388a95ed
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
Allocating group tables: done
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/sc60_android7.1.2_xxxx/out/target/product/msm8953_64# mount -o loop custom.img custom
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/sc60_android7.1.2_xxxx/out/target/product/msm8953_64#
m.img
mke2fs 1.44.1 (24-Mar-2018)
The file custom.img does not exist and no size was specified.
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/sc60_android7.1.2_xxxx/out/target/product/msm8953_64# dd if=/dev/zero of=custom.img bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 0.338186 s, 3.2 GB/s
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/sc60_android7.1.2_xxxx/out/target/product/msm8953_64# ls custom.img
custom.img
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/sc60_android7.1.2_xxxx/out/target/product/msm8953_64# ls custom.img -l
-rw-r--r-- 1 root root 1073741824 Aug 13 17:08 custom.img
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/sc60_android7.1.2_xxxx/out/target/product/msm8953_64# mkdir custom
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/sc60_android7.1.2_xxxx/out/target/product/msm8953_64# chmod 777 -R custom
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/sc60_android7.1.2_xxxx/out/target/product/msm8953_64# mount -o loop custom.img custom
mount: /mnt/data/xxxx/Workfolder/carl/aili/d/d-3/sc60_android7.1.2_xxxx/out/target/product/msm8953_64/custom: wrong fs type, bad option, bad superblock on /dev/loop3, missing codepage or helper program, or other error.
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/sc60_android7.1.2_xxxx/out/target/product/msm8953_64# mkfs.ext4 custom.img
mke2fs 1.44.1 (24-Mar-2018)
Discarding device blocks: done
Creating filesystem with 262144 4k blocks and 65536 inodes
Filesystem UUID: fea7199b-0ee0-4b5e-bf92-6aca388a95ed
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
Allocating group tables: done
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/sc60_android7.1.2_xxxx/out/target/product/msm8953_64# mount -o loop custom.img custom
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/sc60_android7.1.2_xxxx/out/target/product/msm8953_64#
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/sc60_android7.1.2_xxxx/out/target/product/msm8953_64# clear
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/sc60_android7.1.2_xxxx/out/target/product/msm8953_64# ls -l
total 55756
-rw-rw-r-- 1 xxxx xxxx 14 May 9 15:21 android-info.txt
-rw-rw-r-- 1 xxxx xxxx 28183848 May 9 16:07 boot.img
-rw-rw-r-- 1 xxxx xxxx 79 May 9 16:07 build_fingerprint.txt
-rw-rw-r-- 1 xxxx xxxx 68138 May 9 15:18 clean_steps.mk
drwxr-xr-x 3 root root 4096 Aug 13 17:11 custom
-rw-r--r-- 1 root root 1073741824 Aug 13 17:11 custom.img
drwxrwxr-x 3 xxxx xxxx 4096 May 9 15:20 data
drwxrwxr-x 3 xxxx xxxx 4096 May 9 15:20 gen
-rw-rw-r-- 1 xxxx xxxx 26119067 May 9 16:07 kernel
drwxrwxr-x 10 xxxx xxxx 4096 May 9 16:07 obj
-rw-rw-r-- 1 xxxx xxxx 980 May 9 15:18 previous_build_config.mk
-rw-rw-r-- 1 xxxx xxxx 2059192 May 9 15:21 ramdisk.img
drwxrwxr-x 3 xxxx xxxx 4096 May 9 15:21 recovery
drwxrwxr-x 20 xxxx xxxx 4096 May 9 15:21 root
drwxrwxr-x 4 xxxx xxxx 4096 May 9 15:21 symbols
drwxrwxr-x 8 xxxx xxxx 4096 May 9 16:07 system
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/sc60_android7.1.2_xxxx/out/target/product/msm8953_64# chmod 7777 -R custom
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/sc60_android7.1.2_xxxx/out/target/product/msm8953_64# umount custom
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/sc60_android7.1.2_xxxx/out/target/product/msm8953_64#
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/sc60_android7.1.2_xxxx/out/target/product/msm8953_64#
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/test/22# mount -o loop custom.img custom
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/test/22# cd custom
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/test/22/custom# ls
algorithm face lost+found
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/test/22/custom# cd algorithm/
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/test/22/custom/algorithm# cd algorithm/
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/test/22/custom/algorithm/algorithm# ls -l
total 4
drwxr-xr-x 5 xxxx xxxx 4096 Aug 13 18:03 algorithm
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/test/22/custom/algorithm/algorithm# cd algorithm/
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/test/22/custom/algorithm/algorithm/algorithm# ls
xxxx_algorithm_ver.txt cascade-data6-22.xml models svr_roll_model_C0.80_Nu0.10.xml
bsd_mask.png cigarette shape_predictor_68_face_landmarks.dat svr_yaw_model_C0.80_Nu0.05.xml
call dlib_face_recognition_resnet_model_v1.dat svr_pitch_model_C0.30_Nu0.50.xml
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/test/22/custom/algorithm/algorithm/algorithm# cd ../..
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/test/22/custom/algorithm# cd ..
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/test/22/custom# cd ..
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/test/22# umount custom
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/test/22# mount -o loop custom.img custom
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/test/22# cd custom
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/test/22/custom# cd algorithm/algorithm/
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/test/22/custom/algorithm/algorithm# ls
xxxx_algorithm_ver.txt cascade-data6-22.xml models svr_roll_model_C0.80_Nu0.10.xml
bsd_mask.png cigarette shape_predictor_68_face_landmarks.dat svr_yaw_model_C0.80_Nu0.05.xml
call dlib_face_recognition_resnet_model_v1.dat svr_pitch_model_C0.30_Nu0.50.xml
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/test/22/custom/algorithm/algorithm# cd ../../../..
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/test# cd 22
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/test/22# umount custom
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/test/22# file custom.img
custom.img: setuid, setgid, sticky Linux rev 1.0 ext4 filesystem data, UUID=6965ff82-0cc4-4ab8-bee1-0893efb43af6 (extents) (64bit) (large files) (huge files)
root@xxxx-desktop:/mnt/data/xxxx/Workfolder/carl/aili/d/d-3/test/22#
#!/system/bin/sh
echo -e "\nINFO: xxxx app test custom ...\n"
chmod 7777 -R /custom
chmod 7777 -R /custom/algorithm
chmod 7777 -R /sys/kernel/xxxx_sata
chown system:system -R /custom/
sleep 10
if [ ! -f /data/app/did ]; then
chmod 777 /data/app/
cp -rf /system/pre_install/* /data/app/
echo 1 > /data/app/did
chmod -R 777 /data/app/*
fi
chown system:system -R /custom/
注意:
system:system :系统app能读能写能删除,
media_rw:media_rw 系统app有问题
所以同样的目录,同样的SEAndroid权限,不同的用户组,影响很大
分区必须走 QFIL 的流程,否则,可能启动不了,或者启动了出一些奇怪的问题