Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5c17b4e9 authored by Colin Cross's avatar Colin Cross Committed by android-build-merger
Browse files

Add InstallInRoot to allow modules to install into root partition

am: 90ba5f4e

Change-Id: I73a597b875c336624b0016302c3710177bb0a658
parents accaafc0 90ba5f4e
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -157,6 +157,7 @@ type ModuleContext interface {
	InstallInTestcases() bool
	InstallInSanitizerDir() bool
	InstallInRecovery() bool
	InstallInRoot() bool
	InstallBypassMake() bool

	RequiredModuleNames() []string
@@ -196,6 +197,7 @@ type Module interface {
	InstallInTestcases() bool
	InstallInSanitizerDir() bool
	InstallInRecovery() bool
	InstallInRoot() bool
	InstallBypassMake() bool
	SkipInstall()
	ExportedToMake() bool
@@ -846,6 +848,10 @@ func (m *ModuleBase) InstallInRecovery() bool {
	return Bool(m.commonProperties.Recovery)
}

func (m *ModuleBase) InstallInRoot() bool {
	return false
}

func (m *ModuleBase) InstallBypassMake() bool {
	return false
}
@@ -1522,6 +1528,10 @@ func (m *moduleContext) InstallInRecovery() bool {
	return m.module.InstallInRecovery()
}

func (m *moduleContext) InstallInRoot() bool {
	return m.module.InstallInRoot()
}

func (m *moduleContext) InstallBypassMake() bool {
	return m.module.InstallBypassMake()
}
+9 −2
Original line number Diff line number Diff line
@@ -47,6 +47,7 @@ type ModuleInstallPathContext interface {
	InstallInTestcases() bool
	InstallInSanitizerDir() bool
	InstallInRecovery() bool
	InstallInRoot() bool
	InstallBypassMake() bool
}

@@ -1159,8 +1160,12 @@ func modulePartition(ctx ModuleInstallPathContext) string {
	} else if ctx.InstallInTestcases() {
		partition = "testcases"
	} else if ctx.InstallInRecovery() {
		if ctx.InstallInRoot() {
			partition = "recovery/root"
		} else {
			// the layout of recovery partion is the same as that of system partition
			partition = "recovery/root/system"
		}
	} else if ctx.SocSpecific() {
		partition = ctx.DeviceConfig().VendorPath()
	} else if ctx.DeviceSpecific() {
@@ -1169,6 +1174,8 @@ func modulePartition(ctx ModuleInstallPathContext) string {
		partition = ctx.DeviceConfig().ProductPath()
	} else if ctx.SystemExtSpecific() {
		partition = ctx.DeviceConfig().SystemExtPath()
	} else if ctx.InstallInRoot() {
		partition = "root"
	} else {
		partition = "system"
	}
+39 −0
Original line number Diff line number Diff line
@@ -204,6 +204,7 @@ type moduleInstallPathContextImpl struct {
	inTestcases    bool
	inSanitizerDir bool
	inRecovery     bool
	inRoot         bool
}

func (moduleInstallPathContextImpl) Fs() pathtools.FileSystem {
@@ -232,6 +233,10 @@ func (m moduleInstallPathContextImpl) InstallInRecovery() bool {
	return m.inRecovery
}

func (m moduleInstallPathContextImpl) InstallInRoot() bool {
	return m.inRoot
}

func (m moduleInstallPathContextImpl) InstallBypassMake() bool {
	return false
}
@@ -313,6 +318,40 @@ func TestPathForModuleInstall(t *testing.T) {
			in:  []string{"bin", "my_test"},
			out: "target/product/test_device/system_ext/bin/my_test",
		},
		{
			name: "root binary",
			ctx: &moduleInstallPathContextImpl{
				baseModuleContext: baseModuleContext{
					target: deviceTarget,
				},
				inRoot: true,
			},
			in:  []string{"my_test"},
			out: "target/product/test_device/root/my_test",
		},
		{
			name: "recovery binary",
			ctx: &moduleInstallPathContextImpl{
				baseModuleContext: baseModuleContext{
					target: deviceTarget,
				},
				inRecovery: true,
			},
			in:  []string{"bin/my_test"},
			out: "target/product/test_device/recovery/root/system/bin/my_test",
		},
		{
			name: "recovery root binary",
			ctx: &moduleInstallPathContextImpl{
				baseModuleContext: baseModuleContext{
					target: deviceTarget,
				},
				inRecovery: true,
				inRoot:     true,
			},
			in:  []string{"my_test"},
			out: "target/product/test_device/recovery/root/my_test",
		},

		{
			name: "system native test binary",