diff options
author | 2024-05-14 01:04:33 +0000 | |
---|---|---|
committer | 2024-05-15 21:32:48 +0000 | |
commit | 40a79783037ddbe2d0909d6102d36b1398f3e9c7 (patch) | |
tree | eb0d476d35bfaf2892979c75ff2e771455711421 | |
parent | 2536ea06a426182c51aa31c78091aa24dbad183a (diff) |
Add vm name and version to am capabilities
This CL is part of the go/kddm project, to deprecate DDM protocol.
HELO packet currently return the VM name and version, this CL allows
to retrieves the same invo from a tool accessible from shell.
The data is retrieved the same way it is retrieved in DdmHandleHello.
handleHELO (System.getproperty).
Test: NA
Bug: go/kddm
Change-Id: Id5cf9bf768f397bf3595e577f0da7a001b7ec394
-rw-r--r-- | proto/src/am_capabilities.proto | 8 | ||||
-rw-r--r-- | services/core/java/com/android/server/am/ActivityManagerShellCommand.java | 10 |
2 files changed, 18 insertions, 0 deletions
diff --git a/proto/src/am_capabilities.proto b/proto/src/am_capabilities.proto index fc9f7a4590bd..c2b3ac2aaa78 100644 --- a/proto/src/am_capabilities.proto +++ b/proto/src/am_capabilities.proto @@ -15,8 +15,16 @@ message FrameworkCapability { string name = 1; } +message VMInfo { + // The value of the "java.vm.name" system property + string name = 1; + // The value of the "java.vm.version" system property + string version = 2; +} + message Capabilities { repeated Capability values = 1; repeated VMCapability vm_capabilities = 2; repeated FrameworkCapability framework_capabilities = 3; + VMInfo vm_info = 4; } diff --git a/services/core/java/com/android/server/am/ActivityManagerShellCommand.java b/services/core/java/com/android/server/am/ActivityManagerShellCommand.java index c13f02ebdf1b..9a173663383d 100644 --- a/services/core/java/com/android/server/am/ActivityManagerShellCommand.java +++ b/services/core/java/com/android/server/am/ActivityManagerShellCommand.java @@ -127,6 +127,7 @@ import com.android.server.am.nano.Capabilities; import com.android.server.am.nano.Capability; import com.android.server.am.nano.FrameworkCapability; import com.android.server.am.nano.VMCapability; +import com.android.server.am.nano.VMInfo; import com.android.server.compat.PlatformCompat; import com.android.server.pm.UserManagerInternal; import com.android.server.utils.Slogf; @@ -438,6 +439,8 @@ final class ActivityManagerShellCommand extends ShellCommand { return -1; } } + String vmName = System.getProperty("java.vm.name", "?"); + String vmVersion = System.getProperty("java.vm.version", "?"); if (outputAsProtobuf) { Capabilities capabilities = new Capabilities(); @@ -464,6 +467,11 @@ final class ActivityManagerShellCommand extends ShellCommand { capabilities.frameworkCapabilities[i] = cap; } + VMInfo vmInfo = new VMInfo(); + vmInfo.name = vmName; + vmInfo.version = vmVersion; + capabilities.vmInfo = vmInfo; + try { getRawOutputStream().write(Capabilities.toByteArray(capabilities)); } catch (IOException e) { @@ -483,6 +491,8 @@ final class ActivityManagerShellCommand extends ShellCommand { for (String capability : Debug.getFeatureList()) { pw.println("framework:" + capability); } + pw.println("vm_name:" + vmName); + pw.println("vm_version:" + vmVersion); } return 0; } |