make file system type of OS partitions part of device config
This commit is contained in:
parent
694afd844b
commit
d7594443cd
5 changed files with 24 additions and 7 deletions
|
@ -5,6 +5,8 @@ includes:
|
||||||
|
|
||||||
device:
|
device:
|
||||||
vendor: google_devices
|
vendor: google_devices
|
||||||
|
system_fs_type: ext4
|
||||||
|
|
||||||
build_id: TQ3A.230805.001
|
build_id: TQ3A.230805.001
|
||||||
prev_build_id: TQ3A.230705.001
|
prev_build_id: TQ3A.230705.001
|
||||||
|
|
||||||
|
|
|
@ -25,6 +25,7 @@ import {
|
||||||
SPECIAL_FILE_EXTENSIONS,
|
SPECIAL_FILE_EXTENSIONS,
|
||||||
TYPE_SHARED_LIBRARY,
|
TYPE_SHARED_LIBRARY,
|
||||||
} from '../build/soong'
|
} from '../build/soong'
|
||||||
|
import { DeviceConfig } from '../config/device'
|
||||||
import { BlobEntry, blobNeedsSoong } from './entry'
|
import { BlobEntry, blobNeedsSoong } from './entry'
|
||||||
|
|
||||||
export interface BuildFiles {
|
export interface BuildFiles {
|
||||||
|
@ -206,7 +207,11 @@ export async function createVendorDirs(vendor: string, device: string) {
|
||||||
} as VendorDirectories
|
} as VendorDirectories
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function writeBuildFiles(build: BuildFiles, dirs: VendorDirectories) {
|
export async function writeBuildFiles(
|
||||||
|
build: BuildFiles,
|
||||||
|
dirs: VendorDirectories,
|
||||||
|
config?: DeviceConfig
|
||||||
|
) {
|
||||||
if (build.rootBlueprint != undefined) {
|
if (build.rootBlueprint != undefined) {
|
||||||
let bp = serializeBlueprint(build.rootBlueprint)
|
let bp = serializeBlueprint(build.rootBlueprint)
|
||||||
await fs.writeFile(`${dirs.out}/Android.bp`, bp)
|
await fs.writeFile(`${dirs.out}/Android.bp`, bp)
|
||||||
|
@ -228,7 +233,7 @@ export async function writeBuildFiles(build: BuildFiles, dirs: VendorDirectories
|
||||||
}
|
}
|
||||||
|
|
||||||
if (build.boardMakefile != undefined) {
|
if (build.boardMakefile != undefined) {
|
||||||
let mk = serializeBoardMakefile(build.boardMakefile)
|
let mk = serializeBoardMakefile(build.boardMakefile, config)
|
||||||
await fs.writeFile(`${dirs.proprietary}/BoardConfigVendor.mk`, mk)
|
await fs.writeFile(`${dirs.proprietary}/BoardConfigVendor.mk`, mk)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import { basename, dirname } from 'path'
|
import { basename, dirname } from 'path'
|
||||||
import { BlobEntry } from '../blobs/entry'
|
import { BlobEntry } from '../blobs/entry'
|
||||||
import { PartitionProps } from '../blobs/props'
|
import { PartitionProps } from '../blobs/props'
|
||||||
|
import { DeviceConfig } from '../config/device'
|
||||||
import { SelinuxPartResolutions } from '../selinux/contexts'
|
import { SelinuxPartResolutions } from '../selinux/contexts'
|
||||||
import { MAKEFILE_HEADER } from '../util/headers'
|
import { MAKEFILE_HEADER } from '../util/headers'
|
||||||
|
|
||||||
|
@ -137,26 +138,28 @@ function addContBlock(blocks: Array<string>, variable: string, items: Array<stri
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function serializeBoardMakefile(mk: BoardMakefile) {
|
export function serializeBoardMakefile(mk: BoardMakefile, config?: DeviceConfig) {
|
||||||
let blocks = startBlocks()
|
let blocks = startBlocks()
|
||||||
|
|
||||||
// TODO: remove this when all ELF prebuilts work with Soong
|
// TODO: remove this when all ELF prebuilts work with Soong
|
||||||
blocks.push('BUILD_BROKEN_ELF_PREBUILT_PRODUCT_COPY_FILES := true')
|
blocks.push('BUILD_BROKEN_ELF_PREBUILT_PRODUCT_COPY_FILES := true')
|
||||||
|
|
||||||
|
let systemFsType = config?.device?.system_fs_type ?? 'ext4'
|
||||||
|
|
||||||
// Build vendor?
|
// Build vendor?
|
||||||
if (mk.buildPartitions?.includes('vendor')) {
|
if (mk.buildPartitions?.includes('vendor')) {
|
||||||
blocks.push('BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := ext4')
|
blocks.push(`BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := ${systemFsType}`)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Build DLKM partitions?
|
// Build DLKM partitions?
|
||||||
if (mk.buildPartitions?.includes('vendor_dlkm')) {
|
if (mk.buildPartitions?.includes('vendor_dlkm')) {
|
||||||
blocks.push(`BOARD_USES_VENDOR_DLKMIMAGE := true
|
blocks.push(`BOARD_USES_VENDOR_DLKMIMAGE := true
|
||||||
BOARD_VENDOR_DLKMIMAGE_FILE_SYSTEM_TYPE := ext4
|
BOARD_VENDOR_DLKMIMAGE_FILE_SYSTEM_TYPE := ${systemFsType}
|
||||||
TARGET_COPY_OUT_VENDOR_DLKM := vendor_dlkm`)
|
TARGET_COPY_OUT_VENDOR_DLKM := vendor_dlkm`)
|
||||||
}
|
}
|
||||||
if (mk.buildPartitions?.includes('odm_dlkm')) {
|
if (mk.buildPartitions?.includes('odm_dlkm')) {
|
||||||
blocks.push(`BOARD_USES_ODM_DLKIMAGE := true
|
blocks.push(`BOARD_USES_ODM_DLKIMAGE := true
|
||||||
BOARD_ODM_DLKIMAGE_FILE_SYSTEM_TYPE := ext4
|
BOARD_ODM_DLKIMAGE_FILE_SYSTEM_TYPE := ${systemFsType}
|
||||||
TARGET_COPY_OUT_ODM_DLKM := odm_dlkm`)
|
TARGET_COPY_OUT_ODM_DLKM := odm_dlkm`)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -15,11 +15,18 @@ export enum ConfigType {
|
||||||
DeviceList = 'device-list',
|
DeviceList = 'device-list',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export enum FsType {
|
||||||
|
EXT4 = 'ext4',
|
||||||
|
EROFS = 'erofs',
|
||||||
|
}
|
||||||
|
|
||||||
export interface DeviceConfig {
|
export interface DeviceConfig {
|
||||||
// Required
|
// Required
|
||||||
device: {
|
device: {
|
||||||
name: string
|
name: string
|
||||||
vendor: string
|
vendor: string
|
||||||
|
// file system type of OS partitions
|
||||||
|
system_fs_type: FsType
|
||||||
build_id: string
|
build_id: string
|
||||||
prev_build_id: string
|
prev_build_id: string
|
||||||
}
|
}
|
||||||
|
|
|
@ -376,5 +376,5 @@ export async function generateBuildFiles(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
await writeBuildFiles(build, dirs)
|
await writeBuildFiles(build, dirs, config)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue