linux 編譯system.img,android生成sysytem.img的命令過程

From

http://xianghuaclm.blog.163.com/blog/static/6668783201110221486240/

使用#file system.img

輸出:system.img: Linux rev 0.0 ext2 filesystem data,

UUID=4eb0489c-647d-49d8-9111-94657b5fd342, volume name

"system"。

然而本人使用命令#mkyaffs2image?system/?system.img,

再使用#file system.img,卻輸出:system.img: VMS Alpha executable

前一個system.img文件時可用的,而使用mkyaffs2image命令生成的system.img卻不能使用(將ramdisk.img,system.img,install.img等打包成iso文件,用virtualbox運行)。

誰 清楚android編譯系統是用什么命令生成system.img的?本人使用#make

systemimage命令,只顯示出如下信息:?Install system fs image:

out/target/product/eeepc/system.img

out/host/linux-x86/bin/acp -fpt

out/target/product/eeepc/obj/PACKAGING?/systemimage_unopt_intermediates/system.img

out/target/product/eeepc/system.img

true

沒能查到是哪個腳本生成的system.img

根據這個網址http://blog.csdn.net/liaoshengji

... /03/04/3957749.aspx,

1.執行#make showcommands snod

2.得出android制作system.img命令為:

#!/bin/bash

export PATH="/home/tony/tmp/e2fsprogs-1.41.3/prefix/sbin:$PATH"

num_blocks=`du -sk out/target/product/eeepc/system | tail -n1 |

awk '{print $1;}'`

if [ $num_blocks -lt 20480 ]; then

extra_blocks=3072;

else

extra_blocks=20480;

fi

num_blocks=`expr $num_blocks + $extra_blocks`

num_inodes=`find out/target/product/eeepc/system | wc -l`

num_inodes=`expr $num_inodes + 500`

out/host/linux-x86/bin/genext2fs -a -d

out/target/product/eeepc/system -b $num_blocks -N $num_inodes -m 0

out/target/product/eeepc/system.img

tune2fs -L system out/target/product/eeepc/system.img

tune2fs -C 1 out/target/product/eeepc/system.img

e2fsck -fy out/target/product/eeepc/system.img

一.android2.3系統的generic文件系統生成命令:

out/host/linux-x86/bin/mkyaffs2image -f?out/target/product/generic/system out/target/product/generic/obj/PACKAGING/systemimage_intermediates/system.img

chmod a+r

out/target/product/generic/obj/PACKAGING/systemimage_intermediates/system.img

Install system fs image:

out/target/product/generic/system.img

out/host/linux-x86/bin/acp -fpt

out/target/product/generic/obj/PACKAGING/systemimage_intermediates/system.img

out/target/product/generic/system.img

true

out/host/linux-x86/bin/mkbootfs

out/target/product/generic/root | out/host/linux-x86/bin/minigzip

> out/target/product/generic/ramdisk.img

out/host/linux-x86/bin/mkyaffs2image -f?out/target/product/generic/data

out/target/product/generic/userdata.img

chmod a+r

out/target/product/generic/userdata.imgtrue

二.android2.2系統的MID文件系統生成命令:

file out/target/product/mid/system.img

out/target/product/mid/system.img: u-boot legacy uImage, Android,

Linux/ARM, Filesystem Image (any type) (Not compressed), 143233024

bytes, Tue Nov 22 10:48:07 2011, Load Address: 0x40008000, Entry

Point: 0x40008000, Header CRC: 0x6D462E1C, Data CRC: 0xE1876EFF

file sys.img

sys.img: Linux rev 1.0 ext3 filesystem data,

UUID=2c363e3e-f731-4800-9553-a0613a1264eb, volume name "system

dd if=system.img of=sys.img bs=64 skip=1

sudo mount -t ext3 -o loop sys.img mnt

修改

sudo umount mnt

./rcmkimage sys.img system.img(./mkimage -A arm -O linux -C none

-T filesystem -a 1 -e 1 -n "system.img" -d $1 $2)

make showcommands

Target system fs image:

out/target/product/mid/obj/PACKAGING/systemimage_unopt_intermediates/system.img

Target system fs image: ext2image

out/target/product/mid/system/framework

if [ -f

out/target/product/mid/system/framework/framework-res-TG.apk ];

then mv

out/target/product/mid/system/framework/framework-res-TG.apk

out/target/product/mid/system/framework/framework-res.apk; fi

num_blocks=`du -sk out/target/product/mid/system | tail -n1 | awk

'{print $1;}'`; if [ $num_blocks -lt 20480 ]; then

extra_blocks=3072; else extra_blocks=20480; fi ; num_blocks=`expr

$num_blocks + $extra_blocks` ; num_inodes=`find

out/target/product/mid/system | wc -l` ; num_inodes=`expr

$num_inodes + 500`;

out/host/linux-x86/bin/genext2fs -a

-d out/target/product/mid/system -b $num_blocks -N $num_inodes -m 0

out/target/product/mid/obj/PACKAGING/systemimage_unopt_intermediates/system.img

tune2fs -L system

out/target/product/mid/obj/PACKAGING/systemimage_unopt_intermediates/system.img

tune2fs 1.41.14 (22-Dec-2010)

tune2fs -C 1

out/target/product/mid/obj/PACKAGING/systemimage_unopt_intermediates/system.img

tune2fs 1.41.14 (22-Dec-2010)

Setting current mount count to 1

e2fsck -fy

out/target/product/mid/obj/PACKAGING/systemimage_unopt_intermediates/system.img

; [ $? -lt 4 ]e2fsck 1.41.14

(22-Dec-2010)

文件系統 did not have a UUID; generating one.

第一步: 檢查inode,塊,和大小

第二步: 檢查目錄結構

第3步: 檢查目錄連接性

/lost+found未找到.創建? 是

Pass 4: Checking reference counts

第5步: 檢查簇概要信息

system: ***** 文件系統已修改 *****

system: 648/1152 files (1.7% non-contiguous), 119292/139876

blocks

Install system fs image: out/target/product/mid/system.img

out/host/linux-x86/bin/acp -fpt

out/target/product/mid/obj/PACKAGING/systemimage_unopt_intermediates/system.img

out/target/product/mid/system.img

true

Generate system.img for iNAND

mv out/target/product/mid/system.img

out/target/product/mid/system.img.ext3

tune2fs -j

out/target/product/mid/system.img.ext3

tune2fs 1.41.14 (22-Dec-2010)

Creating journal inode: 完成

This filesystem will be automatically checked every 20 mounts

or

0 days, whichever comes first.?Use tune2fs -c or

-i to override.

out/host/linux-x86/bin/mkimage -A arm

-O linux -T filesystem -C

none?\

-a 40008000 -n "Android" -d out/target/product/mid/system.img.ext3

out/target/product/mid/system.imgImage

Name:?Android

Created:?Tue Nov 22 11:05:21 2011

Image Type:?ARM Linux

Filesystem Image (uncompressed)

Data Size:?143233024 Bytes = 139876.00 kB = 136.60 MB

Load Address: 40008000

Entry Point:?40008000

gzip -9

out/target/product/mid/system.img.ext3

out/host/linux-x86/bin/mkimage -A arm

-O linux -T filesystem -C

none?\

-a 40008000 -n "zAndroid" -d

out/target/product/mid/system.img.ext3.gz

out/target/product/mid/zSYS.img

Image Name:?zAndroid

Created:?Tue Nov 22 11:05:34 2011

Image Type:?ARM Linux

Filesystem Image (uncompressed)

Data Size:?80767125 Bytes = 78874.15 kB = 77.03 MB

Load Address: 40008000

Entry Point:?40008000

rm -f out/target/product/mid/system.img.ext3.gz

out/host/linux-x86/bin/mkbootfs out/target/product/mid/root |

out/host/linux-x86/bin/minigzip >

out/target/product/mid/ramdisk.img

mv out/target/product/mid/ramdisk.img

out/target/product/mid/ramdisk.img.ori

out/host/linux-x86/bin/mkimage -A arm -O linux -T ramdisk \

-C none -a 0x41000000 -n "hRamdisk" -d

out/target/product/mid/ramdisk.img.ori

out/target/product/mid/ramdisk.img

Image Name:?hRamdisk

Created:?Tue Nov 22 11:05:35 2011

Image Type:?ARM Linux RAMDisk

Image (uncompressed)

Data Size:?170001 Bytes = 166.02 kB = 0.16 MB

Load Address: 41000000

Entry Point:?41000000

Installed file list:

out/target/product/mid/installed-files.txt

build/tools/fileslist.py out/target/product/mid/system

out/target/product/mid/data >

out/target/product/mid/installed-files.txt

三.相關命令使用說明:

genext2fs:

out/host/linux-x86/bin/genext2fs --help

Usage: out/host/linux-x86/bin/genext2fs [options] image

Create an ext2 filesystem image from directories/files

-x, --starting-image

-d, --root

-D, --devtable

-b, --size-in-blocks

-i, --bytes-per-inode

-N, --number-of-inodes

-m, --reserved-percentage

-g, --block-map

Generate a block map file for this path.

-e, --fill-value

Fill unallocated blocks with

value.

-z,

--allow-holes?Allow files with holes.

-f,

--faketime?Set filesystem timestamps to 0 (for testing).

-q,

--squash?Same as "-U -P".

-U,

--squash-uids?Squash owners making all files be owned by root.

-P,

--squash-perms?Squash permissions on all files.

-a,

--fix-android-stats?Fix-up file stats (user, perms, ...)

-h, --help

-V, --version

-v, --verbose

tune2fs :

tune2fs

tune2fs 1.41.14 (22-Dec-2010)

Usage: tune2fs [-c max_mounts_count] [-e errors_behavior] [-g

group]

[-i interval[d|m|w]] [-j] [-J journal_options] [-l]

[-m reserved_blocks_percent] [-o [^]mount_options[,...]]

[-r reserved_blocks_count] [-u user] [-C mount_count] [-L

volume_label]

[-M last_mounted_dir] [-O [^]feature[,...]]

[-E extended-option[,...]] [-T last_check_time] [-U UUID]

[ -I new_inode_size ] device

一.簡介:

調整/查看ext2/ext3文件系統的文件系統參數,Windows下面如果出現意外斷電死機情況,下次開機一般都會出現系統自檢。Linux系統下面也有文件系統自檢,而且是可以通過tune2fs命令,自行定義自檢周期及方式。

二.用法:

tune2fs [ -l ] [ -c max-mount-counts ] [ -e errors-behavior ] [

-f ] [ -i interval-between-checks ] [ -j ] [ -J journal-options ] [

-m

reserved-blocks-percentage ] [ -o [^]mount-options[,...] ] [ -r

reserved-blocks-count ] [ -s sparse-super-flag ] [ -u user ] [

-g

group ] [ -C mount-count ] [ -L volume-name ] [ -M

last-mounted-directory ] [ -O [^]feature[,...] ] [ -T

time-last-checked ] [ -U

UUID ] device

常用選項說明:

-l 查看文件系統信息

-c max-mount-counts 設置強制自檢的掛載次數,如果開啟,每掛載一次mount

conut就會加1,超過次數就會強制自檢

-i interval-between-checks[d|m|w] 設置強制自檢的時間間隔[d天m月w周]

-m reserved-blocks-percentage 保留塊的百分比

-j 將ext2文件系統轉換為ext3類型的文件系統

-L volume-label 類似e2label的功能,可以修改文件系統的標簽

-r reserved-blocks-count 調整系統保留空間

-o [^]mount-option[,...] Set or clear the indicated default mount

options in the filesystem. 設置或清除默認掛載的文件系統選項

三.示例:

tune2fs -c 30 /dev/hda1 設置強制檢查前文件系統可以掛載的次數

tune2fs -c -l /dev/hda1 關閉強制檢查掛載次數限制。

tune2fs -i 10 /dev/hda1 10天后檢查

tune2fs -i 1d /dev/hda1 1天后檢查

tune2fs -i 3w /dev/hda1 3周后檢查

tune2fs -i 6m /dev/hda1 半年后檢查

tune2fs -i 0 /dev/hda1 禁用時間檢查

tune2fs -j /dev/hda1 添加日志功能,將ext2轉換成ext3文件系統

tune2fs -r 40000 /dev/hda1 調整/dev/hda1分區的保留空間為40000個磁盤塊

tune2fs -o acl,user_xattr /dev/hda1 設置/dev/hda1掛載選項,啟用Posix

Access Control Lists和用戶指定的擴展屬性

e2fsck :

e2fsck

Usage: e2fsck [-panyrcdfvtDFV] [-b superblock] [-B blocksize]

[-I inode_buffer_blocks] [-P process_inode_size]

[-l|-L bad_blocks_file] [-C fd] [-j external_journal]

[-E extended-options] device

Emergency help:

-p?Automatic repair (no questions)

-n?Make no changes to the filesystem

-y?Assume "yes" to all questions

-c?Check for bad blocks and add them to the badblock list

-f?Force checking even if filesystem is marked clean

-v?Be verbose

-b

superblock?Use alternative superblock

-B

blocksize?Force blocksize when looking for superblock

-j external_journal?Set

location of the external journal

-l

bad_blocks_file?Add to

badblocks list

-L

bad_blocks_file?Set badblocks

list

e2fsck(ext2

file system

check)

功能說明:檢查ext2文件系統的正確性。

語法:e2fsck [-acCdfFnprsStvVy][-b

<

href="http://www.linuxso.com/command/su.html">superblock>][-B

][-l ][-L ][設備名稱]

補充說明:e2fsck執行后的傳回值及代表意義如下。

0?沒有任何錯誤發生。

1?文件系統發生錯誤,并且已經修正。

2?文件系統發生錯誤,并且已經修正。

4?文件系統發生錯誤,但沒有修正。

8?運作時發生錯誤。

16?使用的語法發生錯誤。

128?共享的函數庫發生錯誤。

參數:

-a?不詢問使用者意見,便自動修復文件系統。

-b?指定superblock,而不使用預設的superblock。

-B?指定區塊的大小,單位為字節。

-c?一并執行badblocks,以標示損壞的區塊。

-C?將檢查過程的信息完整記錄在file

descriptor中,使得整個檢查過程都能完整監控。

-d?顯示排錯信息。

-f?即使文件系統沒有錯誤跡象,仍強制地檢查正確性。

-F?執行前先清除設備的緩沖區。

-l?將文件中指定的區塊加到損壞區塊列表。

-L?先清除損壞區塊列表,再將文件中指定的區塊加到損壞區塊列表。因此損壞區塊列表的區塊跟文件中指定的區塊是一樣的。

-n?以只讀模式開啟文件系統,并采取非互動方式執行,所有的問題對話均設置以"no"回答。

-p?不詢問使用者意見,便自動修復文件系統。

-r?此參數只為了兼容性而存在,并無實際作用。

-s?如果文件系統的字節順序不適當,就交換字節順序,否則不做任何動作。

-S?不管文件系統的字節順序,一律交換字節順序。

-t?顯示時間信息。

-v?執行時顯示詳細的信息。

-V?顯示版本信息。

-y?采取非互動方式執行,所有的問題均設置以"yes"回答。

acp :

out/host/linux-x86/bin/acp -?

out/host/linux-x86/bin/acp: invalid option -- '?'

Unexpected arg -?

Usage: acp [OPTION]... SOURCE DEST

or:?acp [OPTION]... SOURCE...

DIRECTORY

Options:

-d?never follow (dereference)

symbolic links

-e?if source file doesn't

exist, try adding '.exe' [Win32 only]

-f?use force, removing

existing file if it's not writeable

-p?preserve mode,

ownership

-r?recursive copy

-t?preserve timestamps

-u?update only: don't copy if

dest is newer

-v?verbose output (-vv is more

verbose)

mkimage --help

Usage: mkimage -l image

-l ==> list image header information

mkimage [-x] -A arch -O os -T type -C comp -a addr -e ep -n name -d

data_file[:data_file...] image

-A ==> set architecture to 'arch'

-O ==> set operating system to 'os'

-T ==> set image type to 'type'

-C ==> set compression type 'comp'

-a ==> set load address to 'addr' (hex)

-e ==> set entry point to 'ep' (hex)

-n ==> set image name to 'name'

-d ==> use image data from 'datafile'

-x ==> set XIP (execute in place)

mkimage [-D dtc_options] -f fit-image.its fit-image

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/538248.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/538248.shtml
英文地址,請注明出處:http://en.pswp.cn/news/538248.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Hive的hiveserver2后臺開啟和關閉

前提&#xff1a;hive/bin配置了環境變量。如果沒有配置&#xff0c;cd到 hive目錄下的bin里&#xff0c;再執行。 開啟命令&#xff1a; nohup hive --service hiveserver2 & 產生的日志&#xff1a; 默認在&#xff1a; 用戶文件夾里 [rootmaster ~]# ll total 80 …

記一次,jvm 內存溢出

1、什么是內存泄漏內存泄漏是指&#xff0c;有未被釋放的java對象&#xff0c;一直停留在內存中。GCRoot 無法追蹤到此對象&#xff0c;導致此對象無法被回收。 2、什么是內存溢出內存溢出是指&#xff0c;java程序創建對象需要內存&#xff0c;但是卻沒有內存可用了&#xff0…

ebnf范式_使用Scala基于詞法單元的解析器定制EBNF范式文法解析

前言近期在做Oracle遷移到Spark平臺的項目上遇到了一些平臺公式翻譯為SparkSQL(on Hive)的需求&#xff0c;而Spark采用親媽語言Scala進行開發。下面是個意外&#xff0c;被論文查重了,移步至我的Leanote博客查看點我&#xff0c;先亂碼一段時間[分后&#xff0c;擬使中的EB式&…

鉆石指標和完美的計算

鉆石的高度計算公式為&#xff1a;鉆石的高度直徑的三次方&#xff08;單位毫米&#xff09;0.00366(允許有0.03克拉的誤差)例如&#xff0c;0.5克拉的鉆石直徑是5.01毫米&#xff0c;則它的高為&#xff1a;5.01*5.01*5.01*0.003660.46說明0.5克拉的鉆石直徑只有0.46克拉鉆石的…

linux開機自動ZFS,linux – 為什么重新啟動導致我的ZFS鏡像的一面成為UNAVAIL?

我最近剛剛將批量數據存儲池(ZFS OnLinux 0.6.2,Debian Wheezy)從單設備vdev配置遷移到雙向鏡像vdev配置.之前的池配置是&#xff1a;NAME STATE READ WRITE CKSUMakita ONLINE 0 0 0ST4000NM0033-Z1Z1A0LQ ONLINE 0 0 0在重新啟動完成后一切都很好(我在重新啟動完成后啟動了一…

華為交換機默認vlan都是通的嗎_【思唯網絡學院】華為交換機常用的三種vlan劃分方法...

端口類型在學習劃分vlan前&#xff0c;必須要了解華為交換機的端口類型&#xff0c;以及他們的使用方法&#xff0c;因為端口的類型在實際配置中是必須會用到的&#xff0c;因為下面的vlan劃分會用到。1、Access類型端口執行命令port default vlan vlan-id&#xff0c;將端口加…

Spark應用日志級別設置

Spark-core包設置默認的日志級別為info&#xff0c;所以我們才看到一大堆日志信息。 開發的時候&#xff0c;把print的日志掩蓋了。 方法一&#xff1a; 代碼中設置日志級別 JavaSparkContext contextnew JavaSparkContext(conf); context.setLogLevel("warn"); 方…

linux 恢復操作系統,如何恢復Linux操作系統的GRUB引導程?

先使用一張修復盤進入grub&#xff0c;或者利用其他linux恢復盤等等進入linux系統&#xff0c;然后進入grub控制臺。總之就是想盡辦法進入一個控制臺就是了。然后準備引導進入硬盤上的Linux系統。如下&#xff1a;  grub> root (hd0,10)  grub> kernel /boot/vmlinuz…

Centos 7初始化腳本

今天跟大家分享一個我自己寫的Linux初始化腳本&#xff0c;自認為寫的不是很好。希望看到這篇文章的你&#xff0c;能暫時停留下你的腳步&#xff0c;給些修改意見&#xff0c;或者有什么需要補充的地方都可以提出來&#xff0c;大家共同進步&#xff0c;謝謝&#xff01;此腳本…

Hive-sql與SQL的區別

總體一致&#xff1a; Hive-sql與SQL基本上一樣&#xff0c;因為當初的設計目的&#xff0c;就是讓會SQL不會編程MapReduce的也能使用Hadoop進行處理數據。 因此&#xff0c;大膽使用SQL的&#xff0c;如果遇到不對的&#xff0c;再查。 區別&#xff1a; Hive沒有delete和u…

python閏年多一天_記一個 python datetime 閏年問題

python中datetime是比較常用的&#xff0c;平時用起來也沒什么問題&#xff0c;但是今天2020年2月29日服務器卻開始報錯了&#xff0c;這里有個平時難以注意的坑服務器上跑的是新浪網的爬蟲&#xff0c;抓取的頁面信息中帶有日期 XX月XX日&#xff0c;需要strfptime轉化一下&am…

linux find 按類型查找,Linux find查找find命令詳解

玩蛇網推薦圖文教程&#xff1a;python 列表Linux命令有很多&#xff0c;今天要介紹的是常用的基礎命令中的find命令。find是Linux系統管理員所喜愛用的必備工具命令之一&#xff0c;它的作用是可以很輕松地找到你想要的文件&#xff0c;一個命令就可以在眾多文件中找到你的目標…

window安裝gcc編譯器

在使用 GraphLab Create 時&#xff0c;導入包失敗&#xff0c;提示libs沒有的導入&#xff0c;而這些libs的編譯是需要gcc。 1、訪問&#xff1a;http://www.mingw.org/ 下載。 2、雙擊安裝 3、安裝好后會彈出下面的組件安裝界面 3、找到mingw32-gcc-g&#xff08;注意cl…

視頻AI,助力體育賽事轉播走進智能時代

摘要&#xff1a;2018俄羅斯世界杯經過近20天的激戰&#xff0c;已經進入到最關鍵的階段。本次賽事除了精彩紛呈的比賽之外&#xff0c;還加入很多高科技的元素&#xff0c;例如門線、VAR技術等等。讓本屆世界杯成為科技含量最高的一屆世界杯。2018俄羅斯世界杯經過近20天的激戰…

python求同構數_用c語言求1到1000的同構數_后端開發

python與平臺有關嗎_后端開發Python與平臺無關&#xff0c;因為Python是跨平臺的語言&#xff0c;Python作為腳本語言&#xff0c;是解釋執行的&#xff0c;所以能跨平臺&#xff0c;前提是必須要有一個對應的解釋器。具體請看實例&#xff1a;python中count函數的用法詳解_后端…

element表格實現樹形全選_很實用!word中全選的快捷鍵介紹及使用方法

全選快捷鍵可以提高我們在操作word時工作效率&#xff0c;在操作Word2003中怎么對文檔中的文字進行全選呢?下面為大家提供幾種全選的方法&#xff0c;絕對好用。Word怎樣全選?方法一、使用Word全選快捷鍵“CtrlA”進行全選(也適用于電子表格);方法二、展開菜單欄中的“編輯”…

am3352 linux 內核 編譯,am335x uboot, kernel 編譯

一、設置環境變量// 寫在家目錄下面的 .bashrc 里面export KERNEL_PATH~/aplex/kernel3.2.0 // kernel 路徑export UBOOT_PATH~/aplex/uboot2011.09 // u-boot 路勁export ROOTFS_PATH~/aplex/filesystemexport TOOLFS_PATH~/aplex/toolsexport ARCHarm // 設置平臺類型export …

Docker的應用場景

原文鏈接&#xff1a;http://blog.csdn.net/dev_csdn/article/details/78424803 ------------------------------------------------------------------- Docker是開發人員和系統管理員構建&#xff0c;發布和運行分布式應用程序的開放平臺&#xff0c;可以在筆記本電腦、數據…

cad多段線畫圓弧方向_【學員分享】CAD多段線用法

原標題&#xff1a;【學員分享】CAD多段線用法1、執行方法&#xff1a;(1)菜單欄&#xff1a;繪圖→多段線(2)繪圖功能區&#xff1a;繪圖→多段線按鈕(3)快捷鍵&#xff1a;PL2、使用方法(1)多段線與直線的區別&#xff1a;直線每一段都是分開的&#xff0c;圖畫完后不是一個整…

linux 視頻編輯 ffmpeg,ffmpeg轉碼視頻真的好用!(ffmpeg的簡單使用方法)

說明轉碼和編輯視頻今天用Android Studio(后面簡稱AS)里的模擬器給系統錄屏&#xff0c;用來展示OpenGL可視化的東西&#xff0c;打算上傳B站&#xff0c;后來發現AS只能保存webm格式和GIF格式的視頻&#xff0c;并且文件體積巨大&#xff0c;視頻圖像也是順時針旋轉的。沒辦法…