镜像是实例运行的 Android 系统版本,镜像管理页面展示了平台提供的稳定可用的公共镜像列表,也支持用户在 AOSP 镜像基线版本构建自定义镜像。在创建实例时,可选择基于平台的公共镜像或用户自定义的镜像创建实例。本文为您介绍自定义镜像中的在线构建镜像和导入自定义镜像的操作步骤。
功能介绍
您可以根据自己的业务需要,选择镜像构建方式,自定义镜像支持 2 种构建方式:
- 在线构建镜像:适用于需要在实例中快速预置应用或文件的使用场景。可在现有可用镜像的基础上,上传需要预置的应用或文件即可完成自定义镜像构建。
- 导入自定义镜像:适用于有定制化功能、服务开发的使用场景。可基于平台提供的 AOSP 镜像基线版本构建自定义镜像,详细步骤,参考 构建自定义镜像最佳实践。在构建完成自定义镜像并将镜像文件上传至火山引擎对象存储后,导入镜像相关参数完成自定义镜像构建。
进入自定义镜像页面
- 登录火山引擎云手机控制台。
- 选择左侧导航栏云手机业务,进入云手机业务页面。
- 切换本地存储页签,选择目标业务卡片。
- 单击进入业务按钮,选择左侧导航栏镜像管理 > 自定义镜像,进入自定义镜像页面。
- 您可以根据自身业务需求,选择所需的镜像构建方式。

在线构建镜像
注意
在线构建镜像任务并发数上限为 1,超过并发上限会提交失败。
- 在自定义镜像页面,选择使用在线构建镜像,单击管理列表按钮。

- 进入在线构建镜像页面,单击构建镜像按钮,也可单击展示使用指引,查看在线构建镜像的使用指引。

- 在在线构建镜像弹窗中,设置构建镜像的参数说明,具体操作如下:
- 镜像名称:选填,请输入用于业务标识的镜像名称,支持英文、中文字符、数字和下划线,需以英文或中文开头,长度不超过 128 个字符。
说明
如不指定,则使用默认名称,格式为 “镜像基线ID+AOSP镜像版本+账号ID+自定义镜像”。
- 镜像描述:选填,请输入具体业务镜像描述,长度不超过 255 个字符。
- 镜像基线:支持选择公共镜像或者自定义镜像。
- 上传内置文件压缩包:单击点击上传按钮,上传预先打包好的内置文件压缩包,目前仅支持上传 zip 格式文件,大小不超过 200 MB,具体可参考预置应用或文件上传说明;也可点击下载模版文件参考。

- 确认镜像构建信息无误后,单击确定,系统将开始构建镜像。

- 镜像构建任务执行完成后,构建成功的镜像将会显示在自定义镜像列表中。

预置应用或文件上传说明
准备需要打包的预置应用或文件,并确定文件需要内置到镜像内的目录,参考以下说明:
目录 | 说明 |
|---|
/system/framework | 该目录用于存放资源型应用(系统框架) |
/system/app | 该目录用于存放系统级应用,目录下的应用能获取到比较高的权限,应用不可卸载 |
/system/priv-app | 该目录是从 Android 4.4 开始出现的目录,用于存放系统核心应用,能获取到比 system/app/ 下应用更高的权限;应用不可卸载,如:Setting、SystemUI 等 |
/vendor/app | 该目录用于存放厂商的一些应用,不可卸载 |
定义需要保存应用的文件夹(文件夹名称可自定义,但后续镜像更新时需要保持一致),并将需要打包的文件拷贝到对应的目录下,参考以下示例:
/system/priv-app/GoogleFramework/GoogleFramework.apk
/system/priv-app/GoogleFramework/lib/arm64/
注意:需要确保目录和文件层级准确无误。内置到 system 分区的文件,最外层文件夹一定是 system;内置到 vendor 分区的文件,最外层文件夹一定是 vendor。参考以下示例:

需要内置的文件准备完成后,将 system 文件夹和 vendor 文件夹(若有)一起打包成 file.zip 文件。参考以下示例:

导入自定义镜像
自定义镜像管理
进入自定义镜像页面,选择使用导入自定义镜像,单击管理列表按钮。

进入导入自定义镜像页面,在自定义镜像管理签页下,单击导入镜像按钮,也可单击展示使用指引,查看导入自定义镜像的使用指引。

在导入镜像弹窗中,配置导入镜像的参数,具体操作说明如下:
- 导入方式:选择 从 TOS Bucket 导入 或者 从第三方 URL 导入。
- 从 TOS Bucket 导入:从火山引擎 TOS 对象存储中拉取镜像文件。您需要设置保存镜像文件的对象存储桶名称、输入保存镜像文件的目录、输入镜像名称和描述。
- 从第三方 URL 导入:从第三方对象存储服务拉取文件,当前已支持阿里云 OSS。您需要设置保存镜像文件的目录、输入镜像名称和描述。
- Bucket:仅选择 从 TOS Bucket 导入 时需要配置,需选择 TOS Bucket,如果暂无数据,您可前往 TOS 控制台创建 bucket。
- 镜像文件:支持 system_image、vendor_image 文件类型的设置。
- 文件/文件 URL:从 TOS Bucket 导入 方式需要选择 Bucket,从第三方 URL 导入 方式需要设置文件 URL。
- MD5:选填,输入 MD5 信息。
- 镜像名称:选填,请输入用于业务标识的镜像名称,仅支持英文/中文开头,长度不超过 128 个字符。
- 描述:选填,请输入具体业务镜像描述,长度不超过 255 个字符。

导入镜像参数配置完成后,单击确定按钮。
自定义镜像参数提交镜像制作后,镜像将进入导入中和创建中状态。创建完成后,镜像进入可用状态。

在自定义镜像管理操作列表下,支持基于自定义镜像直接创建实例,单击创建实例,在弹出的创建实例抽屉框中,使用选择的自定义镜像创建实例。

管理访问 IP 白名单
构建自定义镜像前,需要配置下载和编译 AOSP 镜像基线代码的服务器的公网 IP。
- 进入导入自定义镜像页面,切换至访问 IP 白名单页签,单击新增 IP 白名单按钮。

- 在新增访问IP白名单弹窗中,配置新增访问 IP 白名单的参数,具体操作说明如下:
- 访问 IP 白名单:必填,请填写加白的公网 IP,多个 IP 用空格隔开。可通过
curl ifconfig.me 获取。 - 描述:请输入配置访问 IP 白名单的具体描述,大小不能超过 256 个字符。

- 参数配置完成后,单击确定按钮。
- 跳转至访问 IP 白名单列表页面,状态自动为已启用,在操作列中,支持禁用操作;选中的 IP 地址禁用后才支持删除操作。

管理 SSH 密钥对
构建自定义镜像前,需要配置下载和编译 AOSP 镜像基线代码的服务器的 SSH 密钥对。
- 进入导入自定义镜像页面,切换至SSH 密钥对页签,单击创建 SSH 密钥对按钮。

- 在创建 SSH 密钥对弹窗中,配置 SSH 密钥对参数,具体操作说明如下:
- 密钥对名称:选填,请输入业务标识的密钥对名称,大小不能超过 32 个字符。
- 创建方式:必选,支持选择自动创建 SSH 密钥对或者导入已有 SSH 公钥。
- 密钥对类型:当创建方式选择自动创建 SSH 密钥对时,支持设置该参数,下拉选择所需的密钥对类型。
- 公钥内容:当创建方式选择导入已有 SSH 公钥时,支持设置该参数,输入公钥内容,公钥类型支持 RSA、ECDSA、ED25519,可通过
cat ~/.ssh/id_rsa.pub 获取。 - 描述:请输入配置 SSH 密钥对的具体描述,大小不能超过 256 个字符。

- 参数配置完成后,单击确定按钮。
- 跳转至 SSH 密钥对列表页面,状态自动为已启用,自动下载创建的 SSH 密钥对,下载保存生成的私钥。在操作列中,支持禁用操作;选中的密钥对禁用后才支持删除操作。
