I have A Samsung Galaxy Win Duos mobile and I'm using AT Command terminal on it. I tried several AT-Commands some got me the answer and some didn't.
As an example of commands that worked:ATand AT+CSQ
but a lot of commands didn't work like:AT!GSMINFO?
I want to know the commands that's suit my modem.
I tried AT+CLAC but it didn't work at all.(That's mean the program stopped)
I enteredATI to know the kind of modem and it got me:
Manufacturer: QUALCOMM INCORPORATED
Model: 4086
Revision: 8x25Q-QSOSKOLYM-3030 1 [Jan 29 2013 07:00:00]
IMEI: XXXXXXXXXXXXXXXXX
+GCAP: +CGSM,+FCLASS,+DS
Could you get me these command or help me to find a way for knowing them
You can find the standardized AT commands in the 3GPP spec here. Most modem manufacturers will add their own AT commands in addition to the 3GPP specification. Some manufacturers will give just about anybody a copy of their AT commands, some will not give it away without an NDA. You might also try joining the "developer program" at your manufacturer's website, assuming they have a developer program.
Related
The question is: how to determine (programmatically) which USB port was used when the USB flash drive was plugged in?
Context:
I am developing an app for an Android TV Box that lets you view files from a Pendrive. My device has 3 USB ports. I would like to know which of the port was used (some kind of ID, port name, whatever that could help me identify it in the code).
What have I done:
I read the android docs regarding USB as a host. None of the classes contains such information. The API is listing only devices which are plugged in but there is no information about the USB sockets. The deviceName is a string containing the path to a device file created in the android system but it is changing every time I plug in a USB flash drive (it looks like this /dev/bus/usb/007/008 the numbers, in the end, are different each time).
Looked into android sys files by adb shell command but couldn't find anything that describes the USB ports and says which one is currently in use.
Maybe someone encountered a similar problem? I'd really appreciate any help. Thanks in advance!
The Android operating system does not expose the information you are looking for.
Only with root access to the underlying Linux system below, can that information be obtained.
Use lsusb to enumerate the usb devices, and dmesg and mount to correlate the drive's mount point.
When I was setting up everything for my Android development in a Linux Virtual Machine (Oracle Virtual Box), I ran into the problem that Linux was not recognizing my GENESIS Tablet.
Despite it's not an official development device, I believe almost any device should work since we know their VendorID's and ProductID's.
Then I found some very useful guides on the web, such as:
1 - http://binglongx.wordpress.com/2013/03/05/use-android-devices-for-guest-ubuntu-os-in-virtualbox-on-windows-7-host/
or even
2 - http://esausilva.com/2010/05/13/setting-up-adbusb-drivers-for-android-devices-in-linux-ubuntu/
And...
Yes! I followed all the steps correctly, however, Linux still doesn't recognize my Android tablet.
1 - VendorID and ProductID were defined as a filter. (Yes, I tried to remove all the unnecessary fields but it was worthless).
2- And also I modify the 51-android-rules.
3 - And that's what I get.
Everything should be working fine but unfortunately is not. So that's it. I would appreciate any help and honestly hope it someday will help someone either.
Kind Regards,
Ok, so I've been struggling to solve this for a while. I found out that the problem was all about the Virtual Machine.
I did all the same steps on Linux (dual-boot) and it worked.
If you are developing for an unknown branded tablet device make sure you modify the 51-android.rules file. It's usually the main problem when it comes about identifying the USB device.
I've bought a tablet recently. It's a SysTrade's Plug 10.1 (Chinese product of local company). It features a reasonable CPU and quite nice GPU, so I thought it would be great to hardware debug my applications. However, this feature seems not to work on my device...
At beginning I lacked the required vendor id so after a few phone calls to SysTrade I received one. But that code didn't work. So I've written a small app and got all 2-byte numbers which I copy-pasted to /etc/udev/rules.d/51-android.rules. The problem is that adb still can't see my device. What's important my HTC Wildfire is successfully recognized so rules are written well.
I know none who owns this tablet so I don't have a possibility to check whether all Plugs or only mine are affected. Any ideas would be highly appreciated...
PS. I'm developing on Linux (Ubuntu 12.10).
PS2. When I connect the device to PC it shows that hardware debugging is turned on, but adb doesn't see my device.
I've managed to successfully resolve the issue without rooting the device. The only needed action is to manually add an entry for the device vendorid in ~/.android/adb_usb.ini.
Normally it should be generated based on /etc/udev/rules.d/51-android.rules by android update adb command but it seems that this application failed. What's important, vendorid must be given in hex number specific format, which is: 0x(2-BYTE HEX) for example 0x2207.
Try running adb on root.
If that doesn't work you can still try to root your device(This may void warranty) and use app like adbWifi. I'm using the latter for debugging and it works: I can run my apps on my M-tech aTAB7t.
I was trying to connect an ad-hoc network from Nexus S. However I realized the unpleasant news that Android does not support ad-hoc networking. After a quite amount of research, I found a work around which is:
a) Root the device and
b) Copy wpa_supplicant to system bin.
I'm totally unsure how much successful that would be. Being fairly apprehensive to further this method, I returned back to research and, unfortunately, ended up in vain.
Has anyone dealt this before? Is there any fix for ad-hoc networking in Android?
While Adnroid (at least 2.3) does not have interface for setting up Ad-hoc or Master modes, sometimes (like on my SE Xperia X10) you can just use iwconfig (need to be copied to device manually) and set it to Ad-hoc mode.
I use it sometimes, having scripts that ad-hoc mode on and off (there is even dhcp server configured on the device)
Well, I am facing the problem too. and was googling around and could not find anything worth sharing with you. Just a work around, Use ConnectifyME to create an AP in your PC and then you can use that AP (can say virtual AP) to share internet on your android device.
Hope this helps you.
There is a GUI program called Virtual router that is open source program and could be used to create WiFi, it uses virtual Wi-Fi feature in Windows 7.
For more description have a look at my post:
http://algorithmsea.blogspot.in/2012/12/ad-hoc-network-from-android-devices-i.html
adhoc isn't supported in android os but typing 2 lines DOS commands should solve the problem.
I tested this and it works.. type these 2 lines on DOS COMMAND PROMPT
netsh wlan set hostednetwork mode=allow ssid=NAME key=PASSWORD
netsh wlan start hostednetwork
I found this here : For Android users:Internet via adhoc is working without any app! : http://androiditnow.blogspot.com/2012/09/for-android-usersinternet-via-adhoc-is.html#.UXV0bUqlrGI
I'm trying to do kernel debugging for my Nexus One, and have been following instructions from http://bootloader.wikidot.com/android:kgdb. I was wondering if someone has actually got this to work? And has anyone done a more up to date solution for using KGDB to debug the kernel?
I found this post when I was looking for information of KGDB on Android so, despite it being a few years old, I thought it worth posting a link to some work I did to get this up and running on the Nexus 6.
http://www.contextis.com/resources/blog/kgdb-android-debugging-kernel-boss/
I hope this helps anyone else looking for similar answers.
Edited following feedback (thanks all):
To get this working I had to make a UART debug cable based on this Accuvant blog. This is quite a simple circuit which consists of a FTDI 3.3v basic breakout (available from SparkFun at the time of writing), as well as 4 resistors (2 x 1K Ohm, 1 x 1.2K Ohm and 1 x 100Ohm), and a 4-element Tip-Ring-Ring-Sleeve (TRRS) headphone jack. The resistors are essentially providing a voltage divider to reduce the 3.3v down to something a little safer for your phone. By inserting the audio jack with the other end connected to your circuit board, the audio subsystem recognises that a voltage (~2.8V) on the one of the pins and it knows to provide a UART interface via that cable. The FTDI breakout plugs into your PC via USB and from here you can access console messages via a terminal emulator like minicom. However, you now have a serial interface through the same mechanism and that's what we can use for a KGDB connection.
So at this point some relatively minor changes are required to the Nexus 6's serial driver (msm_serial_hs_lite.c) to support KGDB (specifically, the ability to perform atomic character I/O operations). I just ported these changes from the Linux Kernel mainline code as a chap called Stephen Boyd had done the hard work to the full MSM (Qualcomm) serial driver msm_serial.c. His changes can be found here or just search for "msm_serial: add support for poll_" on Google. The port wasn't difficult and my code can be found on github.
Aside from that you need to be able to build a custom kernel for your N6 which google provides lots of information on. You then need to create a boot image which contains the KGDB modifications in the github repo. I took the stock kernel from https://developers.google.com/android/nexus/images, extracted it (using abootimg -x) and then used the following command to repack it with my custom kernel (zImage-dtb) and additional command line params to ensure KGDB would be loaded and point to my serial port like so:
abootimg -u boot.img -k zImage-dtb -c 'cmdline=console=ttyHSL0,115200,n8 kgdboc=ttyHSL0,115200 kgdbretry=4'
With my boot.img created I could boot into it using the command fastboot boot boot.img, open an adb shell and then trigger a breakpoint in the Android kernel using the command:
echo -n g > /proc/sysrq-trigger
It is worth mentioning for completeness that you need superuser privileges to access /proc/sysrq-trigger so you need to have root.
With the phone halted, and your debug cable connected, launch a version of GDB for ARM on your host PC with your uncompressed kernel as an argument (e.g. arm-eabi-gdb ./vmlinux). Note: I'm running Ubuntu 14.04 and using arm-eabi-gdb from the 'prebuilts' directory in my AOSP source repository. Finally, enter the following commands:
set remoteflow off
set remotebaud 115200
target remote /dev/ttyUSB0
All being well this should immediately break into the kgdb breakpoint (that your write to /proc/sysrq-trigger produced) and you can start debugging.
I know that you've already asked a question at the Android Kernel Dev list and got no answers, but did you search through the archives for posts about kgdb and debugging?: http://groups.google.com/group/android-kernel/search?group=android-kernel&q=kgdb&qt_g=Search+this+group
In particular, you might want to look at this post: http://groups.google.com/group/android-kernel/browse_thread/thread/5233e03391867c98/320beef11e737a62
Here's a few other random links that might be helpful:
http://www.cs.gmu.edu/~astavrou/courses/ISA_673/Android_Debugging/Android_GDB.pdf
http://www.cs.columbia.edu/~nieh/teaching/w4118/ubb/Forum6/HTML/000122.html
http://wiki.ncl.cs.columbia.edu/wiki/AndroidVirt:Guides:Kernel_Debugging
http://source.android.com/porting/debugging_gdb.html
Anyhow, this is an interesting question, and I'm really having a hard time finding anything on it. You might want want to try hopping on IRC sometime (#android-dev or #android-root on freenode) and asking some people there for pointers (please post up what you find here), or maybe asking on the xda-developers Android forums.