msm 8953 制作算法分区的部分记录,太容易忘记了

./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 的流程,否则,可能启动不了,或者启动了出一些奇怪的问题

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值