Merge "Allow apps in /odm/app and /odm/priv-app" into pi-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
f85de9616f
@@ -284,8 +284,9 @@ public class SystemConfig {
|
||||
readPermissions(Environment.buildPath(
|
||||
Environment.getVendorDirectory(), "etc", "permissions"), vendorPermissionFlag);
|
||||
|
||||
// Allow ODM to customize system configs around libs, features and apps
|
||||
int odmPermissionFlag = ALLOW_LIBS | ALLOW_FEATURES | ALLOW_APP_CONFIGS;
|
||||
// Allow ODM to customize system configs as much as Vendor, because /odm is another
|
||||
// vendor partition other than /vendor.
|
||||
int odmPermissionFlag = vendorPermissionFlag;
|
||||
readPermissions(Environment.buildPath(
|
||||
Environment.getOdmDirectory(), "etc", "sysconfig"), odmPermissionFlag);
|
||||
readPermissions(Environment.buildPath(
|
||||
@@ -631,7 +632,9 @@ public class SystemConfig {
|
||||
// granting permissions to priv apps in the system partition and vice
|
||||
// versa.
|
||||
boolean vendor = permFile.toPath().startsWith(
|
||||
Environment.getVendorDirectory().toPath());
|
||||
Environment.getVendorDirectory().toPath())
|
||||
|| permFile.toPath().startsWith(
|
||||
Environment.getOdmDirectory().toPath());
|
||||
boolean product = permFile.toPath().startsWith(
|
||||
Environment.getProductDirectory().toPath());
|
||||
if (vendor) {
|
||||
|
||||
@@ -2592,7 +2592,7 @@ public class PackageManagerService extends IPackageManager.Stub
|
||||
| SCAN_AS_PRIVILEGED,
|
||||
0);
|
||||
|
||||
// Collected privileged system packages.
|
||||
// Collect privileged system packages.
|
||||
final File privilegedAppDir = new File(Environment.getRootDirectory(), "priv-app");
|
||||
scanDirTracedLI(privilegedAppDir,
|
||||
mDefParseFlags
|
||||
@@ -2611,7 +2611,7 @@ public class PackageManagerService extends IPackageManager.Stub
|
||||
| SCAN_AS_SYSTEM,
|
||||
0);
|
||||
|
||||
// Collected privileged vendor packages.
|
||||
// Collect privileged vendor packages.
|
||||
File privilegedVendorAppDir = new File(Environment.getVendorDirectory(), "priv-app");
|
||||
try {
|
||||
privilegedVendorAppDir = privilegedVendorAppDir.getCanonicalFile();
|
||||
@@ -2642,6 +2642,40 @@ public class PackageManagerService extends IPackageManager.Stub
|
||||
| SCAN_AS_VENDOR,
|
||||
0);
|
||||
|
||||
// Collect privileged odm packages. /odm is another vendor partition
|
||||
// other than /vendor.
|
||||
File privilegedOdmAppDir = new File(Environment.getOdmDirectory(),
|
||||
"priv-app");
|
||||
try {
|
||||
privilegedOdmAppDir = privilegedOdmAppDir.getCanonicalFile();
|
||||
} catch (IOException e) {
|
||||
// failed to look up canonical path, continue with original one
|
||||
}
|
||||
scanDirTracedLI(privilegedOdmAppDir,
|
||||
mDefParseFlags
|
||||
| PackageParser.PARSE_IS_SYSTEM_DIR,
|
||||
scanFlags
|
||||
| SCAN_AS_SYSTEM
|
||||
| SCAN_AS_VENDOR
|
||||
| SCAN_AS_PRIVILEGED,
|
||||
0);
|
||||
|
||||
// Collect ordinary odm packages. /odm is another vendor partition
|
||||
// other than /vendor.
|
||||
File odmAppDir = new File(Environment.getOdmDirectory(), "app");
|
||||
try {
|
||||
odmAppDir = odmAppDir.getCanonicalFile();
|
||||
} catch (IOException e) {
|
||||
// failed to look up canonical path, continue with original one
|
||||
}
|
||||
scanDirTracedLI(odmAppDir,
|
||||
mDefParseFlags
|
||||
| PackageParser.PARSE_IS_SYSTEM_DIR,
|
||||
scanFlags
|
||||
| SCAN_AS_SYSTEM
|
||||
| SCAN_AS_VENDOR,
|
||||
0);
|
||||
|
||||
// Collect all OEM packages.
|
||||
final File oemAppDir = new File(Environment.getOemDirectory(), "app");
|
||||
scanDirTracedLI(oemAppDir,
|
||||
|
||||
26
tests/OdmApps/Android.mk
Normal file
26
tests/OdmApps/Android.mk
Normal file
@@ -0,0 +1,26 @@
|
||||
# Copyright (C) 2018 The Android Open Source Project
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
LOCAL_PATH := $(call my-dir)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
LOCAL_MODULE := OdmAppsTest
|
||||
LOCAL_MODULE_TAGS := tests
|
||||
LOCAL_SRC_FILES := $(call all-java-files-under, src)
|
||||
LOCAL_JAVA_LIBRARIES := tradefed
|
||||
LOCAL_COMPATIBILITY_SUITE := device-tests
|
||||
include $(BUILD_HOST_JAVA_LIBRARY)
|
||||
|
||||
include $(call all-makefiles-under,$(LOCAL_PATH))
|
||||
27
tests/OdmApps/AndroidTest.xml
Normal file
27
tests/OdmApps/AndroidTest.xml
Normal file
@@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2018 The Android Open Source Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<configuration description="Config for ODM apps test">
|
||||
<target_preparer class="com.android.tradefed.targetprep.PushFilePreparer">
|
||||
<option name="cleanup" value="true" />
|
||||
<option name="remount-system" value="true" />
|
||||
<option name="push" value="TestOdmApp.apk->/odm/app/TestOdmApp/TestOdmApp.apk" />
|
||||
<option name="push" value="TestOdmPrivApp.apk->/odm/priv-app/TestOdmPrivApp/TestOdmPrivApp.apk" />
|
||||
<option name="post-push" value="stop; start; sleep 5" />
|
||||
</target_preparer>
|
||||
<test class="com.android.compatibility.common.tradefed.testtype.JarHostTest" >
|
||||
<option name="jar" value="OdmAppsTest.jar" />
|
||||
</test>
|
||||
</configuration>
|
||||
22
tests/OdmApps/app/Android.mk
Normal file
22
tests/OdmApps/app/Android.mk
Normal file
@@ -0,0 +1,22 @@
|
||||
# Copyright (C) 2018 The Android Open Source Project
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
LOCAL_PATH:= $(call my-dir)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_PACKAGE_NAME := TestOdmApp
|
||||
LOCAL_MODULE_TAGS := tests
|
||||
LOCAL_COMPATIBILITY_SUITE := device-tests
|
||||
LOCAL_SDK_VERSION := current
|
||||
include $(BUILD_PACKAGE)
|
||||
21
tests/OdmApps/app/AndroidManifest.xml
Executable file
21
tests/OdmApps/app/AndroidManifest.xml
Executable file
@@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
* Copyright (C) 2018 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
-->
|
||||
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.android.test.odm.app">
|
||||
</manifest>
|
||||
|
||||
22
tests/OdmApps/priv-app/Android.mk
Normal file
22
tests/OdmApps/priv-app/Android.mk
Normal file
@@ -0,0 +1,22 @@
|
||||
# Copyright (C) 2018 The Android Open Source Project
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
LOCAL_PATH:= $(call my-dir)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_PACKAGE_NAME := TestOdmPrivApp
|
||||
LOCAL_MODULE_TAGS := tests
|
||||
LOCAL_COMPATIBILITY_SUITE := device-tests
|
||||
LOCAL_SDK_VERSION := current
|
||||
include $(BUILD_PACKAGE)
|
||||
21
tests/OdmApps/priv-app/AndroidManifest.xml
Executable file
21
tests/OdmApps/priv-app/AndroidManifest.xml
Executable file
@@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
* Copyright (C) 2018 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
-->
|
||||
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.android.test.odm.privapp">
|
||||
</manifest>
|
||||
|
||||
35
tests/OdmApps/src/com/android/test/odm/app/OdmAppsTest.java
Normal file
35
tests/OdmApps/src/com/android/test/odm/app/OdmAppsTest.java
Normal file
@@ -0,0 +1,35 @@
|
||||
/*
|
||||
* Copyright (C) 2018 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.test.odm.apps;
|
||||
|
||||
import com.android.tradefed.testtype.DeviceTestCase;
|
||||
|
||||
public class OdmAppsTest extends DeviceTestCase {
|
||||
/**
|
||||
* Test if /odm/app is working
|
||||
*/
|
||||
public void testOdmApp() throws Exception {
|
||||
assertNotNull(getDevice().getAppPackageInfo("com.android.test.odm.app"));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test if /odm/priv-app is working
|
||||
*/
|
||||
public void testOdmPrivApp() throws Exception {
|
||||
assertNotNull(getDevice().getAppPackageInfo("com.android.test.odm.privapp"));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user