ADB device communication protocol - Java for Android App Development

I am developing (currently in plan phase ) a framework to allow developers to connect to a remote android machine while working on eclipse.
The idea is, there will be a java program running on the developer's comp, which will behave as an emulator and pass all the adb commands to a remote machine (mac, windows, or linux: over net). There will be another java client app on that remote machine which will receive those commands and give them to the local adb demon (which in turn will give it to the connected android device).
This will allow remote debugging where direct port forwarding is not possible, like solving specific customer's issue.
Does such a framework already exist?
Where can I find the documentation on how to emulate an android device and how does adb demon communicates with the device?

Related

[Q] adb USB access from LXC container

Hi All,
This is a bit of a weird one - hope it's not totally off topic.
I am attempting to get adb to detect my device when adb is running inside a container/virtual machine. Specifics as follows: I am setting up a development environment in a container, specifically LXC (Linux Containers - similar in spirit to OpenVZ). I have managed to bind mount /dev/usb and /dev/bus. Running lsusb in the container properly detects the phone being attached and detached. I also have the relevant device files (e.g. with my current HTC Wildfire connected to the same USB port, /dev/sdd - with the correct permissions from within the container as far as I can tell...)
However adb still does not see the device ('adb devices' returns nothing, the server successfully starts up). I guess my question is how does adb determine the existence of device?
PS I know there are workarounds like running it over WiFi, or using the host machine for adb - it just defeats the purpose a bit of using a VM. Actually running over WiFi is nice, but Eclipse - I am not sure I can make it talk over wifi automatically... perhaps that's another avenue. I just want nice clean integration from a container. Too much to ask?

Developers, Don't Get EasyTether!

Developers, do NOT get EasyTether! EasyTether allows your 3G connection to be shared to your computer via the USB Cable.
HOWEVER, when you install the computer-side client of EasyTether, it saves a file that tells the computer to automatically mount the phone as a network spot when it is plugged in. This means adb won't find it (since it's not mounted as a device), and this means DDMS and "Eclipse Run on Device" won't work either. EasyTether is a great app, but developers shouldn't get it if you test apps on your device.
P.S. I learned this the hard way. It involved deleting system files and logging in as root on my Mac, as well as a few terminal commands.

[LINUX] - How To: UBUNTU on Dell Streak

EDIT: I can't post to XDA due to the fact that i just signed up for an account, but look at fards' copy of my post to see how to install Ubuntu on your Dell Streak
Here's Pats Post on modaco;
although it would be nicer to keep development discussion to just one thread, the more constructive input the better
Hello All,
I'm attempting to natively port Ubuntu and/or Debian to the Streak. With it being such a powerful device there really is no reason it SHOULDN'T be running a “desktop” operating system. However, implementing his is quite a difficult task, so if any and everyone's help would be very much appreciated.
In the mean time, this is my first guide on how to get ubuntu running piggyback on the Dell Streak. After quite a while (and numerous different trials), I have found that this is the easiest way to get Ubuntu Mobile up and running fast. All commands can be done through either ADB shell or the terminal emulator on the phone.
This was *NOT* done entirely by me, but is a culmination of the effort of lots of people in the android community. I just modified it so that it would work on the Streak.
**This Installation DOES NOT install Linux natively, and as such is should not be destructive to your Android system, however i take absolutely no responsibility for anything that happens and you do this COMPLETELY at your own risk**
Here is how to do it:
1) Root your phone. There are plenty of guides on how to do it, so find one and get root access on your phone.
**YOUR PHONE MUST BE ROOTED. THIS WILL NOT WORK WITHOUT IT.**
2) Download Ubuntu Mobile Bundle: http://uploading.com/files/bbm6b311/ubuntu.zip/
This contains an image of the filesystem as well as other necessary scripts to get it working.
2) Busybox - Install Titanium Backup from Android Market - if you press the "Problems" button it will install Busybox on your phone for you (Feel free to uninstall Titanium after this is done). This is the fastest and most pain free way to install busybox on the streak that i know of for now (the other ways of doing this ARE NOT fun...)
3) On your SD card's root directory, create a folder called ubuntu and extract all files in the ubuntu mobile bundle there.
4) Replace the bootubuntu executeable file in the ubuntu directory with mine, found here http://www.mediafire.com/?fi011w4fbmymw3y
5) Unmount phone from computer. ADB and Android Terminal will not work if the phone is mounted.
5) Download a terminal from the Android Market - I used Jack Palevich's Android Terminal Emulator (android market search: terminal) but anything similar should work the same
CODE
Code:
su
cd /sdcard/ubuntu
sh ubuntu.sh
6) Ignore any errors thrown up by ubuntu.sh. From this point, all that is needed to boot ubuntu is just to enter this:
CODE
Code:
bootubuntu
To start ubuntu from now on, this is all you need to do.
You should now have ubuntu working on your laptop, and while it DOES connect to your phone's internet sources, it DOES NOT yet have a graphical interface.
Here is how to add one:
1) Update the system with the following commands in ubuntu:
CODE
Code:
apt-get update
apt-get upgrade
The first one updates the package lists, the second one downloads updates to the system itself.
2) Install TightVNC in ubuntu:
CODE
Code:
apt-get install tightvncserver
3) Configure TightVNC:
CODE
Code:
export USER=root
vncserver -geometry 800x480
For security purposes, it is recommended that you assign a password to your VNC server when asked.
4) Download Android VNC Viewer from the market
5) Configure Android VNC Viewer:
Change the port to 5901 and type in your password that you entered before.
Other Problems
There appears to be a bug with the X window server sometimes refusing to connect to VNC. DO NOT change any settings on Android VNC Viewer, instead open a terminal and run the folloring command:
CODE
Code:
rm -R /tmp/.X11-unix
What Does Not Work – Will Try To Fix
Keyboard from Android VNC Viewer
Shutdown – Does Nothing
Reboot
Log Out
Native Install
I hope you guys enjoy this, and I can't wait to get your feedback.
- Pat
Click to expand...
Click to collapse
there was a thread about this but it wasnt work on me. now i am downloading and i will inform you again
what is the address for vnc ?
OMG! Could that be any slower on the download?
EDIT:
That sounded totally ungrateful - sorry!
Thank you very much for this
yeah works fine without problems.
it is better from g1 but not as well as a netbook. so only experimental use i think
I connected to the loopback 127.0.0.1 on 5901 and it worked - haven't seen how to connect to it remotely though
Edit:
Reading is fundamental - I can connect to it form another machine
now to fix the keyboard issue
in terminal emulator there is a note : localhost:1 vnc could work properly so i connect with only port and password.
is it possible to install jolicloud since its an ubuntu based system?
Newbie questions, sorry....
Before to try this port, just some maybe stupid questions for you:
- Still working the phone function?
- Is it easy to go back to standard or Steve Streaks Roms?
- Are there lack of drivers for bluetooth, gps, audio, wifi, etc?
Thanks.
No your missing the point here, this isn't an OS separate to android. Think of this as an app it runs on top of the android system. Also this is very experimental most features would be limited and no ubuntu can't be used as an smartphone os -No phone...
beginner said:
Before to try this port, just some maybe stupid questions for you:
- Still working the phone function?
- Is it easy to go back to standard or Steve Streaks Roms?
- Are there lack of drivers for bluetooth, gps, audio, wifi, etc?
Thanks.
Click to expand...
Click to collapse
1) Ubuntu does not replace android, and the UI only runs in a VNC server, so you can switch back and forth between ubuntu and the phone app (or angry birds?)
2) I installed mine on top of DJ Steve's 1.8.1 rom... It's not native, so it only runs on top of android instead of replacing it
3) Haven't tried audio yet, but it should work (let me know how it goes)... internet connectivity works and provided you have an internet connection enabled in android you can use tools like APT or Firefox in ubuntu... only problem is keyboard is a bit wonky...
For those who had trouble figuring out how to set up the VNC, here is a picture of my VNC configuration on my phone. If you find out the phone's IP address you should even be able to VNC into it from your computer (if your on the same wifi network)
Also, openoffice.org
- pat
Is anyone actively attempting to get Ubuntu running native?
audio not working
keyboard not working
also lots of lags.
ear0wax said:
Is anyone actively attempting to get Ubuntu running native?
Click to expand...
Click to collapse
Yes, i'm looking into it, but it's quite an uphill battle in order to get it working. I'll let everyone know when we make some progress.
www.cepdukkani.net said:
audio not working
keyboard not working
also lots of lags.
Click to expand...
Click to collapse
cause you are running 2 operating systems at the same time
But seriously, if ubuntu can run native (no android in the background) then the lag would be gone, and (if set up right) audio and keyboard would work.
- pat
could i recieve phone and uses sms?
Getting error
Hi all after passing command for booting ubuntu I get a error chroot can't find /bin/bash folder or directory missing
Sent from my Dell Streak using XDA Premium App
www.cepdukkani.net said:
audio not working
Click to expand...
Click to collapse
Im wondering if I install a rdp server instead of vnc if I can get remote audio working.
Ill post with whatever results i get once I'm done waiting 2 hours for the ubuntu image to download.
As for lag. I had a n900 running @600mhz and was doing a chroot into ubuntu and it ran fine, but it used xpyher not vnc. Is there any embedded X servers for android yet? (I highly doubt it)
data requirement for updating GUI pkg of Ubuntu
Can any body tell me size of the data required to update to gui ......as i m not using wi -fi i hv to stick on gsm data usage which is limited in my plan
Very cool!
I had lots of trouble rooting my 2.2.2, but finally got it done by running Gingerbreak twice in a row on a cleanly re-started Streak.
Thanks for a fun gig!

Indicator to manage ADB Wifi connections

I developed a little tool which can be used to connect and disconnect adb sessions to Android devices via wifi.
Maby some of you will find it handy
The tool is targeted at Ubuntu 12.04 or above but it should run on other distributions too.
The following libraries will be needed to run this program:
Code:
libgtkmm-3.0-dev
libglibmm-2.4-dev
libsigc++-2.0-dev
libappindicator3-dev
libsqlite3-dev
libnotify-dev
The code is available here
The License is GPL3.
32-Bit version and debian packages will follow soon.

Best way to access camera functionality from remote SSH command line?

Hi, I have a rooted Hauwei U8800 running 2.3.5 with SSH Droid installed. I've connected from my Linux terminal over SSH and would like to issue commands, or run a script to have the device take pictures over a SSH session.
What options are available for me to do this? Easier is preferable
Thanks.

Categories

Resources