Support privleged app in APEX

privileged apps are installed to priv-app dir in APEX

Test: m
Change-Id: I8141e1c20e9486655606fa43b949783f11da09f4
This commit is contained in:
Jiyong Park
2019-10-17 12:54:30 +09:00
parent d7d5e5a1ac
commit f7487318ac
4 changed files with 29 additions and 7 deletions

View File

@@ -230,7 +230,7 @@ func (a *AndroidApp) shouldUncompressDex(ctx android.ModuleContext) bool {
// Uncompress dex in APKs of privileged apps (even for unbundled builds, they may
// be preinstalled as prebuilts).
if ctx.Config().UncompressPrivAppDex() && Bool(a.appProperties.Privileged) {
if ctx.Config().UncompressPrivAppDex() && a.Privileged() {
return true
}
@@ -318,7 +318,7 @@ func (a *AndroidApp) dexBuildActions(ctx android.ModuleContext) android.Path {
if ctx.ModuleName() == "framework-res" {
// framework-res.apk is installed as system/framework/framework-res.apk
installDir = "framework"
} else if Bool(a.appProperties.Privileged) {
} else if a.Privileged() {
installDir = filepath.Join("priv-app", a.installApkName)
} else {
installDir = filepath.Join("app", a.installApkName)
@@ -444,7 +444,7 @@ func (a *AndroidApp) generateAndroidBuildActions(ctx android.ModuleContext) {
if ctx.ModuleName() == "framework-res" {
// framework-res.apk is installed as system/framework/framework-res.apk
a.installDir = android.PathForModuleInstall(ctx, "framework")
} else if Bool(a.appProperties.Privileged) {
} else if a.Privileged() {
a.installDir = android.PathForModuleInstall(ctx, "priv-app", a.installApkName)
} else if ctx.InstallInTestcases() {
a.installDir = android.PathForModuleInstall(ctx, a.installApkName)
@@ -557,6 +557,10 @@ func (a *AndroidApp) OutputFiles(tag string) (android.Paths, error) {
return a.Library.OutputFiles(tag)
}
func (a *AndroidApp) Privileged() bool {
return Bool(a.appProperties.Privileged)
}
// android_app compiles sources and Android resources into an Android application package `.apk` file.
func AndroidAppFactory() android.Module {
module := &AndroidApp{}
@@ -874,7 +878,7 @@ func (a *AndroidAppImport) shouldUncompressDex(ctx android.ModuleContext) bool {
}
// Uncompress dex in APKs of privileged apps
if ctx.Config().UncompressPrivAppDex() && Bool(a.properties.Privileged) {
if ctx.Config().UncompressPrivAppDex() && a.Privileged() {
return true
}
@@ -1005,6 +1009,10 @@ func (a *AndroidAppImport) populateAllVariantStructs() {
a.AddProperties(a.archVariants)
}
func (a *AndroidAppImport) Privileged() bool {
return Bool(a.properties.Privileged)
}
func createVariantGroupType(variants []string, variantGroupName string) reflect.Type {
props := reflect.TypeOf((*AndroidAppImportProperties)(nil))