看看OpenHarmony编译出的镜像中都有啥

Posted landaliming

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了看看OpenHarmony编译出的镜像中都有啥相关的知识,希望对你有一定的参考价值。

1. 编译生成的镜像

OpenHarmony 编译生成的东西都存放在 out/ohos-arm-release/packages/phone/images/ 目录,看一下里面都有啥

lim@TIM:~/OpenHarmony/code-2.0-canary$ ls -hl out/ohos-arm-release/packages/phone/images/
total 262M
-rwxr-xr-x  2 lim lim 1.3K Jun  2 03:21 Hi3516DV300-emmc.xml
drwxr-xr-x  2 lim lim 4.0K Jun  6 16:59 data
drwxr-xr-x 18 lim lim 4.0K Jun  6 16:59 root
drwxr-xr-x 12 lim lim 4.0K Jun  6 16:59 system
-rw-r--r--  1 lim lim 243M Jun  6 16:59 system.img
-rwxr-xr-x  2 lim lim 235K Jun  2 03:21 u-boot-hi3516dv300_emmc.bin
-rw-r--r--  1 lim lim 4.6M Jun  6 16:20 uImage
drwxr-xr-x  9 lim lim 4.0K Jun  6 16:59 updater
-rw-r--r--  1 lim lim 9.2M Jun  6 16:59 updater.img
-rw-r--r--  1 lim lim 793K Jun  6 16:59 userdata.img
drwxr-xr-x  8 lim lim 4.0K Jun  2 03:22 vendor
-rw-r--r--  1 lim lim 4.1M Jun  6 16:59 vendor.img

2. 镜像在flash上的分布

这里有一个Hi3516DV300-emmc.xml文件,猜测应该是刷机工具用来解析获得镜像文件应该刷到什么地方的。我们看下里面是啥:

cat out/ohos-arm-release/packages/phone/images/Hi3516DV300-emmc.xml
<?xml version="1.0" encoding="GB2312" ?>
<Partition_Info>
<Part Sel="1" PartitionName="fastboot" FlashType="emmc" FileSystem="none" Start="0" Length="1M" SelectFile="Y:\\Disk\\code\\Camera\\out\\target\\product\\Hi3559A\\u-boot-hi3516dv300_emmc.bin"/>
<Part Sel="1" PartitionName="boot" FlashType="emmc" FileSystem="none" Start="1M" Length="15M" SelectFile="Y:\\Disk\\code\\Camera\\out\\target\\product\\Hi3559A\\uImage"/>
<Part Sel="1" PartitionName="updater" FlashType="emmc" FileSystem="ext3/4" Start="16M" Length="20M" SelectFile="Y:\\Disk\\code\\Camera\\out\\target\\product\\Hi3559A\\updater.img"/>
<Part Sel="1" PartitionName="misc" FlashType="emmc" FileSystem="none" Start="36M" Length="1M" SelectFile=""/>
<Part Sel="1" PartitionName="system" FlashType="emmc" FileSystem="ext3/4" Start="37M" Length="3307M" SelectFile="Y:\\Disk\\code\\Camera\\out\\target\\product\\Hi3559A\\system.img"/>
<Part Sel="1" PartitionName="vendor" FlashType="emmc" FileSystem="ext3/4" Start="3344M" Length="256M" SelectFile="Y:\\Disk\\code\\Camera\\out\\target\\product\\Hi3559A\\vendor.img"/>
<Part Sel="1" PartitionName="userdata" FlashType="emmc" FileSystem="ext3/4" Start="3600M" Length="1464M" SelectFile="Y:\\Disk\\code\\Camera\\out\\target\\product\\Hi3559A\\userdata.img"/>
</Partition_Info>

熟悉linux或者android的人应该明白镜像在flash上是怎么分布的

起始地址长度镜像作用
01Mu-boot-hi3516dv300_emmc.binuboot
1M15MuImagelinux 内核
16M20Mupdater.img
36M1M
37M3307Msystem.img文件系统
3344M256Mvendor.img文件系统
3600M1464Muserdata.img用户数据

看到这里,熟悉linux的人可能要说了,这不就是标准的linux么,uboot引导linux内核,内核启动后挂载根文件系统;熟悉Android的人可能忍不住了,什么?system.img、vendor.img、userdata.img这部就是Android么?但是我呢,是什么都不会说的,一来本人才疏学浅,二来这本来就是个公说公有理婆说婆有理的事情,比如煮方便面算不算做饭呢?电动自行车算不算自行车呢?争下去没完没了。

3. 分析根文件系统

  1. 首先我们看下 root 根目录:
lim@TIM:~/OpenHarmony/code-2.0-canary/out/ohos-arm-release/packages/phone/images$ ls -hl root/
total 124K
drwxr-xr-x 2 lim lim 4.0K Jun  6 16:59 acct
drwxr-xr-x 2 lim lim 4.0K Jun  6 16:59 apex
lrwxrwxrwx 1 lim lim   11 Jun  2 03:22 bin -> /system/bin
lrwxrwxrwx 1 lim lim   50 Jun  2 03:22 bugreports -> /data/user_de/0/com.android.shell/files/bugreports
drwxr-xr-x 2 lim lim 4.0K Jun  6 16:59 cache
lrwxrwxrwx 1 lim lim   19 Jun  2 03:22 charger -> /system/bin/charger
drwxr-xr-x 2 lim lim 4.0K Jun  6 16:59 config
lrwxrwxrwx 1 lim lim   17 Jun  2 03:22 d -> /sys/kernel/debug
drwxr-xr-x 2 lim lim 4.0K Jun  6 16:59 data
drwxr-xr-x 2 lim lim 4.0K Jun  6 16:59 debug_ramdisk
lrwxrwxrwx 1 lim lim   23 Jun  2 03:22 default.prop -> system/etc/prop.default
drwxr-xr-x 2 lim lim 4.0K Jun  6 16:59 dev
lrwxrwxrwx 1 lim lim   11 Jun  2 03:22 etc -> /system/etc
lrwxrwxrwx 1 lim lim   16 Jun  2 03:22 init -> /system/bin/init
-rw-r--r-- 1 lim lim  987 Jun  2 03:22 init.environ.rc
-rw-r--r-- 1 lim lim  33K Jun  2 03:22 init.rc
-rw-r--r-- 1 lim lim 7.6K Jun  2 03:22 init.usb.configfs.rc
-rw-r--r-- 1 lim lim 5.5K Jun  2 03:22 init.usb.rc
drwxr-xr-x 2 lim lim 4.0K Jun  6 16:59 mnt
drwxr-xr-x 2 lim lim 4.0K Jun  2 03:22 odm
drwxr-xr-x 2 lim lim 4.0K Jun  6 16:59 oem
drwxr-xr-x 2 lim lim 4.0K Jun  6 16:59 proc
lrwxrwxrwx 1 lim lim   15 Jun  2 03:22 product -> /system/product
lrwxrwxrwx 1 lim lim   24 Jun  2 03:22 product_services -> /system/product_services
drwxr-xr-x 2 lim lim 4.0K Jun  6 16:59 sbin
lrwxrwxrwx 1 lim lim   21 Jun  2 03:22 sdcard -> /storage/self/primary
drwxr-xr-x 2 lim lim 4.0K Jun  6 16:59 storage
drwxr-xr-x 2 lim lim 4.0K Jun  6 16:59 sys
drwxr-xr-x 2 lim lim 4.0K Jun  6 16:59 system
-rw-r--r-- 1 lim lim 2.6K Jun  2 03:22 ueventd.rc
drwxr-xr-x 2 lim lim 4.0K Jun  6 16:59 vendor

果然不出意外,和Android一样的软链接,真正的根文件系统是system:

bin -> /system/bin
etc -> /system/etc
init -> /system/bin/init

etc -> /system/etc
sdcard -> /storage/self/primary
  1. 那么我们再看下system下都有什么文件:
lim@TIM:~/OpenHarmony/code-2.0-canary/out/ohos-arm-release/packages/phone/images$ ls -hl system
total 72K
drwxr-xr-x  3 lim lim 4.0K Jun  2 03:22 apex
drwxr-xr-x  2 lim lim 4.0K Jun  6 16:59 app
drwxr-xr-x  3 lim lim  12K Jun  6 16:59 bin
-rw-r--r--  1 lim lim 3.1K Jun  6 16:59 build.prop
-rw-r--r--  1 lim lim   20 Jun  6 16:59 buildz.prop
drwxr-xr-x 11 lim lim 4.0K Jun  6 16:59 etc
drwxr-xr-x  2 lim lim 4.0K Jun  6 16:59 fonts
drwxr-xr-x  4 lim lim  20K Jun  6 16:59 lib
drwxr-xr-x  3 lim lim 4.0K Jun  2 03:22 product
drwxr-xr-x  2 lim lim 4.0K Jun  6 16:59 profile
drwxr-xr-x  3 lim lim 4.0K Jun  6 16:59 usr
lrwxrwxrwx  1 lim lim    7 Jun  2 03:22 vendor -> /vendor
drwxr-xr-x  2 lim lim 4.0K Jun  2 03:22 xbin

熟悉linux的人说,这里除了apex和vendor两个文件夹,其他的标准的linux根文件系统啊,熟悉Android的人又坐不住了,apex和vendor那是我的!!!
好吧,安卓你坐下,谁还不是个类Unix系统,还不是个Linux发行版。

4. 进system目录下看一看

  1. apex 目录
lim@TIM:~/OpenHarmony/code-2.0-canary/out/ohos-arm-release/packages/phone/images/system$ ls -hl apex/com.android.runtime-hos.debug/
total 20K
-rw-r--r-- 1 lim lim  148 Jun  2 03:22 apex_manifest.json
-rw-r--r-- 1 lim lim 1.1K Jun  2 03:22 apex_pubkey
drwxr-xr-x 2 lim lim 4.0K Jun  2 03:22 bin
drwxr-xr-x 2 lim lim 4.0K Jun  2 03:22 etc
drwxr-xr-x 3 lim lim 4.0K Jun  2 03:22 lib

这里放的是安卓运行时,看后缀加了hos,应该是OpenHarmony改了这里,二进制也看不出改了啥,咱们继续看后面的

lim@TIM:~/OpenHarmony/code-2.0-canary/out/ohos-arm-release/packages/phone/images/system$ cat apex/com.android.runtime-hos.debug/apex_manifest.json

  "name": "com.android.runtime",
  "version": 1,
  "preInstallHook": "bin/art_preinstall_hook",
  "postInstallHook": "bin/art_postinstall_hook"

  1. app 目录
lim@TIM:~/OpenHarmony/code-2.0-canary/out/ohos-arm-release/packages/phone/images/system$ ls -hl app
total 14M
-rwxr-xr-x 1 lim lim 145K Jun  6 16:59 Airquality_Demo.hap
-rwxr-xr-x 1 lim lim  77K Jun  6 16:59 Calc_Demo.hap                ## 电话
-rwxr-xr-x 1 lim lim 153K Jun  6 16:59 Clock_Demo.hap               ## 时钟
-rwxr-xr-x 1 lim lim 191K Jun  6 16:59 Ecg_Demo.hap
-rwxr-xr-x 1 lim lim  99K Jun  6 16:59 Flashlight_Demo.hap
-rwxr-xr-x 1 lim lim 3.1M Jun  6 16:59 Gallery_Demo.hap             ## 相册
-rwxr-xr-x 1 lim lim 1.8M Jun  6 16:59 Launcher.hap                 ## 桌面
-rwxr-xr-x 1 lim lim 295K Jun  6 16:59 Launcher_Recents.hap
-rwxr-xr-x 1 lim lim 350K Jun  6 16:59 Settings.hap                 ## 设置
-rwxr-xr-x 1 lim lim 7.2M Jun  6 16:59 Shopping_Demo.hap            ## 商店
-rwxr-xr-x 1 lim lim  33K Jun  6 16:59 SystemUI-NavigationBar.hap   ## 导航栏
-rwxr-xr-x 1 lim lim  34K Jun  6 16:59 SystemUI-StatusBar.hap       ## 状态栏

这里放的是预置的应用,比较少,Android预置的是apk后缀的,OpenHarmony预置的是hap后缀的
再看下hap后缀的是什么东西:

lim@TIM:~/OpenHarmony/code-2.0-canary/out/ohos-arm-release/packages/phone/images/system$ file app/Launcher.hap 
app/Launcher.hap: Java archive data (JAR)

哦,是java包,file命令直接能识别,看来确实只是改了下后缀, 那么我们打开看下里面都有啥:

lim@TIM:~/OpenHarmony/code-2.0-canary/out/ohos-arm-release/packages/phone/images/system/app$ jar vtf Launcher.hap
 15106 Thu Jan 01 00:00:00 CST 2009 assets/js/default/app.js
  5979 Thu Jan 01 00:00:00 CST 2009 assets/js/default/common/pics/icon_default.png
1694253 Thu Jan 01 00:00:00 CST 2009 assets/js/default/common/pics/img_wallpaper_default.jpg
     0 Thu Jan 01 00:00:00 CST 2009 assets/js/default/compile_success.txt
   477 Thu Jan 01 00:00:00 CST 2009 assets/js/default/i18n/en-US.json
   439 Thu Jan 01 00:00:00 CST 2009 assets/js/default/i18n/zh-CN.json
   339 Thu Jan 01 00:00:00 CST 2009 assets/js/default/manifest.json
 22750 Thu Jan 01 00:00:00 CST 2009 assets/js/default/pages/AppGridView/AppGridView.js
 20653 Thu Jan 01 00:00:00 CST 2009 assets/js/default/pages/AppListView/AppListView.js
  5581 Thu Jan 01 00:00:00 CST 2009 assets/js/default/pages/EntryView/EntryView.js
 11819 Thu Jan 01 00:00:00 CST 2009 assets/js/default/pages/SettingsView/SettingsView.js
   425 Thu Jan 01 00:00:00 CST 2009 assets/launcher/resources.index
     1 Thu Jan 01 00:00:00 CST 2009 assets/launcher/resources/base/media/attributes.key
     1 Thu Jan 01 00:00:00 CST 2009 assets/launcher/resources/base/media/constants.key
     1 Thu Jan 01 00:00:00 CST 2009 assets/launcher/resources/base/media/contents.key
  6320 Thu Jan 01 00:00:00 CST 2009 assets/launcher/resources/base/media/icon.png
  5448 Thu Jan 01 00:00:00 CST 2009 assets/launcher/resources/base/media/icon_small.png
     1 Thu Jan 01 00:00:00 CST 2009 assets/launcher/resources/base/media/nodes.key
  1040 Thu Jan 01 00:00:00 CST 2009 config.json
  1136 Thu Jan 01 00:00:00 CST 2009 pack.info
  1. bin 目录
    大家知道linux下bin一般是busybox,Android下是toybox,那么OpenHarmony是什么呢?对,没错,还是toybox;
lim@TIM:~/OpenHarmony/code-2.0-canary/out/ohos-arm-release/packages/phone/images/system$ ls -hl bin/
total 9.8M
-rwxr-xr-x 1 lim lim 112K Jun  6 16:59 LayerManagerControl
-rwxr-xr-x 1 lim lim  31K Jun  6 16:59 aa
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 acpi -> toybox
-rwxr-xr-x 1 lim lim 310K Jun  2 03:22 apexd
-rwxr-xr-x 1 lim lim 9.5K Jun  6 16:59 appexec
-rwxr-xr-x 1 lim lim 9.4K Jun  6 16:59 appspawn
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 base64 -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 basename -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 bc -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 blockdev -> toybox
-rwxr-xr-x 1 lim lim  48K Jun  6 16:59 bm
-rwxr-xr-x 1 lim lim  46K Jun  6 16:59 bootanimation
-rwxr-xr-x 1 lim lim  92K Jun  2 03:22 bootstat
drwxr-xr-x 2 lim lim 4.0K Jun  2 03:22 bootstrap
lrwxrwxrwx 1 lim lim    5 Jun  2 03:22 bunzip2 -> bzip2
-rwxr-xr-x 1 lim lim 112K Jun  6 16:59 bytrace
lrwxrwxrwx 1 lim lim    5 Jun  2 03:22 bzcat -> bzip2
-rwxr-xr-x 1 lim lim  41K Jun  2 03:22 bzip2
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 cal -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 cat -> toybox
-rwxr-xr-x 1 lim lim  35K Jun  6 16:59 cem
-rwxr-xr-x 1 lim lim 263K Jun  2 03:22 charger
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 chcon -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 chgrp -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 chmod -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 chown -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 chroot -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 chrt -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 cksum -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 clear -> toybox
-rwxr-xr-x 1 lim lim  35K Jun  2 03:22 cmd
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 cmp -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 comm -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 cp -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 cpio -> toybox
-rwxr-xr-x 1 lim lim 105K Jun  2 03:22 crash_dump32
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 cut -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 date -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 dd -> toybox
-rwxr-xr-x 1 lim lim  12K Jun  2 03:22 debuggerd
-rwxr-xr-x 1 lim lim 327K Jun  6 16:59 deviceauth_service
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 devmem -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 df -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 diff -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 dirname -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 dmesg -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 dos2unix -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 du -> toybox
-rwxr-xr-x 1 lim lim  41K Jun  2 03:22 dumpsys
-rwxr-xr-x 1 lim lim 119K Jun  2 03:22 e2fsdroid
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 echo -> toybox
lrwxrwxrwx 1 lim lim    4 Jun  2 03:22 egrep -> grep
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 env -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 expand -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 expr -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 fallocate -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 false -> toybox
-rwxr-xr-x 1 lim lim 9.6K Jun  6 16:59 faultloggerd
lrwxrwxrwx 1 lim lim    4 Jun  2 03:22 fgrep -> grep
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 file -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 find -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 flock -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 fmt -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 free -> toybox
-rwxr-xr-x 1 lim lim 1.1K Jun  2 03:22 fsverity_init
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 fsync -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 getconf -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 getenforce -> toybox
lrwxrwxrwx 1 lim lim    7 Jun  2 03:22 getevent -> toolbox
lrwxrwxrwx 1 lim lim    7 Jun  2 03:22 getprop -> toolbox
-rwxr-xr-x 1 lim lim  28K Jun  2 03:22 grep
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 groups -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 gunzip -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 gzip -> toybox
-rwxr-xr-x 1 lim lim 1.2M Jun  6 16:59 hdcd
-rwxr-xr-x 1 lim lim 9.5K Jun  6 16:59 hdf_devhost
-rwxr-xr-x 1 lim lim  30K Jun  6 16:59 hdf_devmgr
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 head -> toybox
-rwxr-xr-x 1 lim lim  67K Jun  6 16:59 hilog
-rwxr-xr-x 1 lim lim  92K Jun  6 16:59 hilogd
-rwxr-xr-x 1 lim lim 124K Jun  6 16:59 hiview
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 hostname -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 hwclock -> toybox
-rwxr-xr-x 1 lim lim  75K Jun  2 03:22 hwservicemanager
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 i2cdetect -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 i2cdump -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 i2cget -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 i2cset -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 iconv -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 id -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 ifconfig -> toybox
-rwxr-xr-x 1 lim lim 522K Jun  2 03:22 init
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 inotifyd -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 insmod -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 install -> toybox
-rwxr-xr-x 1 lim lim 169K Jun  6 16:59 installs
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 ionice -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 iorenice -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 kill -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 killall -> toybox
-rwxr-xr-x 1 lim lim  14K Jun  6 16:59 layer-add-surfaces
lrwxrwxrwx 1 lim lim   36 Jun  2 03:22 linker -> /apex/com.android.runtime/bin/linker
lrwxrwxrwx 1 lim lim   36 Jun  2 03:22 linker_asan -> /apex/com.android.runtime/bin/linker
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 ln -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 load_policy -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 log -> toybox
-rwxr-xr-x 1 lim lim  80K Jun  2 03:22 logcat
-rwxr-xr-x 1 lim lim 157K Jun  2 03:22 logd
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 logname -> toybox
-rwxr-xr-x 1 lim lim  16K Jun  2 03:22 logwrapper
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 losetup -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 ls -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 lsmod -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 lsof -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 lspci -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 lsusb -> toybox
-rwxr-xr-x 1 lim lim  45K Jun  2 03:22 make_f2fs
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 md5sum -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 microcom -> toybox
-rwxr-xr-x 1 lim lim  38K Jun  2 03:22 mini-keyctl
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 mkdir -> toybox
-rwxr-xr-x 1 lim lim  66K Jun  2 03:22 mke2fs
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 mkfifo -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 mkfs.ext2 -> mke2fs
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 mkfs.ext3 -> mke2fs
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 mkfs.ext4 -> mke2fs
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 mknod -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 mkswap -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 mktemp -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 modinfo -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 modprobe -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 more -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 mount -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 mountpoint -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 mv -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 nc -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 netcat -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 netstat -> toybox
-rwxr-xr-x 1 lim lim  25K Jun  2 03:22 newfs_msdos
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 nice -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 nl -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 nohup -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 nproc -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 nsenter -> toybox
lrwxrwxrwx 1 lim lim   37 Jun  2 03:22 oatdump -> /apex/com.android.runtime/bin/oatdump
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 od -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 paste -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 patch -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 pgrep -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 pidof -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 pkill -> toybox
lrwxrwxrwx 1 lim lim    6 Jun  2 03:22 pmap -> toybox
lrwxrwxrwx 看看OpenHarmony编译出的镜像中都有啥

OpenHarmony编译构建系统详解,从零搭建windows下开发环境,巨方便!

OpenHarmony编译构建系统详解,从零搭建windows下开发环境,巨方便!

从零开始DevEcoTool编译烧录OpenHarmony3.1

#打卡不停更#编译效率快三倍,使用WSL2编译OpenHarmony嘎嘎得劲!!

[openharmony]liteos-a系统编译之GN