Related
CES is upon us (well soon) and I will be attending the conference along with about 300,000 others. However, I doubt there are many others with the intention of coming back with a bit of honey as I am.
Motorola will supposedly have their honeycomb tablet there, among other manufacturers I'm sure. What would be the most surefire way to bring back some bits and pieces of the software for us to tear apart?
My plan upfront was to create a zip file of the entire /system partition and then upload it to a server. Chances are whatever I do, I'll have to do it fast. If I'm crowding a device, it will probably look suspicious. What are the most surefire ways for me to pull system data off of the device, compress it, and upload it in a usable format? Obviously a nandroid backup is out of the equation, as is anything that will take more than 5 minutes to accomplish. I think I could probably upload the file in the background of the device, so the time I have will be for making the copy.
So what do you think? Any software I should look into that will help the cause? Anything else that I might be overlooking? Also, totally into some feedback here if anyone thinks this is just a dumb idea to begin with.
tl;dr: whats the quickest way to archive an entire android system partition and upload it to a server using tools only available on the device?
dude, you GO buddy! just don't get caught huh?
ok, so I looked into what this is going to take and I think i have a game plan. Someone please step up and tell me if this is out of line:
Assuming I can get to actually play with the device: download a terminal emulator. I should have the apk prepared and ready to go on my own personal server along with a few backup versions.
Download a binary from my server that allows zip access. I should be able to use gzip or bzip2, both are in busybox, so that might be another step. Assuming that I get the binaries for those, the next step would be creating a /bin/ file in the /data/ directory. (I am not sure if this will work. I need to do more research, but I think that would be in the path.) I would have to do this all from /data/ because obviously, I wont have root access (I think... this would be so much easier if moto decided to leave su on the phone )
Run gzip or bzip2 on the /system/ partion, saving to /sdcard/. Using the browser on the phone, upload this file to mediafire or similar filesharing service. Or, better yet, bluetooth it to another personal device nearby. My estimations say that would take about 15 minutes though to complete the transfer.
Anyone see any flaws?
Im kinda of a turb0 n00b but I love this idea, hopefully superuser is on the device, the place will be packed, just find a buddy or two to help distract the other demo hosts. Hopefully it will be crowded enough where you can just dissappear if something goes wrong.
I love the idea and I hope it works. Sorry I couldn't offer any technical advice.
if they suspect something just start rebooting the device hopefully to cover it up, maybe load something on your server where you can type a command and hopefully wipe any logs/traces of tampering etc.
man, I hope this works!
Last year, Moto's booth had a good distraction vs employee ratio. They had a stage set up in the middle of the booth with performers doing amazing juggling and stupid human tricks. Distracted almost everyone. Should give me my five minutes.
The only thing I'm worried about is that the tablet will be under glass and not user handleable. We will see what happens.
I'd say try to background everything unobtrusively so you can leave and still have it running, then check mediafire frequently so that Moto doesn't have enough time to find what you've done and issue a takedown notice. It's pretty easy to mount an ftp server in Windows, so once it's done uploading you could whip out a laptop and download it directly to your server. I would also like to offer my services for mirroring. If you need access to my server from CES, PM me and I'll give you an account with r/w access to a separate directory (can't be too careful) so you can upload.
Oh, and if it has GApps, just download Astro and zip /system into /sdcard or wherever, then bluetooth it to yourself.
DesireC said:
Oh, and if it has GApps, just download Astro and zip /system into /sdcard or wherever, then bluetooth it to yourself.
Click to expand...
Click to collapse
Will astro handle a zip operation? And do you think its capable of zipping the entire system partition?
And even if it didnt have gapps, I could grab the astro .apk and have it ready on my server when I get there.
That would be WAY easier than downloading the binaries from busybox and running all of this through CLI (although less fun )
I think I need to find a more graceful way to get the file onto a server once I've dumped it. Know of any ftp applications?
On a semi-related note, there are announcements left and right about honeycomb from other manufacturers besides Moto that will have goods at CES. that means that if the moto tabs are locked down or my process fails there, I can try with other vendors!
If at CES they have a open WiFi network you could use a FTP service on your phone and dump data onto there, so that way you can stay untraceable.
I wish I could help you with ziping the system or whatever but I have no experience with Android....yet .
Good Luck!
If there is such a high level of interest why doesn't moto just make it available?
Sent from my T-Mobile G2 using XDA App
Well, bad news. According to Moto's PR, they wont have the tablet on display at this year's CES. It's just "not ready".
That is not to say, however, that there will not be other Honeycomb tablets available. I still have my tools prepared and I'm ready to get what ever I can. Project Honeypot is still a go!
project honeypot... lol
man I wish you the best!
Well..., anything?
How'd it go dude?
I have installed an Android Application which was developed by the friend of mine. It had installed on my Android phone (HTC G2, with Android 2.2). I need to locate the application forlders, and especially SQLite database which was created along with the application, because I need to copy it to my PC. I did seach on SD card but I did not found it, so I assume it must be on the device RAM, but I really don't know the structure and how the apps are organized. I might suspect the SQLites data filename, but that all I know at the moment.
Can somebody pint me to some utility which will allow to find the database, and the application path, and most of all to copy it to the PC ???
Thanks - Arthur
The database and any other "data" used by the app will be located in /data/data/ then inside a directory that corresponds to the app's package name. If we use the Kindle app as an example, the path to it's data would be: /data/data/com.amazon.kindle
unfortunately I checked this foldeor on RAM as well as SD and couldn't find it. device /data folder is empty, and SD gas some other stuff bot not this App.
aklisiewicz said:
unfortunately I checked this foldeor on RAM as well as SD and couldn't find it. device /data folder is empty, and SD gas some other stuff bot not this App.
Click to expand...
Click to collapse
I should have also said, you need to be rooted in order to see the contents of the /data directory. Without root access, it will be shown as empty because you do not have permission to view or modify. If your phone is rooted, you can use Root Explorer, Terminal Emulator, or adb to access /data and copy, modify, create, or delete files there.
Thank you for your time. That would explain why I do not see it.
OK, I have HTC G2 from T-Mobile, I think it has Android 2.2
Nothing was changed or updated on this phone since I bough it last fall. I'm not with T-Mobile anymore so I do not wat to mess up with the phone unless I'm really sure what am I doing. The only nice thing is that the phone is unlocked now. The reason I ask those questions is because I am working on some tool, which is a desktop program wchich supposed to sync SQLite data from device to the PC.
What I want to do is to connect the device through USB cable, then have it mapped is it normally does (i.e. drive H. Then access the SQLite file from the desktop application by opening the database through that link and syncing the records. Not sure but I hope this approach would work. If it cannot work that way then eventually I want to copy the SQLite dB file to the PC sync database and then copy it back to the device. I already have a desktop App which work on SQLite localy so now I want to access the device, having the same dB file residing on my android phone instead on my local HD.
What could be the reason that the installed APP doesn't want to move to SD ???
I would appreciate any suggestions...
What is required to root the phone? I've herd there are some risks. Besides I probably have to find some other solutions as none of the App users would want to root their devices (or have a knowledge how to do it).
aklisiewicz said:
Thank you for your time. That would explain why I do not see it.
OK, I have HTC G2 from T-Mobile, I think it has Android 2.2
Nothing was changed or updated on this phone since I bough it last fall. I'm not with T-Mobile anymore so I do not wat to mess up with the phone unless I'm really sure what am I doing. The only nice thing is that the phone is unlocked now. The reason I ask those questions is because I am working on some tool, which is a desktop program wchich supposed to sync SQLite data from device to the PC.
What I want to do is to connect the device through USB cable, then have it mapped is it normally does (i.e. drive H. Then access the SQLite file from the desktop application by opening the database through that link and syncing the records. Not sure but I hope this approach would work. If it cannot work that way then eventually I want to copy the SQLite dB file to the PC sync database and then copy it back to the device. I already have a desktop App which work on SQLite localy so now I want to access the device, having the same dB file residing on my android phone instead on my local HD.
What could be the reason that the installed APP doesn't want to move to SD ???
I would appreciate any suggestions...
What is required to root the phone? I've herd there are some risks. Besides I probably have to find some other solutions as none of the App users would want to root their devices (or have a knowledge how to do it).
Click to expand...
Click to collapse
Took me a bit to get back to you but figure better late than never...
Here is a good FAQ on rooting among other things specific to the G2(the US variant of the Desire Z). In order to root your G2, this guide looks to be good as he's simplified and automated a good bit of the process, should be safe, and seems to work. You'll need to install the two apps he mentions in step 1 and download the zip file he mentions in step 2 which is attached at the bottom of the post then just follow the instructions.
As for the database stuff, if you end up needing to access the /data directory you'll have to be rooted. Also, moving the app to the sdcard won't really help you with having access to the app's files. Froyo built-in App2SD just moves the apk file to a hidden directory on /sdcard (.android_secure) but the app data, cache and all that stuff will still be on internal memory. But to answer why the app won't move to the sd card, I'm guessing it's because the app itself must allow for it to be moved since by default, an app doesn't have this enabled unless the app dev gives it that ability.
To communicate with the phone, even with root access, you'll probably have to do so through adb commands or use an adb shell to be able to run shell commands on the phone. This would require adb be set up on the user's computer. If you want to play around with adb, there's a nice guide called ADB for Noobs that goes through setting it up and starting out using it. I can't say I've really done anything with SQLite databases on Android and certainly not then syncing it to a computer so I could be off-base or overlooking a workaround.
Thank you for your valuable information. You guys are really great help, and I appreciate your time. I will study the links provided.
In the meantime my main concern is to access SQLite database, as I need to get to the records, or at least be able to copy it back and forth between device an PC. I guess the database file would be something like MyDatabase.db , but I have no cule how to find it and copy it. As you have said it might be in some system protected directory. The main issue is that I will ne a solution which would work on every standard device (no the rooted one), so I need something very easy for the user to setup and follow. I have seen a utility that allow to manipulate SQLite records directly on device, but again thsi tools requires to root the phone (which I'm reluctant to do) because ot the above reasons. If you could help my to resove this I would be very graceful!
Arthur
aklisiewicz said:
Thank you for your valuable information. You guys are really great help, and I appreciate your time. I will study the links provided.
In the meantime my main concern is to access SQLite database, as I need to get to the records, or at least be able to copy it back and forth between device an PC. I guess the database file would be something like MyDatabase.db , but I have no cule how to find it and copy it. As you have said it might be in some system protected directory. The main issue is that I will ne a solution which would work on every standard device (no the rooted one), so I need something very easy for the user to setup and follow. I have seen a utility that allow to manipulate SQLite records directly on device, but again thsi tools requires to root the phone (which I'm reluctant to do) because ot the above reasons. If you could help my to resove this I would be very graceful!
Arthur
Click to expand...
Click to collapse
Unless there is some trick I don't know about you are going to have to be rooted to get access to the database. I found a couple links discussing this: here and here. The second link does mention that the app with the database you want to access could be written to store the database on the sdcard where it would then be accessible but that would be unsecure since anything could read/modify it there.
Thanks, looks like I have to do more research on my own. It is hard to believe for me that Google would not allow to access the same database from different Apps. I've seen there is a Java class ContentProvider which seems to allow that, so I will study this, perhaps it will help. Thank for you help.
Arthur
I tried to make the subject as small as possible while still stating my point.
Basically I work with a device a lot that runs some machinery. There is a file that is sometimes updated to run the machinery better, we usually update the file on the device when some aspects of the equipment are changed. The file is pushed onto the device using software on my laptop. The software on the laptop is written in C++. I want to make a light version to run on my android phone.
My idea is to create a simple program to run on my android phone that will push the file onto the device after it's edited for changes to the equipment. I opened the C++ exe program in a decompiler (rec4) and I started trying to dig through the code, there are soooo many lines of code in this program, and I don't even know what string to look for. I'm trying to find the exact string that pushes the file to the string so I will know how to write the exact thing in an android program language for my phone only to push the file to the device after I plug it in through the USB connection. That way I have a simplified version of the program running on my phone solely for pushing the file to the device, instead of carrying my laptop around all the time to push a little file.
In a nutshell, after I have described why I need this, I'll simplify everything. A program I have is written in C++ and it pushes a simple file to the flash memory of a device that runs some equipment. I want to be able to push the file from my phone instead of my laptop. So I want to know the string to look for that would push a file onto flash memory.
How the program works. If I have the program already running when I plug in the USB, I have to select "file", then "establish connection" so that it connects, The program appears on my laptop to reconfigure it. I search for the new file to replace the old one and send it to the device. By default the program tries over COM1. It has to be changed for my laptop because it's new and doesn't have the com1 connection, I have a USB adapter that I use.
I hope I explained this well enough, it's really not as complicated as I'm making it out to be.
So does anyone know where I can look up the C++ command arguments to push the file onto the device? And also what the command arguments would be for android to push the file onto the device via USB?
Hello,
If you are a developer you might want to look at this link:
http://developer.android.com/reference/android/hardware/usb/package-summary.html
If you aren't, I am afraid this isn't going to be as simple as looking for strings in a decompiled program and translating the code to different languages. You might want to get a developer to make this application for you.
If possible can you also give more info on this device? Is it like you plug in the device to your laptop and you can access it like any USB memory drive? Or the device can only be accessed using that program?
Edit:
The android.hardware.usb was apparently introduced in Android 3.1. So you won't be able to use that to make an application that you described for your phone...
The device basically controls an advanced machine with multiple inputs sensors and output and switches. It has it's own power supply, it just needs updating every now and then to refine/change the cycles and rotations. I contacted the company that makes the device, and they said they haven't made any software to run on android. They couldn't give me any information on how the laptop program communicates with the device. It seems like the file that needs editing is just stored back on the device in flash memory. When the laptop is plugged in and a connection is established, the information that makes up the configuration file appears on the laptop program from the device. I don't know if the program pulls and reads the file, or if the device copies it to the laptop. It's probably the laptop that reads it.
I'm not a developer, I know a little about programming from college, and I have enough patience to sit and read or watch videos until I know how to make something that works. I know a guy that talks a lot about making android programs, maybe I can ask him for pointers.
My android phone has a mini USB port, what's the new thing that's in android 3.1 that's not in my 2.2 regarding USB? Is the USB on the android 2.2 limited in what it can do? I know mine can tether and transfer files, but is that something that the computer does instead of the phone?
I'm trying to find another HTC HD2, I sold mine and I shouldn't have. I've heard a little about people putting android 3.1 on the HD2, I'm not sure if that's true, but I'll look more into it.
If its a file that the device is reading the data from, you'd also have to find out how the data is exactly being stored in the file. I guess this could be figured out through the decompiled program or maybe if you can access the file yourself somehow.
The thing is that the package(android.hardware.usb) that allows you to write applications in which your phone can act as a USB host(I guess this is what you want your phone to behave like in this case) was introduced in Android 3.1 and its not present in Android 2.2.
That doesn't necessarily mean that you cannot have such an application on your phone. It just means that you cannot use the Android Java API to make something like this. I am not too sure how it can be done but I guess it is possible to make an application like the one you want that runs on a rooted phone maybe?
I am sure anyone can learn to write programs/applications but its just that you'd have to put in a lot of time and effort to make something like this. If you are in no rush to have the application ready then its fine if you learn to make it yourself. And since its a custom made application and the people who made it aren't willing to help you by giving info on it just makes it that much harder for you.
yeah, when I get another HD2 it's getting rooted with android, I just have to find one. Since I sold mine they have made it to where you can run android off of internal memory, so I'm itching to get it back.
The laptop program also has the option to save the configuration file locally, I haven't thought about looking through that. I didn't think it would tell me much.
So theoretically, if I were to write a program for the android phone with usb transfer capability to the device in question would it work? It doesn't bother me if I have to root my phone.
If the device is reading data in from the file, and you wish to write a program that creates this file, you will have to take care that the program you are making writes the file in very same format and saves the file back in the same location on the device where it will look for this file later.
If you made this application for an android device that has USB Hosting capabilities, it should work (as far as I know).
The question is: How can you get your phone to have USB Hosting capability? I don't know if rooting your phone would do it. You'll have to find out about this.
I'm not creating the file..I just want to make a program to push the file.
Hey Everyone,
I thought about posting this into the mobile kepler thread because thats where I started from. However, no one else running mobile kepler seems to have this issue.
I have a macbook pro running windows 8 in boot camp. I installed steam (beta client enabled), geforce experience and the latest beta graphics drivers. Games work great while playing on the laptop (burnout, GTA 4 and Half Life). The registry hack to skip mobile GPU check works to enable streaming to the shield. When go into shield streaming on the shield, it sees the laptop and games. I can pick Steam and it changes the resolution on the laptop and steam opens and goes into big picture mode.
Sound and video stream to the shield fine. But I can't control anything with the shield. I can control anything with the touchscreen or with the controller. If i go into settings in big picture mode (with the mouse on the computer), I can click on Controllers and it says none detected. This is the case in every game as well. Sound and video make it to the shield without issue, but I can't control anything.
I have tried restarting, reinstalling geforce experience, trying non-beta graphics drivers, etc. Nothing seems to work. I had also installed Splashtop streamer (just because I use that product on every machine I have) and I thought that might be conflicting with things. But uninstalling it did not help.
Has anyone experience this? Anything I can try to get it to work?
There are other people reporting similar issues on the GeForce forums. There are two issues that I've seen.
1. SecureBoot incompatibility - seems unlikely for you since the Mac's EFI version doesn't support it.
2. Short file name issue
The way that NVIDIA gets their input DLL loaded into every process is using a registry value that only supports short file names. If short file names are disabled for some reason, it won't be able to load the DLL and the controller won't work.
There's more info in the forum links from this post. http://forum.xda-developers.com/showpost.php?p=44678873&postcount=40
Thanks for your reply. I did some research after posting and found those two items you mentioned. Mine Mac is booting in Legacy mode so thats not the issue. I tried the short name recommendation which was to change 8dot3name to 0 (mine was originally set at 2) and then uninstall geforce experience and drivers, delete the Nvidia folder from both program files folders and then restart and reinstall. That hasn't solved the problem. I also tried changing it back to 2 and and doing the same with no success.
Supposedly NVIDIA is testing a fix internally and it should be out this month. I'm just worried that my issue has something to do with boot camp. I have seen others with MacBook pros on here getting this to work and I don't really see what the difference is between their setup and mine that is causing this to not work.
Does windows keep logs of errors of things it couldn't load? I imagine if the registry was telling windows to start something but it couldn't find it on the disk (due to short names) it would throw an error right? (sorry, I'm mostly a mac guy so I don't know what the PC equivalent to Console.app is)
jeffburg said:
Does windows keep logs of errors of things it couldn't load? I imagine if the registry was telling windows to start something but it couldn't find it on the disk (due to short names) it would throw an error right? (sorry, I'm mostly a mac guy so I don't know what the PC equivalent to Console.app is)
Click to expand...
Click to collapse
is console.app the terminal? If so on windows its cmd (hold windows key + R to open the run dialog, enter cmd, OK) but windows cmd is vastly inferior to the mac terminal in my opinion (I am a windows guy, just saying, the windows command line isnt as good as the one on UNIX like systems).
The windows event log can be opened from control panel. http://www.techrepublic.com/blog/wi...ack-down-issues-that-cause-slower-boot-times/.
Console looks to be equivalent event viewer. Thanks for the suggestion. I should be able to inspect it tonight and look for errors loading the rxinput dll file.
Wow. What an annoying issue. So the problem was that my Program Files folders don't have short name. On top of that when I try to give them short names with admin prompt and fsutil file setshortname it says permission is denied. I'm assuming this is because the Programs files folders are super super system folders.
I tried using %PROGRAMFILES% in the registry entries for rxinput.dll but that didn't work either. So I found the jankiest workaround ever. I copied the dll to the C drive root and then linked the registry to that file. (I actually copied the both dll files. one is under Program Files X86 and on under regular)
Now it works!!!!!
Jankiest workarund ever... but it works.
jeffburg said:
Wow. What an annoying issue. So the problem was that my Program Files folders don't have short name. On top of that when I try to give them short names with admin prompt and fsutil file setshortname it says permission is denied. I'm assuming this is because the Programs files folders are super super system folders.
I tried using %PROGRAMFILES% in the registry entries for rxinput.dll but that didn't work either. So I found the jankiest workaround ever. I copied the dll to the C drive root and then linked the registry to that file. (I actually copied the both dll files. one is under Program Files X86 and on under regular)
Now it works!!!!!
Jankiest workarund ever... but it works.
Click to expand...
Click to collapse
Wow, bit of an odd one. Good that you got it sorted though :good:
With windows you often have to take "but it works" as the correct solution There probably is a better way in this case (taking ownership of program files and then trying to make the changes you require first before resetting the ownership is what I would have looked at doing) but if it works now your probably best to just leave it rather than tempting the computer to say no again
Hi all.
I'm after quite specific need but would like to know more general answer / solution if possible at all.
I know that wihtout being rooted there's not much one can do with system folders, but still, there are some ways and tricks to get to them, one of them being Backup option provided by android, using ADB shell.
I'm after specific file, that is /data/data/com.android.mms/shared_prefs/com.android.mms.categoryInfo.xml
Using Htc One M8, stock rom, I've tried to do adb backup of com.android.mms application, but all I got was 1kb (actually 41 bytes) sized file, which contains nothing.
I wonder, is there any other way to get to the specific system app folder, if you're NOT rooted?
Any help would be highly appreciated.
Additional info: I'm after that file because it has stored Secure message box password in Plain text. My phone is about to go to the service due to several issues, including battery getting way overheated when used, and not charging over 25% at all, and the only thing left to make a backup is the secure box storage, which I used as an "Other inbox" folder in order to have the main Inbox a bit more "clean", and I know I've set it to something stupid and short, and I've accessed them not long ago, but for the f's sake I can't get in the folder anymore (and I'm highly betting that after several attempts even the real password is no longer accepted, and that being the reason I can't figure out the pass by trying, but there's nowhere info it thats true, and if so, how long to wait before real one would be accepted etc...)
Big thanks if anyone could help out, if not - not gonna be the end of the world. But would kinda like to store some of the messages that are newer than my latest backup...
Cheers!
cucolino said:
Hi all.
I'm after quite specific need but would like to know more general answer / solution if possible at all.
I know that wihtout being rooted there's not much one can do with system folders, but still, there are some ways and tricks to get to them, one of them being Backup option provided by android, using ADB shell.
I'm after specific file, that is /data/data/com.android.mms/shared_prefs/com.android.mms.categoryInfo.xml
Using Htc One M8, stock rom, I've tried to do adb backup of com.android.mms application, but all I got was 1kb (actually 41 bytes) sized file, which contains nothing.
I wonder, is there any other way to get to the specific system app folder, if you're NOT rooted?
Any help would be highly appreciated.
Additional info: I'm after that file because it has stored Secure message box password in Plain text. My phone is about to go to the service due to several issues, including battery getting way overheated when used, and not charging over 25% at all, and the only thing left to make a backup is the secure box storage, which I used as an "Other inbox" folder in order to have the main Inbox a bit more "clean", and I know I've set it to something stupid and short, and I've accessed them not long ago, but for the f's sake I can't get in the folder anymore (and I'm highly betting that after several attempts even the real password is no longer accepted, and that being the reason I can't figure out the pass by trying, but there's nowhere info it thats true, and if so, how long to wait before real one would be accepted etc...)
Big thanks if anyone could help out, if not - not gonna be the end of the world. But would kinda like to store some of the messages that are newer than my latest backup...
Cheers!
Click to expand...
Click to collapse
Yes and not.
if you don't have root access, you can not copy an application from the system folder, to make this the ADB would need root permissions. but....
You can download the stock rom, and copy/extract/edit the app you need it.
xdedeone said:
Yes and not.
if you don't have root access, you can not copy an application from the system folder, to make this the ADB would need root permissions. but....
You can download the stock rom, and copy/extract/edit the app you need it.
Click to expand...
Click to collapse
Actually no, if the file is user specific, as in my case, the help of stock rom's file is not gonna help.
Anyway, SOLVED now.
As per this post: http://forum.xda-developers.com/showthread.php?t=2054401
The backup of the app was made and got the file. I've done the same thing without success, because on HTC, the messaging app is com.htc.sense.mms and NOT com.android.mms.
Therefore creating backup of the com.htc.sense.mms did result kin getting exactly what I needed.
In the extraction of the tar .ab archive using dd in linux, I got folder app, within there is a folder com.htc.sense.mms, wihtin there's a folder sp, and there is com.htc.sense.mms.categoryInfo.xml which has the secure box password stored in plaintext.
Voila! )