The remote control feature allows administrators to troubleshoot devices that are enrolled with WSO2 IoT Server using the device management console. This feature is used to create a remote session, remotely control, send adb shell commands, view the device logs, and view the screen of an Android device.
Let's take a look at how you can start using it.
Before you begin!
- Make sure to enroll an Android device. For more information, see Android Device.
- Make sure that your Android device supports the Android Lollipop (API level 21) version or above to use the screen sharing feature.
- The enrolled device needs to be connected to the network at all times.
Create a remote session
Follow the steps given below to create a remote session between the device and WSO2 IoT Server:
Start WSO2 IoT Server's core profile, which corresponds to the WSO2 Connected Device Management Framework (WSO2 CDMF) profile
- Access the device management console:
https://<IOTS_HTTPS_HOST>:9443/devicemgt
For example:https://localhost:9443/devicemgt
- Sign in as an administrator. By default, the username is
admin
and the password isadmin
. - Click View under Devices.
You are navigated to the page that lists out all the devices that are enrolled with WSO2 IoT Server because you have administrator privileges. - Click on the device you want to start the remote session.
- Click the Remote Session tab.
- Click Connect to Device to start the remote session with the device.
Once the server connects to the device, you see the screen given below:
- To stop the remote sharing session, click Close Session.
Send adb shell commands
Follow the steps given below to troubleshoot the device using adb shell commands:
- Set up a remote session between your device and WSO2 IoT Server.
- Click Shell.
- Write the shell command and press the Enter key.
For example, if you want to get the CPU and memory usage of the device, use thetop
adb command
Sample output:
See adb shell commands to identify the available list of commands.
View device logs
Logcat displays messages in real time and keeps a history so you can view the old messages. Follow the steps given below to view the device logs.
- Set up a remote session between your device and WSO2 IoT Server.
- Click Logcat.
View the device screen
- Set up a remote session between your device and WSO2 IoT Server.
- Click Screen Share > Start.
- A message is sent to the device asking the device owner to share the screen with WSO2 IoT Server. The device owner needs to accept this message.
Once accepted, the administrator is able to view the device's screen, monitor how the device owner users the device, and troubleshoot the device.
- Click Stop to stop viewing the screen of the device.
Carry out actions on the device
Viewing the screen of the device alone does not help you to solve the issue. You need to be able to carry out actions on the shared screen to successfully troubleshoot the device. Follow the steps given below to try it out:
- Enable the Android System Service Applications.
- Build the system service application.
- Download the source code.
- The system service app can not be built via the usual Android developer Software Development Kit (SDK), as it requires access to developer restricted APIs. Therefore, you need to replace the existing
android.jar
file that is under the<SDK_LOCATION>/platforms/android-<COMPILE_SDK_VERSION>
directory with the explicitly builtandroid.jar
file that has access to the restricted APIs. You can get the newjar
file using one of the following options:Download the Android Open Source Project (AOSP) and build the source code to get the
jar
file for the required SDK level.Use a pre-built jar file from a third party developer. You can find it here.
Make sure to use the jar file that matches the
compileSdkVersion
of the WSO2 Android agent. The currentcompileSdkVersion
is 25.
- Open the system service application source code via Android Studio and clean build it as a usual Android application.
Sign the application via the device firmware signing key. If you don’t have access to the firmware signing key, you have to get the system application signed via your device vendor.
For more information of singing the system service, see Signing Your Applications.
Install the system service application by following any of the methods given below:
If you have your own firmware, the system service application is available out of the box with your firmware distribution.
Copy the signed system service APK file to the
/system/priv-apps
directory of the device.When the device boots or restarts for the first time, it automatically installs the application as a system application.
Install the system service application externally via an Android Debug Bridge (adb) command.
For more information on how this takes place on WSO2 IoTS, see Configuring the service application.
Enable the system service invocations through the WSO2 Android Agent application.
Make sure to sign the Android agent using the same device firmware signing key that was used to sign the System Service Application, else you run into security exceptions.
Navigate to the
Constants.java
class, which is in theorg.wso2.iot.agent.utils
package and configure theSYSTEM_APP_ENABLED
field as follows:public static final boolean SYSTEM_APP_ENABLED = true;
- Rebuild the Android agent application.
- Install the Android agent you just built to your mobile device.
You need to copy the APK to you device and install it. For more information on installing the Android agent, see Registering an Android device. Follow the steps from step 6 onwards.
- Build the system service application.
Restart or start WSO2 IoT Server's core profile, which corresponds to the WSO2 Connected Device Management Framework (WSO2 CDMF) profile.
- Access the device management console:
https://<IOTS_HTTPS_HOST>:9443/devicemgt
For example:https://localhost:9443/devicemgt
- Sign in as an administrator. By default, the username is
admin
and the password isadmin
. - Click View under Devices.
You are navigated to a page that lists out all the devices that are enrolled with WSO2 IoT Server because you have administrator privileges. - Click on the device you want to start a remote session.
- Click the Remote Session tab.
- Click Screen Share > Start.
- Click on the applications you want to open or the configurations you want to enable using the mouse.
- Click Stop to stop viewing the screen of the device.