About this app
What is CloudShell?
CloudShell allow you run Java code on remote Android devices. (Using BeanShell script)
From CloudShell, you can access native Android APIs from anywhere, all you need is a browser.
Once you install CloudShell and logged in, go to this site from PC to run the script on the device:
https://cloudshellapp.appspot.com
What can I do with CloudShell?
A lot!You can create your own features using Android APIs.
Whole Android APIs is available to you.
BeanShell is a powerful script engine,you can call Android native Java APIs from CloudShell.
For examples, you can test the new APIs on device you do not have physical access,
or with provider not in your country.
You can read the logs, and find out why your App is not working, and test the new codes in real-time,
on devices may not even in your country!
Check Android APIs at Runtime, even the hidden ones, inspect static variables, methods, classes
list all the action Intents.
You can make it vibrate if you do not remember where you put your phone.
If you lost your phone, you can location it, wipe it, or show Message on the screen.
You can write scripts to backup your contacts, your SMS.
You can write scripts to upload pictures to Facebook, Picasa, upload video to youtube.
It is up to you, the programmer to release the full power of CloudShell.
List of what you can do with:
- Android APIs at Runtime
- Android OS Version check
- Applications - list all installed
- Battery - get status
- Bluetooth - Turn on/off, scan
- Call - get call Logs, making phone call
- Clipboard, copy, paste
- Contacts - search Contacts
- Launch other Apps
- Location GPS/Network
- Logcat - read logs
- Rooted check
- Sensor - List all sensors
- SMS Inbox
- Sync Turn On/Off
Go this page for all the examples:
https://code.google.com/p/cloud-shell/wiki/Examples
Getting started
- Download and Install Android App first
- Log in to Google Account from the CloudShell App
- Go to: https://cloudshellapp.appspot.com/
- Log in using the same Google Account
- Start writing scripts!
Features:
- Autostart on Boot, or on WiFi
- Run BeanShell Scripts on remote devices
- Push Scripts to device
- Reset BeanShell
- Webview API bridge to run BeanShell scripts
- Support BroadcastReceiver, Events listener
- Remote wakeup
- Remote control, send Key Touch Events and Capture ScreenShot on rooted devices
- You can use hidden API like regular API, because BeanShell reflection, so instead of:
Method dataMethod = ConnectivityManager.class.getDeclaredMethod("setMobileDataEnabled", boolean.class);
dataMethod.invoke(cm, false);
In CloudShell, you can just do:
cm.setMobileDataEnabled(false);
Note:
- For better security, use a different Gmail account to login rather than your main Gmail account.
App Permissions
Allows using PowerManager WakeLocks to keep processor from sleeping or screen from dimming.
Allows applications to open network sockets.
Allows applications to access information about Wi-Fi networks.
Allows applications to access information about networks.
Allows applications to call into AccountAuthenticators.
Allows access to the list of accounts in the Accounts Service.
Allows applications to open network sockets.
Allows an application to write to external storage.
Allows an application to receive the ACTION_BOOT_COMPLETED that is broadcast after the system finishes booting.
Required to be able to reboot the device.
Allows applications to access information about Wi-Fi networks.
Allows applications to access information about networks.
Allows an application to read the low-level system log files.
Allows mounting and unmounting file systems for removable storage.
Allows an application to expand or collapse the status bar.
Allows an application to open, close, or disable the status bar and its icons.
Allows an application to delete packages.
Allows an application to install packages.
Allows read/write access to the "properties" table in the checkin database, to change values that get uploaded.
Allows an app to access approximate location.
Allows an app to access precise location.
Allows an application to access extra location provider commands.
Allows applications to call into AccountAuthenticators.
Allows an application to collect battery statistics
Allows an application to tell the AppWidget service which application can access AppWidget's data.
Must be required by an InputMethodService, to ensure that only the system can bind to it.
Must be required by a WallpaperService, to ensure that only the system can bind to it.
Allows applications to connect to paired bluetooth devices.
Allows applications to discover and pair bluetooth devices.
Allows an application to broadcast a notification that an application package has been removed.
Allows an application to broadcast an SMS receipt notification.
Allows an application to broadcast sticky intents.
Allows an application to broadcast a WAP PUSH receipt notification.
Allows an application to initiate a phone call without going through the Dialer user interface for the user to confirm the call.
Allows an application to call any phone number, including emergency numbers, without going through the Dialer user interface for the user to confirm the call being placed.
Required to be able to access the camera device.
Allows an application to change whether an application component (other than its own] is enabled or not.
Allows an application to modify the current configuration, such as locale.
Allows applications to change network connectivity state.
Allows applications to enter Wi-Fi Multicast mode.
Allows applications to change Wi-Fi connectivity state.
Allows an application to clear the caches of all installed applications on the device.
Allows enabling/disabling location update notifications from the radio.
Allows an application to delete cache files.
Allows applications to RW to diagnostic resources.
Allows applications to disable the keyguard if it is not secure.
Allows an application to retrieve state dump information from system services.
Run as a manufacturer test application, running as the root user.
Allows access to the list of accounts in the Accounts Service.
Allows an application to find out the space used by any package.
This constant was deprecated in API level 21. No longer enforced.
This permission can be used on content providers to allow the global search system to access their data.
Allows an application to install a location provider into the Location Manager.
Not for use by third-party applications.
Allows an application to modify global audio settings.
Allows modification of the telephony state - power on, mmi, etc.
Allows formatting file systems for removable storage.
Allows an application to collect component usage statistics
Declaring the permission implies intention to use the API and the user of the device can grant permission through the Settings application.
This constant was deprecated in API level 9. This functionality will be removed in the future; please do not use. Allow an application to make its activities persistent.
Allows an application to see the number being dialed during an outgoing call with the option to redirect the call to a different number or abort the call altogether.
Allows an application to read the user's calendar data.
Allows an application to read the user's contacts data.
Allows an application to take screen shots and more generally get access to the frame buffer data.
This constant was deprecated in API level 16. The API that used this permission has been removed.
Allows read only access to phone state, including the phone number of the device, current cellular network information, the status of any ongoing calls, and a list of any PhoneAccounts registered on the device.
Allows an application to read SMS messages.
Allows applications to read the sync settings.
Allows applications to read the sync stats.
Required to be able to reboot the device.
Allows an application to monitor incoming MMS messages.
Allows an application to receive SMS messages.
Allows an application to receive WAP push messages.
Allows an application to record audio.
Allows an application to change the Z-order of tasks.
This constant was deprecated in API level 8. The restartPackage(String] API is no longer supported.
Allows an application to send SMS messages.
Allows an application to control whether activities are immediately finished when put in the background.
Modify the global animation scaling factor.
Configure an application for debugging.
This constant was deprecated in API level 7. No longer useful, see addPackageToPreferred(String] for details.
Allows an application to set the maximum number of (not needed] application processes that can be running.
Allows applications to set the system time zone.
Allows applications to set the wallpaper.
Allows applications to set the wallpaper hints.
Allow an application to request that a signal be sent to all persistent processes.
Allows an app to create windows using the type TYPE_APPLICATION_OVERLAY, shown on top of all other apps.
Allows an application to update device statistics.
Allows using PowerManager WakeLocks to keep processor from sleeping or screen from dimming.
Allows applications to write the apn settings.
Allows an application to write the user's calendar data.
Allows an application to write the user's contacts data.
Allows an application to write to external storage.
Allows an application to modify the Google service map.
Allows an application to read or write the secure system settings.
Allows an application to read or write the system settings.
Allows applications to write the sync settings.
Allows access to the vibrator.
Allows an application to read from external storage.