Thursday 24 October 2019

USB Remote for iOS v1.50

Added "Macros" Extension (Widget):

The widget allows to execute Quick Macros with a single click without having to open USB Remote app. The widget will automatically connect to the most recently used InputStick device, execute selected macro and disconnect few seconds after macro execution is finished.

To manage Quick Macros go to: Control tab → Settings Macros

Important: USB Remote and its Extensions cannot be both connected to InputStick at the same time!


USB Remote Macros Extension

New format for storing macros:

All macros will be automatically converted to a new file format. This will allow to introduce sub-directories, import and export macros in upcoming app updates.

Other:


  • bug fixes
  • minor improvements


Saturday 5 October 2019

InputStickUtility v2.00 (iOS)

Many improvements and bug fixes:

Even though the app looks almost identical to previous release (v1.01), significant parts of the app were redesigned from scratch. Application is now also more user-friendly, providing more detailed error messages and possible solutions when a problem is encountered. 


Minor UI changes:


  • application will mark recommended actions (enabling password protection, firmware update) and required actions (provide password)
  • application will provide explanation if there is a encryption-related problem or configuration changes are locked
  • firmware update, USB configuration and security-related screens were slightly redesigned


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.

Firmware update

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 password
  • 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

Added in-app 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

Wednesday 25 September 2019

KP2A plugin v1.41

Added option to keep plugin constantly running in the background:

If the plugin is not working correctly on your device:

  • entry/field actions are (sometimes) not displayed
  • entry/field actions are displayed but do not work at all when selected


you can now set the plugin to always run in the background, to see if it helps in any way:
Settings → scroll to the very bottom → check Never stop plugin

Note: it seems like in some cases, turning off battery optimization for the plugin may help:
System settings → Apps -> KP2A InputStick Plugin → Advanced → Battery → Battery optimization → add the plugin to list of Not optimized apps 
You should try this first, before enabling Never stop plugin.


Other:

minor bug fixes and improvements

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

In order to make InputStickUtility compatible with Android 10, it was necessary to make some changes that make it no longer compatible with some apps using older versions of InputStick API  when running on Android 8 or higher (USB Remote and KP2A plugin are NOT affected by this issue).

Android 10 (and some Android 9 devices):

  • you must update InputStickUtility to v2.00 (older versions will not work correctly)
  • if an app crashes on connection attempt, ask its developer to rebuild the app using the latest available InputStick API (more info below)

Android 8 - Android 9:

  • you should update InputStickUtility to v2.00
  • if an app crashes on connection attempt, ask its developer to rebuild the app using the latest available InputStick API (more info below)
  • if that is not possible, download InputStickUtility v1.60 (link below)

Android 4.4 - Android 7.1:

  • you should update InputStickUtility to v2.00
  • all apps should work normally (even older ones)

Android 2.3 - Android 4.3:

  • your device is not supported by InputStickUtility v2.00, download InputStickUtility v1.60 (link below)
  • all apps should work normally (even older ones)

Download URLs:

InputStickUtility v2.00 (Google Play Store)
InputStickUtility v2.00 (.apk)
InputStickUtility v1.60 (.apk, signed with debug certificate, will not get updated via Google Play)


More details:

  • USB Remote and KP2A InputStick plugin use latest InputStick API and are 100% compatible with InputStickUtility v2.00
  • 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 line:

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.