Wednesday, 18 September 2019

InputStickUtility v2.00 (Android)

Redesigned UI:

InputStickUtility was redesigned from scratch. New interface is much more intuitive and easier to use.

Main screen

All important info in one place
Configuration options

Security options

Compatible with Android 10:

InputStickUtility is now compatible with Android 10. Unfortunately this required changes that make it no longer compatible with apps that use old versions of InputStick API (USB Remote and KP2A InputStick plugin both use latest API and won't be affected by this issue).

If after updating InputStickUtility to v2.00, your app crashes on connection attempt ask app developer to update the app using the latest InputStick API. If you have Android 9 or earlier you can switch to InputStickUtility v1.60 until the update is ready.


Requires Android 4.4 or later:

Older Android versions are no longer supported in new app releases. You can still use InputStick with older devices, however you are limited to InputStickUtility v1.60 (supports Android 2.3 up to 9.0).

Optional firmware update (v1.10):

You can now update your InputStick to the latest available firmware (v1.10). Main new feature is an option to exchange encryption key via USB. More info below.

Supports new firmware features (exchange encryption key via USB):

It is now possible to exchange encryption key via USB. Here's how it works:

  • open simple text editor (Notepad etc.)
  • plug InputStick into USB port
  • open InputStickUtility → select device → switch to Security tab → Set/Change password → Generate password → adjust options → Generate
  • InputStick generates password and types it (as a keyboard)
  • re-type password into InputStickUtility
  • the app verifies if it can establish encrypted connection using entered password. If yes, encryption key is saved

This method takes a bit more time than exchanging encryption key via Bluetooth, but in most cases should be more secure, preventing against eavesdropping attacks.

Generate password

Improved device discovery:

When scanning for nearby Bluetooth devices, devices named InputStick are marked with green color. When LE scanning mode is used (recommended by the app, unless you have InputStick BT2.0) other Bluetooth devices will not appear on the list, making it easier to find your device when there are many Bluetooth devices nearby.

InputStick devices are now marked with green color


Simplified app settings:

Settings that were no longer used or could be confusing were removed.

New Settings screen

Added Help section:

In-app help is now available. It contains information about InputStick security features, shows how to troubleshoot connection problems, restore factory defaults and recover firmware.

Help section: how to restore factory defaults

Improved widgets and Tasker actions:

Widgets and Tasker actions will now work correctly when device name is changed. Important: old widgets and actions are no longer supported, you must delete old ones and create new widgets / Tasker actions.

Other:

Multiple bug fixes and minor improvements.

Saturday, 14 September 2019

Android apps compatibility

InputStickUtility v1.60 (currently available on Google Play store) does not work correctly with Android 10. On Monday (September 16th), InputStickUtility v2.00 will start rolling out to Google Play store. Unfortunately v2.00 is not compatible with apps using older versions of InputStick API. Those apps will crash on connection attempt. InputStickUtility v2.00 requires Android 4.4 or later, older devices will be no longer supported.

If you have Android 10:

at this moment most InputStick-compatible apps will not work on your device. Wait few more days until InputStickUtility v2.00 update is released. Once that happens, USB Remote, KP2A plugin and most other apps will work properly again. If an app stops working after v2.00 update you must ask developer of the app to rebuild the app using latest version of InputStick API (more info below).

If you have Android 4.4 - 9:

in a few days you will receive InputStickUtility v2.00. If an app stops working after v2.00 update:
a) ask developer of the app to rebuild the app using latest version of InputStick API (more info below)
or:
b) uninstall InputStickUtility v2.00 and download InputStickUtility v1.60 as .apk file:


If you have Android 4.3 or earlier:

your device is not compatible with InputStickUtility v2.00. You won't be able to use new features, but all your apps will continue to work normally.

More details:

  • USB Remote and KP2A InputStick plugin use latest InputStick API and are 100% compatible with upcoming InputStickUtility v2.00 update
  • apps that use InputStickUtility as proxy  using IPC connection method (most popular one) must use latest InputStick API in order to work with InputStickUtility v2.00
  • apps that use InputStickUtility as proxy using broadcasts are not affected
  • apps that connect directly to InputStick are not affected


App developers:

If your app uses IPC connection method, make sure that it was built using latest InputStick API:


or find: IPCConnectionManager.java file and replace:

mCtx.startService(intent);

with:

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
mCtx.startService(intent);
} else {
mCtx.startForegroundService(intent);
}

Your app uses IPC connection if following method is used (from InputStickHID class):
connect(Application app)



Tuesday, 13 August 2019

KP2A plugin v1.40

What's new in KP2A plugin v1.40:

New app icon:




Improved masked password UI:

Typed characters are now marked in a more visible way (green text color instead of dark green background).
Typing masked password

Other:

  • fixed bug when queuing multiple actions (Type+Enter etc.) did not work properly when InputStick is disconnected
  • optimized for Android Pie

Sunday, 9 June 2019

USB Remote for iOS v1.40

What's new in USB Remote v1.40 (iOS): 

"Type" Share Extension:

You can now use USB Remote app to type URLs, selected text and text from text files. Here's an example showing how to type content of .txt file:


Using "Files" app, locate text file, long press, select "Share"

Select "Type" (or "More → "Type")

If necessary, modify text or settings and press "Type"

Important: USB Remote and extension can NOT be both connected at the same time. Make sure to disconnect USB Remote before using extension. The extension will automatically disconnect once it is done typing.

Other:

  • bug fixes

Tuesday, 7 May 2019

USB Remote for iOS v1.33

What's new in USB Remote v1.33 (iOS): 

New auto-connect options:

You can now choose between 3 different modes for Auto-connect feature (Control tab → Settings General Auto-connect):

  • Disabled
  • Smart auto-connect: recommended if you have more than one InputStick. Application will try to connect to the most recently used device. If the attempt fails, auto-connect will be temporarily disabled, until you manually reconnect to the most recently used device or connect to a different InputStick
  • Always auto-connect: recommended if you have one InputStick. Application will always try to auto-connect to the most recently used device


Other:


  • added missing dead keys for US International and Dutch keyboard layouts
  • connection errors will now be ignored when app is in background (connection error dialog will not be displayed)
  • uses updated InputStick API

Wednesday, 20 February 2019

KP2A plugin v1.36

What's new in v1.36:

This update added support for SMS Proxy app. This is a work-around new Google Play Store rules that no longer allow the plugin to receive SMS directly.
If you often receive authentication codes via SMS and want to use the plugin to type the codes, try SMS Proxy app. If you type text from SMS occasionally, you can copy text to system clipboard and use Type from clipboard option instead.



Source code


Setup:

  • make sure you have the latest version for the plugin (v1.36 or later)
  • download .apk
  • make sure that your Android device allows to install apps from "Unknown sources" *(.apk files)
  • install .apk
  • run SMS Proxy and give it permission to read SMS
  • open InputStick KP2A Plugin settings
  • navigate to SMS section and click on SMS Proxy App
  • click Allow

Tuesday, 19 February 2019

SMS Proxy

Since January 2019 InputStick KP2A Plugin can no longer listen to incoming SMS, because of new Google Play Store rules. Only way to type authentication codes received via SMS was to do so by coping SMS content to system clipboard. However this method is not ideal for users that received dozens of SMS codes every day.
SMS Proxy app is a solution to this problem. Since it is distributed as .apk file it is not affected by Google Play regulations.
You should use SMS Proxy app only if you often receive authentication codes via SMS and want to use InputStick KP2A Plugin to type the codes.
SMS Proxy is supported by InputStick KP2A Plugin v1.36 and later.



SMS Proxy - main screen

SMS Proxy - activation

How does this work?

  • InputStick KP2A Plugin starts and stops SMS Proxy app
  • when active, the app listens for incoming SMS
  • once SMS is received, SMS Proxy relies it to the plugin


Setup:

  • make sure you have the latest version for the plugin (v1.36 or later)
  • download .apk
  • make sure that your Android device allows to install apps from "Unknown sources" *(.apk files)
  • install .apk
  • run SMS Proxy and give it permission to read SMS
  • open InputStick KP2A Plugin settings
  • navigate to SMS section and click on SMS Proxy App
  • click Allow


Security:


  • the app does not have access to local storage or the Internet
  • listens to incoming SMS only when activated by InputStick KP2A Plugin
  • open source
  • received SMS are never stored by the app
  • SMS Proxy must be activated by the plugin (apps exchange secret key)
  • the plugin verifies received SMS data using secret key to prevent from getting spoofed messages

Sunday, 17 February 2019

USB Remote for iOS v1.32

What's new in USB Remote v1.32 (iOS): 

Improved mousepad scroll wheel mode:

new scroll wheel mode allows for more precise control of scroll wheel rotation and makes it easier to scroll through a lot of content. To enter scroll wheel mode touch mousepad area with two fingers (you should start at the center of the area). Move orange line to scroll up/down, move above (below) red lines to lock scroll wheel rotation (slow/fast). Scroll wheel sensitivity can be adjusted in app settings.

Scroll wheel mode


Other:


  • uses updated InputStick API
  • minor UI improvements
  • bug fixes

Thursday, 7 February 2019

iOS API update

InputStick iOS API has just received a major update. 


Here's what's new:

  • supports both iOS and macOS (demo app coming soon)
  • supports latest InputStick firmware
  • supports encryption (AES 128) and authentication (HMAC-SHA256)
  • ready to use InputStick-related UI components (no need to write custom UI anymore)
  • separated UI from core-logic (easier to integrate and customize the API)
  • many minor improvements and bug fixes (many parts were redesigned from scratch)


InputStickDemo application

InputStickDemo shows how to use the API in iOS application. You will learn how to:

  • use InputStickMenu and other ready to use UI components
  • manage InputStick connection
  • perform HID actions (keyboard, mouse, touch-screen, etc.)
  • implement mousepad area, intercept keys from soft keyboard, implement simple gamepad
  • check state of HID buffers
  • send and receive InputStick packets


Demo app: main menu

Demo app: HID keyboard actions
Demo app: type with soft keyboard



Demo app: mousepad area

Tuesday, 8 January 2019

KP2A plugin v1.35

What's new in v1.35:

in order to comply with new Google Play store requirements, option to intercept incoming SMS messages (that allowed to type text from SMS) was removed.

At this moment there are two options being considered to bring back this feature:
  • separate version of KP2A InputStick plugin, distributed outside of Google Play store
  • external application for intercepting SMS messages, distributed outside of Google Play store
If you think that one way is better than the other, or that there is a better way to solve this problem, leave comments below.