summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXin Li <delphij@google.com>2021-10-06 22:54:15 +0000
committerXin Li <delphij@google.com>2021-10-06 22:54:15 +0000
commit89d23e9569f95ca6c50451e51c81df4524b99ca9 (patch)
treec2f876e790df9f3bf1faa6a1355bd5a516649c11
parente365ae93b18931a44014478c1ca30356de934d3b (diff)
parent3d791e886925e506dc1446301a24dc8ae1c6610e (diff)
downloadplatform_packages_services_Mtp-master.tar.gz
platform_packages_services_Mtp-master.tar.bz2
platform_packages_services_Mtp-master.zip
Merge Android 12HEADmaster
Bug: 202323961 Merged-In: I3b3ef768bb004daf8222e4171b72b02bb76497ab Change-Id: I8e55721c6f5a3e85af63ed0721ebefd72adf235d
-rw-r--r--AndroidManifest.xml76
-rw-r--r--perf_tests/Android.bp2
-rw-r--r--perf_tests/AndroidTest.xml4
-rw-r--r--src/com/android/mtp/MtpManager.java28
-rw-r--r--tests/Android.bp1
-rw-r--r--tests/AndroidManifest.xml20
-rw-r--r--tests/AndroidTest.xml6
7 files changed, 84 insertions, 53 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index fc3b7cb..0647979 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -1,65 +1,67 @@
<?xml version="1.0" encoding="utf-8"?>
+
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.android.mtp"
- android:sharedUserId="android.media">
- <uses-feature android:name="android.hardware.usb.host" />
- <uses-permission android:name="android.permission.ACCESS_MTP" />
+ package="com.android.mtp"
+ android:sharedUserId="android.media">
+ <uses-feature android:name="android.hardware.usb.host"/>
+ <uses-permission android:name="android.permission.ACCESS_MTP"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
- <uses-permission android:name="android.permission.MANAGE_USB" />
- <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
- <uses-permission android:name="android.permission.MANAGE_USERS" />
- <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" />
- <uses-permission android:name="android.permission.WRITE_MEDIA_STORAGE" />
- <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
+ <uses-permission android:name="android.permission.MANAGE_USB"/>
+ <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
+ <uses-permission android:name="android.permission.MANAGE_USERS"/>
+ <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS"/>
+ <uses-permission android:name="android.permission.WRITE_MEDIA_STORAGE"/>
+ <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>
- <application
- android:process="android.process.media"
- android:label="@string/app_label"
- android:allowBackup="false"
- android:usesCleartextTraffic="true">
- <provider
- android:name=".MtpDocumentsProvider"
- android:authorities="com.android.mtp.documents"
- android:grantUriPermissions="true"
- android:exported="true"
- android:permission="android.permission.MANAGE_DOCUMENTS">
+ <application android:process="android.process.media"
+ android:label="@string/app_label"
+ android:allowBackup="false"
+ android:usesCleartextTraffic="true">
+ <provider android:name=".MtpDocumentsProvider"
+ android:authorities="com.android.mtp.documents"
+ android:grantUriPermissions="true"
+ android:exported="true"
+ android:permission="android.permission.MANAGE_DOCUMENTS">
<intent-filter>
- <action android:name="android.content.action.DOCUMENTS_PROVIDER" />
+ <action android:name="android.content.action.DOCUMENTS_PROVIDER"/>
</intent-filter>
</provider>
- <service android:name=".MtpDocumentsService" />
+ <service android:name=".MtpDocumentsService"/>
<activity android:name=".ReceiverActivity"
- android:label="@string/downloads_app_label"
- android:icon="@mipmap/ic_launcher_download"
- android:theme="@android:style/Theme.NoDisplay"
- android:excludeFromRecents="true">
+ android:label="@string/downloads_app_label"
+ android:icon="@mipmap/ic_launcher_download"
+ android:theme="@android:style/Theme.NoDisplay"
+ android:excludeFromRecents="true"
+ android:exported="true">
<intent-filter>
- <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
+ <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"/>
</intent-filter>
<meta-data android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
- android:resource="@xml/device_filter" />
+ android:resource="@xml/device_filter"/>
</activity>
- <receiver android:name=".UsbIntentReceiver" android:exported="true">
+ <receiver android:name=".UsbIntentReceiver"
+ android:exported="true">
<intent-filter>
- <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
- <action android:name="android.hardware.usb.action.USB_DEVICE_DETACHED" />
+ <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"/>
+ <action android:name="android.hardware.usb.action.USB_DEVICE_DETACHED"/>
</intent-filter>
<meta-data android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
- android:resource="@xml/device_filter" />
+ android:resource="@xml/device_filter"/>
</receiver>
- <receiver android:name=".MtpReceiver">
+ <receiver android:name=".MtpReceiver"
+ android:exported="true">
<intent-filter>
- <action android:name="android.intent.action.BOOT_COMPLETED" />
+ <action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
<intent-filter>
- <action android:name="android.hardware.usb.action.USB_STATE" />
+ <action android:name="android.hardware.usb.action.USB_STATE"/>
</intent-filter>
</receiver>
- <service android:name="MtpService" />
+ <service android:name="MtpService"/>
</application>
</manifest>
diff --git a/perf_tests/Android.bp b/perf_tests/Android.bp
index e25a0ca..a49949a 100644
--- a/perf_tests/Android.bp
+++ b/perf_tests/Android.bp
@@ -1,5 +1,4 @@
package {
- // See: http://go/android-license-faq
default_applicable_licenses: ["Android-Apache-2.0"],
}
@@ -11,4 +10,5 @@ android_test {
instrumentation_for: "MtpService",
certificate: "media",
test_suites: ["device-tests"],
+
}
diff --git a/perf_tests/AndroidTest.xml b/perf_tests/AndroidTest.xml
index 8b7292b..8d1b349 100644
--- a/perf_tests/AndroidTest.xml
+++ b/perf_tests/AndroidTest.xml
@@ -13,12 +13,12 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<configuration description="Runs MtpDocumentsProviderPerfTests metric instrumentation.">
+<configuration description="Runs MtpServicePerfTests metric instrumentation.">
<option name="test-suite-tag" value="apct" />
<option name="test-suite-tag" value="apct-metric-instrumentation" />
<target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
<option name="cleanup-apks" value="true" />
- <option name="test-file-name" value="MtpDocumentsProviderPerfTests.apk" />
+ <option name="test-file-name" value="MtpServicePerfTests.apk" />
</target_preparer>
<test class="com.android.tradefed.testtype.AndroidJUnitTest" >
diff --git a/src/com/android/mtp/MtpManager.java b/src/com/android/mtp/MtpManager.java
index a7de631..6b211e4 100644
--- a/src/com/android/mtp/MtpManager.java
+++ b/src/com/android/mtp/MtpManager.java
@@ -29,6 +29,7 @@ import android.mtp.MtpDeviceInfo;
import android.mtp.MtpEvent;
import android.mtp.MtpObjectInfo;
import android.mtp.MtpStorageInfo;
+import android.os.Build;
import android.os.CancellationSignal;
import android.os.ParcelFileDescriptor;
import android.util.Log;
@@ -108,6 +109,9 @@ class MtpManager {
"Not found MTP storages in the device.");
mDevices.put(deviceId, device);
+
+ setInitVersion(rawDevice);
+
return createDeviceRecord(rawDevice);
}
@@ -263,6 +267,28 @@ class MtpManager {
}
}
+ private void setInitVersion(UsbDevice device) {
+ final MtpDevice mtpDevice = mDevices.get(device.getDeviceId());
+ final boolean opened = mtpDevice != null;
+ final String name = device.getProductName();
+ int[] devicePropertySupported = null;
+
+ if (opened) {
+ final MtpDeviceInfo info = mtpDevice.getDeviceInfo();
+
+ if (info != null) {
+ devicePropertySupported = info.getDevicePropertySupported();
+
+ if (MtpDeviceRecord.isSupported(devicePropertySupported,
+ MtpConstants.DEVICE_PROPERTY_SESSION_INITIATOR_VERSION_INFO)) {
+ mtpDevice.setDevicePropertyInitVersion("Android/"
+ + Build.VERSION.RELEASE
+ + " Build/" + Build.VERSION.INCREMENTAL);
+ }
+ }
+ }
+ }
+
private MtpDeviceRecord createDeviceRecord(UsbDevice device) {
final MtpDevice mtpDevice = mDevices.get(device.getDeviceId());
final boolean opened = mtpDevice != null;
@@ -270,6 +296,8 @@ class MtpManager {
MtpRoot[] roots;
int[] operationsSupported = null;
int[] eventsSupported = null;
+ int[] devicePropertySupported = null;
+
if (opened) {
try {
roots = getRoots(device.getDeviceId());
diff --git a/tests/Android.bp b/tests/Android.bp
index 6278272..1d96b6e 100644
--- a/tests/Android.bp
+++ b/tests/Android.bp
@@ -1,5 +1,4 @@
package {
- // See: http://go/android-license-faq
default_applicable_licenses: ["Android-Apache-2.0"],
}
diff --git a/tests/AndroidManifest.xml b/tests/AndroidManifest.xml
index e1307e9..a064e50 100644
--- a/tests/AndroidManifest.xml
+++ b/tests/AndroidManifest.xml
@@ -1,21 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
+
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.android.mtp.tests"
- android:sharedUserId="android.media">
+ package="com.android.mtp.tests"
+ android:sharedUserId="android.media">
<application>
- <uses-library android:name="android.test.runner" />
+ <uses-library android:name="android.test.runner"/>
<activity android:name="com.android.mtp.TestResultActivity"
- android:screenOrientation="locked"
- android:launchMode="singleInstance">
+ android:screenOrientation="locked"
+ android:launchMode="singleInstance"
+ android:exported="true">
<intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
+ <action android:name="android.intent.action.MAIN"/>
+ <category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
<instrumentation android:name="com.android.mtp.TestResultInstrumentation"
- android:targetPackage="com.android.mtp"
- android:label="Tests for MtpDocumentsProvider with the UI for output." />
+ android:targetPackage="com.android.mtp"
+ android:label="Tests for MtpDocumentsProvider with the UI for output."/>
</manifest>
diff --git a/tests/AndroidTest.xml b/tests/AndroidTest.xml
index f84131c..83b287a 100644
--- a/tests/AndroidTest.xml
+++ b/tests/AndroidTest.xml
@@ -13,13 +13,13 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<configuration description="Runs Tests for MtpDocumentsProvider with the UI for output.">
+<configuration description="Runs Tests for MtpService with the UI for output.">
<target_preparer class="com.android.tradefed.targetprep.TestAppInstallSetup">
- <option name="test-file-name" value="MtpDocumentsProviderTests.apk" />
+ <option name="test-file-name" value="MtpServiceTests.apk" />
</target_preparer>
<option name="test-suite-tag" value="apct" />
- <option name="test-tag" value="MtpDocumentsProviderTests" />
+ <option name="test-tag" value="MtpServiceTests" />
<test class="com.android.tradefed.testtype.InstrumentationTest" >
<option name="package" value="com.android.mtp.tests" />
<option name="runner" value="com.android.mtp.TestResultInstrumentation" />