From 3bfa383ceab0153d3722703dc62f91893fd3183f Mon Sep 17 00:00:00 2001 From: charitha Date: Wed, 22 Mar 2017 15:29:37 +0530 Subject: [PATCH] Adding Android-tryit tool (cherry picked from commit c3e241e) --- .../build.xml | 36 +++ .../pom.xml | 17 ++ .../src/assembly/src.xml | 10 + .../main/resources/android-tryit/README.md | 21 ++ .../android-tryit/resources/config.ini | 29 +++ .../src/main/resources/android-tryit/start | 243 ++++++++++++++++++ .../private/config.json | 3 +- .../public/css/styles.css | 2 +- .../public/images/android-tryit.png | Bin 0 -> 57530 bytes .../type-view.hbs | 66 +++-- .../type-view.js | 1 + 11 files changed, 404 insertions(+), 24 deletions(-) create mode 100644 components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/build.xml create mode 100644 components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/android-tryit/README.md create mode 100755 components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/android-tryit/resources/config.ini create mode 100755 components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/android-tryit/start create mode 100644 components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.type-view/public/images/android-tryit.png diff --git a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/build.xml b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/build.xml new file mode 100644 index 0000000000..9fbdb7899e --- /dev/null +++ b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/build.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/pom.xml b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/pom.xml index 027b1a8009..98d9dc4f99 100644 --- a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/pom.xml +++ b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/pom.xml @@ -35,6 +35,23 @@ + + maven-antrun-plugin + ${maven-antrun-plugin.version} + + + process-resources + + + + + + + run + + + + maven-assembly-plugin 2.5.5 diff --git a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/assembly/src.xml b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/assembly/src.xml index b76e367060..e363afd1f3 100644 --- a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/assembly/src.xml +++ b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/assembly/src.xml @@ -43,4 +43,14 @@ true + + + + ${basedir}/target/android-tryit.ZIP + + /devicemgt/app/units/cdmf.unit.device.type.android.type-view/public/assets/ + true + 755 + + \ No newline at end of file diff --git a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/android-tryit/README.md b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/android-tryit/README.md new file mode 100644 index 0000000000..e9c1f11234 --- /dev/null +++ b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/android-tryit/README.md @@ -0,0 +1,21 @@ +Prerequisites +=============== +1. You should have curl in your computer. +2. Java 7 or higher. + +Instructions +================= + +1. Run 'start' script in your terminal. +2. If you already have android sdk in your computer, please provide location of the sdk. + Otherwise this tool will download and install minimum SDK components which needs to run the emulator. + This is a one time process. +3. This tool will ask to create AVD if you don't have any in your computer. + Otherwise you can select existing AVD to try out IoT Agent. + + +Troubleshooting +================== + +1. If your exisitng SDK doen't work or giving any errors, delete 'sdklocation' file and try agin without selecting the existing SDK path. +2. If your emulator does not start correctly, please remove all files and directories in $HOME/.android/avd/ directory. Then try again with a new emulator. diff --git a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/android-tryit/resources/config.ini b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/android-tryit/resources/config.ini new file mode 100755 index 0000000000..b86c5fc3eb --- /dev/null +++ b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/android-tryit/resources/config.ini @@ -0,0 +1,29 @@ +avd.ini.encoding=UTF-8 +abi.type=x86 +disk.dataPartition.size=200M +hw.accelerometer=yes +hw.audioInput=yes +hw.battery=yes +hw.camera.back=none +hw.camera.front=none +hw.cpu.arch=x86 +hw.dPad=no +hw.device.hash2=MD5:6930e145748b87e87d3f40cabd140a41 +hw.device.manufacturer=Google +hw.device.name=Galaxy Nexus +hw.gps=yes +hw.keyboard=yes +hw.lcd.density=320 +hw.mainKeys=no +hw.ramSize=1024 +hw.sdCard=no +hw.sensors.orientation=yes +hw.sensors.proximity=yes +hw.trackBall=no +image.sysdir.1=system-images/android-24/default/x86/ +skin.dynamic=no +skin.name=720x1280 +skin.path=720x1280 +tag.display=Default +tag.id=default +vm.heapSize=64 diff --git a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/android-tryit/start b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/android-tryit/start new file mode 100755 index 0000000000..a8e1c71eeb --- /dev/null +++ b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/android-tryit/start @@ -0,0 +1,243 @@ +#!/bin/bash + +#Make sure we have got everything we need +command -v curl >/dev/null || { echo "curl is not installed. Aborting." >&2; exit 1; } +command -v unzip >/dev/null || { echo "unzip is not installed. Aborting." >&2; exit 1; } + +SCRIPT_HOME=$PWD + +OS_SUFFIX="linux" +if [[ "$OSTYPE" == "darwin"* ]]; then + OS_SUFFIX="macosx" +fi + +downloadArtifacts() { + curl -D headers -O $1 + httpStatus=$(head -1 headers | awk '{print $2}') + [ "$httpStatus" != "200" ] && { echo "Download failed. Aborting." ; exit 1 ;} + rm headers + echo +} + +setSDKPath () { + echo -n "Please provide Android SDK location (ex: /mnt/tools/android-sdk):" + read answer + emulator="$answer/tools/emulator" + if [ -f "$emulator" ]; then + echo "$answer" > sdklocation + else + echo "Invalid SDK location" + setSDKPath + fi +} + +getAndroidSDK() { + echo + echo "Downloading Android SDK tools..." + mkdir android-sdk + cd android-sdk + + downloadArtifacts "https://dl.google.com/android/repository/tools_r25.2.5-$OS_SUFFIX.zip" + echo -n "Configuring Android SDK tools..." + unzip -q tools_r25.2.5-$OS_SUFFIX.zip + rm tools_r25.2.5-$OS_SUFFIX.zip + echo " Done!" + + echo + echo "Downloading Android platform tools..." + downloadArtifacts "http://dl.google.com/android/repository/platform-tools_r25.0.3-$OS_SUFFIX.zip" + + echo -n "Configuring Android platform tools..." + unzip -q platform-tools_r25.0.3-$OS_SUFFIX.zip + rm platform-tools_r25.0.3-$OS_SUFFIX.zip + cd .. + echo "$PWD/android-sdk" > sdklocation + echo " Done!" +} + +createAVD() { + if [ ! -d "$ANDROID_TRYIT_SDK_HOME/platforms/android-24" ]; then + echo + echo "Downloading Android platform..." + cd $ANDROID_TRYIT_SDK_HOME + downloadArtifacts "https://dl.google.com/android/repository/platform-24_r02.zip" + echo -n "Configuring Android platform..." + unzip -q platform-24_r02.zip + mkdir -p platforms/android-24 + mv android-7.0/* platforms/android-24/ + rm -r android-7.0 + rm platform-24_r02.zip + cd .. + echo " Done!" + fi + if [ ! -d "$ANDROID_TRYIT_SDK_HOME/system-images/android-24/default" ]; then + echo "Downloading Android system image..." + cd $ANDROID_TRYIT_SDK_HOME + downloadArtifacts "https://dl.google.com/android/repository/sys-img/android/x86-24_r07.zip" + echo -n "Configuring Android system image..." + unzip -q x86-24_r07.zip + mkdir -p system-images/android-24/default + mv x86 system-images/android-24/default + rm x86-24_r07.zip + cd .. + echo " Done!" + fi + echo "Creating a new AVD device" + if [ -f "$ANDROID_TRYIT_SDK_HOME/tools/bin/avdmanager" ]; then + $ANDROID_TRYIT_SDK_HOME/tools/bin/avdmanager create avd -k 'system-images;android-24;default;x86' -n WSO2_AVD + else + $ANDROID_TRYIT_SDK_HOME/tools/android create avd -n WSO2_AVD -t android-24 + fi + rm $HOME/.android/avd/WSO2_AVD.avd/resources/config.ini + cp $SCRIPT_HOME/resources/config.ini $HOME/.android/avd/WSO2_AVD.avd/ + startAVD +} + +startAVD() { + if [ ! -d "$HOME/.android/avd/WSO2_AVD.avd" ]; then + echo -n "Seems you don't have WSO2_AVD. Do you want to create WSO2_AVD with default configs (y/N)?: " + read answer + if echo "$answer" | grep -iq "^y" ;then + createAVD + return + fi + fi + echo + echo "------------------------------" + echo "Available AVDs in the system:" + echo "------------------------------" + devices=() + count=0 + if [ ! -f "mypipe" ]; then + mkfifo mypipe + fi + $ANDROID_TRYIT_SDK_HOME/tools/emulator -list-avds > mypipe & + while IFS= read -r line + do + let count++ + echo "$count) $line" + devices+=($line) + done < mypipe + rm mypipe + echo "------------------------------" + echo + if [ $count = 0 ]; then + echo -n "No AVDs found on your system. Do you want to create new AVD (Y/n)?: " + read answer + if echo "$answer" | grep -iq "^n" ;then + exit; + else + createAVD + fi + elif [ $count = 1 ]; then + runEmulator ${devices[0]} + else + echo -n "Enter AVD number to start (eg: 1): " + read answer + let answer-- + runEmulator ${devices[$answer]} + fi +} + +runEmulator(){ + if [ $OS_SUFFIX = "macosx" -a ! -d $ANDROID_TRYIT_SDK_HOME/extras/intel/Hardware_Accelerated_Execution_Manager ]; then + cd $ANDROID_TRYIT_SDK_HOME + echo "Downloading intel HAXM..." + mkdir -p extras/intel/Hardware_Accelerated_Execution_Manager + cd extras/intel/Hardware_Accelerated_Execution_Manager + downloadArtifacts "https://dl.google.com/android/repository/extras/intel/haxm-macosx_r6_0_5.zip" + echo -n "Configuring HAXM..." + unzip -q haxm-macosx_r6_0_5.zip + rm haxm-macosx_r6_0_5.zip + ./"HAXM installation" -m 2048 -log $SCRIPT_HOME/haxm_silent_run.log + echo " Done!" + echo + fi + cd $SCRIPT_HOME + $ANDROID_TRYIT_SDK_HOME/platform-tools/adb kill-server + echo "Starting AVD $1" + $ANDROID_TRYIT_SDK_HOME/tools/emulator -avd $1 > emulator.log & + while [ ! -f "$HOME/.android/avd/$1.avd/cache.img" ] + do + sleep 1 + echo -n "." + done + count=0 + while [ $count -lt 5 ] + do + sleep 1 + echo -n "." + let count++ + done + echo +} + +echo "+----------------------------------------------------------------+" +echo "| WSO2 Android Tryit |" +echo "+----------------------------------------------------------------+" +echo "Detected OS: " $OSTYPE +if [ ! -f "sdklocation" ]; then + echo -n "Do you have Android SDK installed in your computer (Y/n)?: " + read answer + if echo "$answer" | grep -iq "^n" ;then + getAndroidSDK + else + setSDKPath + fi +fi +export ANDROID_TRYIT_SDK_HOME=$( mypipe & +while IFS= read -r line +do + if [ $line = "package:$pkg" ]; then + let hasAgent=true + fi +done < mypipe +rm mypipe + +if [ $hasAgent = false ]; then + echo + echo "Installing agent..." + cd $SCRIPT_HOME/resources + $ANDROID_TRYIT_SDK_HOME/platform-tools/adb install android-agent.apk +fi + +echo +echo "Staring agent..." +$ANDROID_TRYIT_SDK_HOME/platform-tools/adb shell am start -n $pkg/$act +echo +echo "Connected to device shell" +$ANDROID_TRYIT_SDK_HOME/platform-tools/adb shell +echo +echo "Good bye!" diff --git a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.type-view/private/config.json b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.type-view/private/config.json index 19c89fd378..d63751c8f8 100644 --- a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.type-view/private/config.json +++ b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.type-view/private/config.json @@ -1,7 +1,8 @@ { "deviceType": { "label": "Android", - "category": "mobile", + "virtualLabel": "Android Emulator", + "category": "hybrid", "analyticsEnabled": "false", "groupingEnabled": "false", "scopes" : [ diff --git a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.type-view/public/css/styles.css b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.type-view/public/css/styles.css index 56dc06903e..519c650595 100644 --- a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.type-view/public/css/styles.css +++ b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.type-view/public/css/styles.css @@ -59,5 +59,5 @@ hr { color: #006eff; } .enrollment-qr-container canvas { - width: 24%; + width: 14%; } \ No newline at end of file diff --git a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.type-view/public/images/android-tryit.png b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.type-view/public/images/android-tryit.png new file mode 100644 index 0000000000000000000000000000000000000000..4da14f77b61caeaa5e195848060f8c059ac78140 GIT binary patch literal 57530 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
-

DOWNLOAD THE ANDROID AGENT

+ {{#if isVirtual}} +

DOWNLOAD ANDROID TRY-IT EMULATOR

+ {{else}} +

DOWNLOAD THE ANDROID AGENT

+ {{/if}}
@@ -13,16 +17,24 @@ -
-

Scan to download the Android Agent.

-
-

or

-
- - -
- {{#zone "topCss"}} {{css "css/styles.css"}} {{/zone}} diff --git a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.type-view/type-view.js b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.type-view/type-view.js index ec164b6579..00f113e411 100644 --- a/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.type-view/type-view.js +++ b/components/mobile-plugins/android-plugin/org.wso2.carbon.device.mgt.mobile.android.ui/src/main/resources/jaggeryapps/devicemgt/app/units/cdmf.unit.device.type.android.type-view/type-view.js @@ -34,6 +34,7 @@ function onRequest(context){ // //do nothing. // } //); + viewModel["isVirtual"] = request.getParameter("type") == 'virtual'; viewModel["isCloud"] = devicemgtProps["isCloud"]; viewModel["hostName"] = devicemgtProps["httpsURL"]; viewModel["enrollmentURL"] = devicemgtProps["generalConfig"]["host"] + devicemgtProps["androidEnrollmentDir"];