Related
I know there have been some general questions about this, but I wanted to share what I've done and see if anyone can help get over the last hump. I have a USB GPS (GR-110 I got for next to nothing from Geeks awhile back). Running VEGAn 5.11 + supplements + Pershoot kernel.
So here's what I have working:
1) Plug in USB, get /dev/ttyUSB0. Woot! Thanks Pershoot!
2) Use stty to set the baudrate to 4800 (stty -F /dev/ttyUSB0 4800)
3) cat /dev/ttyUSB0 dumps out NEMA strings. Woo hoo! $SPGSV tells me I have 12 birds in view.
4) Now at this point, if you HAD to you could write a GPS faker like many of the bluetooth ones do. I don't know why none of them don't already have options for an arbitrary character device but if they did we'd be done here.
5) On the other hand, you know a built in GPS card would still be NEMA and still look like an RS232 port so.... turns out that's a property ro.kernel.android.gps. You can set this at the command line, but I suspect that the Android stack looks for GPS on start up and if it doesn't find it, that's that. So you edit build.prop to put in: ro.kernel.android.gps=ttyUSB0 [from what I can read it doesn't want /dev/ in front of it]
6) I do not know if the Android code sets the port to 4800 baud or not. In fact, it could be that it wants it at a different baud rate but I have no idea what that baud rate would be. So I decided to get in early on the boot process and make a few changes. If you look at my other posts, I have added an rc.local that runs right at the end of init.rc but is in "user space" (not overwritten on each boot). So I added this to the start of rc.local (important because my rc.local blocks later to wait for the sdcard mounts):
#gps
if [ -c /dev/ttyUSB0 ]
then
chmod 666 /dev/ttyUSB0
stty -F /dev/ttyUSB0 4800
fi
7) No joy. The buad rate and permissions are set, so I know the rc.local is running. I can stream data out of the GPS raw but Android just isn't seeing it.
8) I theorized that maybe Android is checking for GPS before I am running my script. To test that I used LCD Density changer to restart the Android stack. This is like a boot, but the Linux isn't rebooted. No difference.
9) Another theory would be Android expects its GPS at a different baud rate and is setting it.
10) Is there some Android service required that is disabled or just not started maybe?
I feel like I am soooooo close..... Any ideas?
Hi wd5gnr,
I've been working on something very similar on the android powered scroll tablet but instead using an internal serial port we've identified.
Made no progress is making android accept the nmea stream as its own internal gps (using ro.kernel.android.gps) so have started to write an android program similar to the BT GPS apps where it reads the serial port, parses out $GPGGA and then uses mock locations to update the location system. I'm at the point of splitting the identified string into its components.
While I know this isn't the cleanest of hacks but it 'should' work, i've built it from the SerialPort.sample code so you can change the serial port and baud rate in the options - it hopefully will work on any android system.
Will keep you updated on my progress
James
Oh, at least i find a post with people working on it...
First, i have an Advent Vega, that is similar to Gtab.
I make it work, but with time it crash.
My steps:
1) Do the same that the first post, get ttyUSB0, change baudrate, modify ro.kernel.android.gps...
2) In vega we have 3 libgps... the default, one for integrated ericsson 3g/gps and one for huawei ones. This integrated are optional and my tablet doesnt have, but i can remane any of the to libgps.so and use them. Anyway, with default may work, but i get it working with huawei one.
3) You need to activate gps in settings (if you have gps greyed in location settings, can use a widget, like power widget).
4) To test i used gpstest app, so once you get nmea data in ttyUSB0, activate gps with widget and start gpstest. Maybe you dont get data (i dont), so come back to terminal and with stty ask the port for the baudrate (dont remember the command). In my case it has 9600 baudrate, so need a aplication in windows to change gps usb baudrate to 9600 (search in the windows drivers of your usb gps)
5) Once changed in windows, i come back to android and change stty command to the correct baudrate (like i said 9600), and redo the steps (cat ttyUSB0, activate gps and launch gpstest)
AND GET DATA... but some time after it crash the full tablet...
No more time to test it, but it's in my to-do list.
I dont know if i explain it good, but you can ask anything.
Anyway an app that can choose which port to listen to will be much better.
Corvus.
jamescoxon said:
Hi wd5gnr,
I've been working on something very similar on the android powered scroll tablet but instead using an internal serial port we've identified.
Made no progress is making android accept the nmea stream as its own internal gps (using ro.kernel.android.gps) so have started to write an android program similar to the BT GPS apps where it reads the serial port, parses out $GPGGA and then uses mock locations to update the location system. I'm at the point of splitting the identified string into its components.
While I know this isn't the cleanest of hacks but it 'should' work, i've built it from the SerialPort.sample code so you can change the serial port and baud rate in the options - it hopefully will work on any android system.
Will keep you updated on my progress
James
Click to expand...
Click to collapse
I've thought about this too. Should be easy. Would be even easier if we had RxTx ported to this tablet. I saw someone has done this, but it is very specific to hardware and I haven't looked at what that would take. But I imagine just opening /dev/ttyUSB0 ought to work. I've been known to write a little code myself (http://www.ddj.com/embedded) and if I ever find time to get started on this I'll start it as a google code project and invite you ;-)
corvus said:
Oh, at least i find a post with people working on it...
2) In vega we have 3 libgps... the default, one for integrated ericsson 3g/gps and one for huawei ones. This integrated are optional and my tablet doesnt have, but i can remane any of the to libgps.so and use them. Anyway, with default may work, but i get it working with huawei one.
.
Click to expand...
Click to collapse
The only GPS lib I see in VEGAn 7 is /lib/hw/gps.goldfish.so
Goldfish is an emulator I think, so that is not promising.
You mention 9600 baud -- are you saying that the system sets the port to 9600 so you have to set the GPS to 9600 to match?
wd5gnr said:
I've thought about this too. Should be easy. Would be even easier if we had RxTx ported to this tablet. I saw someone has done this, but it is very specific to hardware and I haven't looked at what that would take. But I imagine just opening /dev/ttyUSB0 ought to work. I've been known to write a little code myself and if I ever find time to get started on this I'll start it as a google code project and invite you ;-)
Click to expand...
Click to collapse
Hey,
I've been using android-serialport-api (google it, i can't post links yet) as my access to the port. My current code (its very basic) is built off the serial console sample. In its current state it access the chosen serial port, extracts the $GPGGA string, parses it and then converts it from DDmm.mmm to DD.ddd. I'm now at the stage of posting it to mock locations - just need to do some extra reading on the subject. This really is just a proof fo concept app as for example it doesn't run in the background but i felt that all that can come in the future.
James
wd5gnr said:
The only GPS lib I see in VEGAn 7 is /lib/hw/gps.goldfish.so
Goldfish is an emulator I think, so that is not promising.
You mention 9600 baud -- are you saying that the system sets the port to 9600 so you have to set the GPS to 9600 to match?
Click to expand...
Click to collapse
Yes, you must have a libgsp.so for android to detect the gps.
And yes, depending the library used, the baudrate must set to 9600 or other.
Corvus.
jamescoxon said:
Hey,
I've been using android-serialport-api (google it, i can't post links yet) as my access to the port. My current code (its very basic) is built off the serial console sample. In its current state it access the chosen serial port, extracts the $GPGGA string, parses it and then converts it from DDmm.mmm to DD.ddd. I'm now at the stage of posting it to mock locations - just need to do some extra reading on the subject. This really is just a proof fo concept app as for example it doesn't run in the background but i felt that all that can come in the future.
James
Click to expand...
Click to collapse
Once you get a working app, please send me a priv so i can help you testing it...
Thanks.
Corvus.
so has anyone got usb gps to work yet?
On the malata site. there is a t11 rom for Android 2,2 which calls the Huawei GPS
http://www.malata.com/cn/downloadlist.aspx
T11 Tablet PC May 18, 2011 firmware (support plug-in 3G modem Huawei E261 Unicom)
Take a look at this:
http://forum.xda-developers.com/showpost.php?p=17385039&postcount=15
but before you use this appliction, you must run stty -F /dev/ttyUSB0 -ispeed 4800 (baudrate and port base on your device). Everything fine and fix without 1 second!
I have written code using tcl/tk for quite some time and I would not have much problem writing this code (actually, I have written a very similar code before) but since Android is Java I will have to educate myself before I try to build this app. What I am trying to find out is how much will I have to educate myself before I can pull this thru. Learning to write code in tcl/tc did not took me long and I actually did a lot of learning while writing code so again, not having experience in java I am seeking the feed back of those that are currently way ahead of me to give me a better feel of what I am getting into... :victory:
This app will be based in a program built for windows. I have thru the years ask the vendor if they are going to port it to android and I always get the same response, "in a few months"...
Here is what I am looking forward to build...
Overview
Need to create an Android app that will consist of an UI and data processing terminal to communicate with a serial device. The terminal will be capable of sending commands to the serial device to gather information, process the information and then display it in human understandable terms.
Goals
Basic program:
* Create communication with a FTDI chip at 1200 Baud Rate, 8 data bits, No Parity, 1 stop bits and xon/xoff flow control, I have prove it to work with no control since the amount and rate of data is so small.
* Capable to send hex ascci commands, receive a dump in hex ascci then translate that hex ascci dump into decimal format for processing. The serial device communication and hardware cannot be changed. Most all commands are set but there is one command that the value will change depending on previous data found.
Example of communication:
send :000000037D (status command)
Response:
Hex/ascii -> decimal
:0401010C2A0094 -> 4 1 1 12 42 0 148
:0401010C9A0489 -> 4 1 1 12 154 4 137
In this example column 2, 3, 5 and 6 has the data I need and will have to process to display the final values.
* Status command should have option to be controlled with a timer with options for 1, 5, 20, 40 sec and Timer off. There should be a button on the UI to send that status command, also, the ability in the future for the command to be microphone driven (x amplitude loud noise will trigger command).
UI:
* Dark colors to keep the display from eating up the battery.
* Should turn off the display every 10 seconds and should come up on new data, mic driven or phone shake.
* Should have a display where the last data numbers will be displayed. Also to have the ability to create a second larger display with the same last data numbers.
* Need 8 buttons for commands, drop down menu for settings (timer settings) and exit button.
* There should be a space (table) to display data, up to 99 records. It should look more like a excel spread sheet with just 2 column. These columns will bet the data location and the data itself. The table should be able to hold about XX amount of records, if it gets larger then a scroll bar should be used to navigate up and down the table.
Enhanced program
Display altitude/barometric pressure on request(capable phones).
Future:
Right now the device talks to the computer via a serial/usb dongle but I am planning to build the hardware to make it Bluetooth capable but in very few odd instances I might have to run it with the dongle due to the distance between the device and the phone might exceed the most common 30 feet Bluetooth maximum distance.
Im tired of taking my pc to a dusty and pc unfriendly environment so I have decided to take the plunge and build the app myself. Learning Java and android will be beneficial as I can see me in the future building more apps for personal use .
As it is now I can control this device using a hyper-terminal in my Samsung Note. Problem is having to type the commands manually, getting the responses back, translating those hex responses to decimal then building the response... too much work by hand...
Currently im using Slick USB Serial Terminal. Although they have a paid version that could help with the commands it will still leave me with processing the response by hand. It is useful when all I want is to advance the display on the device as it is the most used command but still at times it is imperative to get the status from the system and I am back to square one. And if I wanted a full status report It would take me nearly an hour to process by hand...
I have bought these books:
Java All-In-One for Dummies 3rd edition.
Programing Android, O'Reilly, 2nd edition.
Beginning Android 4, Application Development, Wei-Meng Lee, seems to be 1st edition.
Android application development for java programers, James C Sheusi, also seems to be 1st edition.
Anyone care to comment or recommend a book or a website?
Thanks everyone! You will be seeing much more of me as soon as I start having questions!!! lol!
Is my English really that bad? lol!!!
kinda hard to believe no one can answer this question here. moving on.
Probably this that you may be looking for.
Save time on re-inventing the wheels, or you can decompile theirs.
one of the hyperterminals I been using provides their source so Im not too worried about that. I did not knew you could decompile and app. Anyways, thanks for your reply.
So I came into possession of a commercial grade advertising kiosk (Nintendo Amiibo Display) that runs an Android OS 4.1.1. The device is setup to auto load the "AmiiboFrameWork.apk" package installed. The model of the system is DucoTech D185-ACA-720. I can access basic Android settings menus through a special key combination. Mainly system information, network setup, and volume controls. There is a menu that says App Install and gives the option of installing APKs from SD card or USB with a file structure of USB:\APKFiles\ or SD Card:\ApkFiles\. However no matter how I layout my file structure or name my APKs following that structure nothing appears in this menu to install. However There is a media tab for photos with a similar structure and photos I put on the card do show up. What I'm trying to figure out is how either install APKs, or access the base android system so I can customize the system to run custom apps I plan on making for it. However I want to retain the original AmiiboFrameWork APK or the whole OS so I can restore the system later if I want.
Now what I have tried is plugging it into my PC via the USB-OTG port while on, putting APKs in various file structures and naming conventions, booting it with my PC connected via OTG port, tried to trick my way into other menus through keyboard and settings menu tricks (similar to how people use to bypass lock screen security through menus).
Results:
1. OTG to PC while on: Device shows up as 2 USB 2.0 Flash drives in device manager. The drives appear in my computer but aren't accessible. ADB doesn't see it as an android device.
2. APKs on usb: Nothing shows up in the menu regardless of my naming convention or file structure.
3. Boot device while attached to PC via OTG port: My computer detects it as an NES Classic (previously installed the driver to mod my classic). This leads me to think its an Allwinner device or similar since that is what the driver was made for I believe? ADB still doesn't see it. This might be my best bet to get in.
4. Menus: Options are very limited and I wasn't able to access anything valuable aside from Install APK, Transfer Media, and Set startup APK.
5. Tapping build number: Tapping the build number in settings any number of times doesn't activate the developer mode options. The prompt doesn't even appear for it.
If anyone can assist in trying to gain access to this system, or even figure out the file structure so I can just install my own APKs like I want that would be great. Any ideas on where to look, what to try, and so on is greatly appreciated.
Here are some photos of the main board just in case
Any new updates to this? I made the mistake of uninstalling the Amiibo Framework APK so now all I can do is see the settings menu with no ability to install any APKS. Copying media files over does work though.
hedburnr said:
Any new updates to this? I made the mistake of uninstalling the Amiibo Framework APK so now all I can do is see the settings menu with no ability to install any APKS. Copying media files over does work though.
Click to expand...
Click to collapse
IDK what to say man other than what in God's name made u think framework.res needed to be pulled. It's gone man barring the original firmware and itself install method
hedburnr said:
Any new updates to this? I made the mistake of uninstalling the Amiibo Framework APK so now all I can do is see the settings menu with no ability to install any APKS. Copying media files over does work though.
Click to expand...
Click to collapse
I work with Ducos! In fact there's an Amiibo kiosk a few feet from me here in our offices
mojoswagger1980 said:
IDK what to say man other than what in God's name made u think framework.res needed to be pulled. It's gone man barring the original firmware and itself install method
Click to expand...
Click to collapse
AmiiboFramework doesn't have anything to do with the "framework.res", Nintendo just called the app the "AmiiboFramework"
They only install APKs with a specific package name in a specific folder on your USB device / SD Card (com.general.mediaplayer.player). Unfortunately Nintendo used a different folder than us, and I don't recall what it was. You can go into a "normal" Android screen using a special procedure if the AmiiboFramework app is installed, but it should work without it too:
- Wait for the Loading screen to appear
- Begin to press the CSR and Setup buttons together, quickly alternating between them. Repeat until the CSR appears
- After the CSR appears, leaving the screen open for an extended period of time will cause the Amiibo Display Framework to re-appear
- If Alt+Tab is used, be sure to return to the CSR before returning to any other app, or the CSR will reboot the player
Alt+Tab refers to using a USB keyboard, after you have the CSR up you can exit with it.
They're really not great hardware for general usage.
selaliadobor said:
I work with Ducos! In fact there's an Amiibo kiosk a few feet from me here in our offices
AmiiboFramework doesn't have anything to do with the "framework.res", Nintendo just called the app the "AmiiboFramework"
They only install APKs with a specific package name in a specific folder on your USB device / SD Card (com.general.mediaplayer.player). Unfortunately Nintendo used a different folder than us, and I don't recall what it was. You can go into a "normal" Android screen using a special procedure if the AmiiboFramework app is installed, but it should work without it too:
- Wait for the Loading screen to appear
- Begin to press the CSR and Setup buttons together, quickly alternating between them. Repeat until the CSR appears
- After the CSR appears, leaving the screen open for an extended period of time will cause the Amiibo Display Framework to re-appear
- If Alt+Tab is used, be sure to return to the CSR before returning to any other app, or the CSR will reboot the player
Alt+Tab refers to using a USB keyboard, after you have the CSR up you can exit with it.
They're really not great hardware for general usage.
Click to expand...
Click to collapse
Ohh, I tried to call and they wouldn't answer any of my questions lol. Is it possible to get any documentation on it? I'm sure Nintendo did their own setup, but having original documentation is a good step forward for what we have now. I'd love to setup my own configuration on it even if the hardware is meh.
Enmity said:
Ohh, I tried to call and they wouldn't answer any of my questions lol. Is it possible to get any documentation on it? I'm sure Nintendo did their own setup, but having original documentation is a good step forward for what we have now. I'd love to setup my own configuration on it even if the hardware is meh.
Click to expand...
Click to collapse
There isn't much more documentation than what I mentioned unfortunately. The people who you'd get in a call definitely don't know anything about them (I don't think Nintendo made the AmiiboFramework app in-house either). If you want to repurpose it, you can try getting into the CSR and going into the normal Android Launcher. Try connecting over ADB and force-stopping any process with the letters "csr" in it's name
---------- Post added at 11:44 AM ---------- Previous post was at 11:40 AM ----------
Enmity said:
Ohh, I tried to call and they wouldn't answer any of my questions lol. Is it possible to get any documentation on it? I'm sure Nintendo did their own setup, but having original documentation is a good step forward for what we have now. I'd love to setup my own configuration on it even if the hardware is meh.
Click to expand...
Click to collapse
There isn't much more documentation than what I mentioned unfortunately. The people who you'd get in a call definitely don't know anything about them (I don't think Nintendo made the AmiiboFramework app in-house either). If you want to repurpose it, you can try getting into the CSR and going into the normal Android Launcher. Try connecting over ADB and force-stopping any process with the letters "csr" in it's name
To connect to ADB use a USB mini cable on the "USB OTG" port and ClockworkMod's Universal ADB Driver
I have a few devices similar to this. They are duco DT156-AS4-1080. I was wanting to repurpose them as video players. The devices are wiped of content and load into a main menu. There is an option to exit to administrator, though it asks for a password. I dumped the partitions and tried to look through the binaries, but am unable to come up with anything. I can get into superSU and then exit to playstore, but then some type of watchdog kicks me back to the duco menu. Any help appreciated.
er0ck said:
I have a few devices similar to this. They are duco DT156-AS4-1080. I was wanting to repurpose them as video players. The devices are wiped of content and load into a main menu. There is an option to exit to administrator, though it asks for a password. I dumped the partitions and tried to look through the binaries, but am unable to come up with anything. I can get into superSU and then exit to playstore, but then some type of watchdog kicks me back to the duco menu. Any help appreciated.
Click to expand...
Click to collapse
Just uninstall com.general.mediaplayer.* (anything that starts with that package name) and you should have a normal device
I DID IT! Working tablet
So the story is yesterday I found an Amiibo display at my apartment dumpster where people put stuff they don't want that still works, I nabbed it with the intention of salvaging the "monitor." Judging by the hammer-marks on the acrylic enclosure, and pry marks on the metal cage that held the power supplies for the led strips and the tablet I assume somebody took it home, got frustrated by the locks and screws after some prying, and just busted in the acrylic window to get to the floor model Amiibos.
I cracked it open, and after some fun with a butane torch to melt the acrylic around the screws open (damn security hex) was surprised to find that the "monitor" had a usb dongle plugged into it. I plugged it into my station and found it was a 2.4/5 GHZ wifi dongle.
All code here is from Windows power shell since I don't like to dual boot my main gaming rig. Usually I just use the Bash on Ubuntu on Windows developer option for stuff like this, but I didn't know if the fact I was using Windows usb drivers to connect to this would cause problems and I wanted one fewer step to troubleshoot if I had issues. Forgive me penguin for I have sinned.
I found the item number on the back of it and after some googling found it was an android device. Score!
I plugged the tablet in and it went into an Amiibo advertisement kiosk mode.
After about 8 hours I now have a limited (but functional!) giant Android tablet.
To any future adventurers I am making a guide to get you up and running quickly.
I followed selaliadobor's instructions:
To connect to ADB use a USB mini cable on the "USB OTG" port and ClockworkMod's Universal ADB Driver
Click to expand...
Click to collapse
As well as pressing CSR and Setup to get into the settings screen. This was interesting, but ultimately didn't do much. However using
Code:
./adb shell logcat >> log.txt
and waiting for it to reboot from the csr menu led me to find (with some help from my engineer father) that /system/app/CSR_A003_20160304_BT.apk was the culprit of the restarts.
This was solved with
Code:
./adb shell rm /system/app/CSR_A003_20160304_BT.apk
From there I was stuck. But then I discovered: THE CSR SETTINGS MENU IS NOT THE REAL ANDROID SETTINGS MENU. To get to the real android settings menu use this:
Code:
./adb shell am start -a android.settings.SETTINGS
This allows you to do a factory reset!
However when it reboots the default launcher is stripped of important features like back/home/running apps, keyboard, a launcher etc. I sideloaded the following apps:
Chrome Browser
Microsoft Arrow Launcher (I originally used Nova but it was too much a ram hog to be useful)
Multiling Keyboard (I originally used Swiftkey, but it too was taking up too much ram)
WebTube (stripped down youTube frontend)
Soft Keys (so I had a home and back button, the running apps button still doesn't work :'( )
First post so no links ;(
imgur .com/dGAOmoM
This is what it looks like after boot. I may also have an affinity for Amiibos.
imgur .com/uQ8u7js
Classic.
Quick note: This device doesn't support google play services, so no hulu, official youtube, netflix unfortunately. Try as I might I haven't found a solution.
i bought a box of these units a while back from the carboot and wanted to use them in our coffee shop were opening, i too didnt have much luck with them then i saw this thread, i know abit about computers but never messed with android, we basically wanted to use them for what they are used for now for displaying changing menus and advertising etc, i downloaded the clockworkmods adb, now how to enter the "./adb shell logcat >> log.txt" etc, presumably i just connect the otg port to the pc (win10) run the clockworkmod program then i use commandpromt? i did try it but i couldnt get it to work, do i have to put the android device into a mode like csr? any help would be appreciated?
N/A
Additional help needed
i got to the settings menu but it is only temporary i am wanting it to be like a regular tablet where can i get a rom to do that? to flash it so it will function like a galaxy tab 3 or so, as i would love to use my DT101-ASA-800 like a normal tablet with a keyboard and mouse. any help would be welcomed. as the factory reset doesn't let it work any different it keeps going straight to CSR settings.
so stuck... my head hurts
so i can not get my Model DT185-ACA-720 to connect to my pc..... ok it connects and a K: and F: drive appear but I cant access them. I managed to get .apk files to show up and transfer to the 12gb storage on the tablet but i cant access the storage on the tablet... im so lost... I downloaded the universal driver and ADB but both changed nothing... If anyone has any advice or updates im all ears since I basically destroyed the Kiosk to get this tablet free
jaybanc said:
i bought a box of these units a while back from the carboot and wanted to use them in our coffee shop were opening, i too didnt have much luck with them then i saw this thread, i know abit about computers but never messed with android, we basically wanted to use them for what they are used for now for displaying changing menus and advertising etc, i downloaded the clockworkmods adb, now how to enter the "./adb shell logcat >> log.txt" etc, presumably i just connect the otg port to the pc (win10) run the clockworkmod program then i use commandpromt? i did try it but i couldnt get it to work, do i have to put the android device into a mode like csr? any help would be appreciated?
Click to expand...
Click to collapse
Same issue here with the DT133-AC4-900 that I managed to pull out of a trashed google nest display from where I work. I managed to get the device to always load to the DUCO app by uninstalling the mediaplayer throught the DUCO app. However that is as far as I can get as the device will not communicate with ADB at all. Not sure if it's a win10 thing or if it's the device itself.
TheArcticGentoo said:
I DID IT! Working tablet
So the story is yesterday I found an Amiibo display at my apartment dumpster where people put stuff they don't want that still works, I nabbed it with the intention of salvaging the "monitor." Judging by the hammer-marks on the acrylic enclosure, and pry marks on the metal cage that held the power supplies for the led strips and the tablet I assume somebody took it home, got frustrated by the locks and screws after some prying, and just busted in the acrylic window to get to the floor model Amiibos.
I cracked it open, and after some fun with a butane torch to melt the acrylic around the screws open (damn security hex) was surprised to find that the "monitor" had a usb dongle plugged into it. I plugged it into my station and found it was a 2.4/5 GHZ wifi dongle.
All code here is from Windows power shell since I don't like to dual boot my main gaming rig. Usually I just use the Bash on Ubuntu on Windows developer option for stuff like this, but I didn't know if the fact I was using Windows usb drivers to connect to this would cause problems and I wanted one fewer step to troubleshoot if I had issues. Forgive me penguin for I have sinned.
I found the item number on the back of it and after some googling found it was an android device. Score!
I plugged the tablet in and it went into an Amiibo advertisement kiosk mode.
After about 8 hours I now have a limited (but functional!) giant Android tablet.
To any future adventurers I am making a guide to get you up and running quickly.
I followed selaliadobor's instructions:
As well as pressing CSR and Setup to get into the settings screen. This was interesting, but ultimately didn't do much. However using
Code:
./adb shell logcat >> log.txt
and waiting for it to reboot from the csr menu led me to find (with some help from my engineer father) that /system/app/CSR_A003_20160304_BT.apk was the culprit of the restarts.
This was solved with
Code:
./adb shell rm /system/app/CSR_A003_20160304_BT.apk
From there I was stuck. But then I discovered: THE CSR SETTINGS MENU IS NOT THE REAL ANDROID SETTINGS MENU. To get to the real android settings menu use this:
Code:
./adb shell am start -a android.settings.SETTINGS
This allows you to do a factory reset!
However when it reboots the default launcher is stripped of important features like back/home/running apps, keyboard, a launcher etc. I sideloaded the following apps:
Chrome Browser
Microsoft Arrow Launcher (I originally used Nova but it was too much a ram hog to be useful)
Multiling Keyboard (I originally used Swiftkey, but it too was taking up too much ram)
WebTube (stripped down youTube frontend)
Soft Keys (so I had a home and back button, the running apps button still doesn't work :'( )
First post so no links ;(
imgur .com/dGAOmoM
This is what it looks like after boot. I may also have an affinity for Amiibos.
imgur .com/uQ8u7js
Classic.
Quick note: This device doesn't support google play services, so no hulu, official youtube, netflix unfortunately. Try as I might I haven't found a solution.
Click to expand...
Click to collapse
This worked, but I couldn't get ADB to work in Windows, I had to go grab my laptop running Deepin Linux and set up ADB on that, but no USB drivers are needed in Linux, so once I set up ADB, it just worked. So I'm hoping that might be the solution for others who are having trouble, just use Linux, it just works. ADB works on the CSR level, so no need for security key. Got CPU-Z on there for any curious about the hardware specs, my model is a DT101-ASA-800
Sorry if this is in the wrong location, if it is please let me know where to move it.
So the story goes I found an Amiibo Kiosk at my apartment dumpster. It was originally designed to run a single app meant to be interacted with by customers and a settings app meant to be accessed by a technician and nothing more. Using adb I managed to get into the /actual/ android settings menu instead of the custom "CSR" one that you can access by pushing some buttons on the back and perform a factory reset. If you need more information I documented everything I did here: https://forum.xda-developers.com/android/help/commercial-grade-android-tablet-issues-t3594279 the post is at the very bottom.
It's a giant 18.5 inch 720p commercial tablet from DUCO meant to be mounted in customer-service kiosks: (product page) http://www.ducotech.com/product/18-5-android-based-720p-hi-def-lcd-media-player/
I sideloaded arrow launcher, aosp keyboard, google chrome, and a stripped-down youtube front-end so it can be used as an actual tablet. Unfortunately Google Play services in not supported on this device (although I could probably spoof it as an officially supported device to make it work, but I want to fix my biggest problem first.)
My problem is that after a pretty consistent amount of time it unceremoniously black-screens with a pop from the speakers, then starts back up. I logcatted it and it shows nothing but wlan polls and ram cleanup before it shuts down, however I'll include it anyway since I'm sure that'll be the first thing anybody asks for.
My best guess is that there is some kernel watchdog resetting it since it's not being tickled by DUCO's CSR app that is normally installed when the system is sitting on a salesfloor.
Is there any way to check for this and/or disable it?
Additional info:
Running Android 4.1.1
Sun4i architecture
I attempted to install Busybox, but the tablet resets itself before Busybox can finish installation.
Logcat is here since the logcat.txt is a few kb too big to upload.
How did you get PowerShell to accept the line code. It errors everytime I type the codes you are recommending
Picked up a Moto G8 Power off Ebay and I havent touched an Android since I flashed a HTC Desire with Cyanogen Mod years ago.
Product/Variant: sofair XT2041-3 64GB PVT
?BootLoader? BL:MBM-3.0-sofiar-reteu-0f8934adaf8-210928
BaseBand: M6125_43.45.03.48R Sofia_rowdsds_cust
Recovery mode shows: RPES31.Q4U-47-35-9/54bc43
oem_locked
Spent all of today going around in circles.
Google Locked = it wants a pin to verify. Ebay ad stated it was google locked house clearance and not stolen. Nothing shows up in CheckAmend.com
On an offline PC
Android Studio installed - strangely ADB nowhere to be found.
ADB installed separately.
Got Magisk apk
Got from lolinet mirrors
XT2041-3_SOFIAR_RETEU_11_RPES31.Q4U-47-35-9_subsidy-DEFAULT_regulatory-DEFAULT_CFC.xml
blankflash_sofiar_RPE31.Q4U-47-35
From Motorola
Motorola_Mobile_Drivers_64bit
Rescue_and_Smart_Assistant_v6.3.2.12_setup - This will not install and I find this error in the Windows eventlog
MDM Declared Configuration: Function (checkNewInstanceData) operation (Read isNewInstanceData) failed with (The parameter is incorrect.)
Motorola support cant help until monday, but it might be a ASLR or some other MS security thing.
TWRP is missing the Motorola G8 on their website, G7 and G9 and others exist, so this is not an option.
Followed some of those youtube videos showing how to bypass the FRP, which appear to use a variety of tricks to either disable the Google Play Service or use an app to launch another app, a bit like getting the 2nd dial tone by calling a business freephone number, and hacking their phone system to get an onward outbound dial tone in the 80's.. Showing my age!
Before I put the device online using wifi and no sim for mobile data, I could get access to the Androids settings, where I could list apps, set permissions and other things so I'd tried to disable the play store, but these tricks wouldnt work. Put it online and it appears Android has been updated so those previous tricks for getting all the apps listed and makiing changes to their permission etc is no longer there. One of them was using the emergency phone, getting to the contact detail and then choosing a pic to gain access to other apps and that also stopped working and has disappeared which is why I say I think its been updated in all but version number!
I can access a fat32 sd card in recovery mode, but the apk files I put on it dont show, just the folders Android created on blank Fat32 partitions.
USB and ADB dont detect this device so I cant use the Wireshark USB to watch what is going over the USB connection.
AFAIK Android DeveloperMode/Debugging Mode is disabled.
I havent touched an android since the HTC Desires appeared and then I ported it Cyanogen Mod, but I subsequently learnt the UK Police had access to my phone even back then!
Not taking it apart to get access to the JTAG (just yet), I bought a few broke Pixel4A to see what I could learn about them when they arrive as well.
I see in fastboot, the mention of a "console [NULL]:null" is this the fastboot.exe alongside adb.exe in android tools, or something else?
So is there any other way or suggestion to get root for this device?
I fancied looking at LineageOS, or maybe some other OS like an unofficial port of GrapheneOS. I've found the device tree info put up by someone on here which would suggest its possible to port from Android 10Q to an Android11 distro/os, but my first hurdle is my stumbling block, I cant get the USB to work and have not found any other way to get beyond this stage to poke around with the OS and phone.
So any pointers, suggestions, advice, will be much appreciated!
TIA
Edit. It looks like Android/Google/Motorola have done a good job at locking down this OS and phone.
Edit2
Saw this thread here about making sure the Motorola drivers are installed properly.
[HELP] I seem to have bricked my Moto G Power and not it's stuck on bootloader.
This is what it looks like, and if I try to boot into recovery or system it just says "no operating OS found." Windows won't recognize it when trying to connect via USB. Any way to fix this? Help would be greatly appreciated.
forum.xda-developers.com
On Win10x64 I've been into c:\windows\system32\DriverStore\FileRepository, sorted the subfolders by todays date/time and can see a number of subfolders like
motoandroid.inf_amd64_dd80f24dcfb3dc931
motoandroid2.inf_...
motodrv.inf_....
motousbnet.inf....
and when inspecting one of the .inf files in notepad I can see there appears to be a service linked to the driver, but when I check the services, there isnt any services installed.
So I'm starting to think maybe Motorola's installation software doesnt work on windows with the default windows security settings, like exploit protection running.
More investigations...
Edit4
In the Control Panel (yes its still there in Win10), Device Manager, Other Devices are a couple of entries which the latest attempt to install the Motorola USB x64 msi installer created.
These are:
Mot Composite ADB Interface
Motorola ADB Interface
In c:\Windows\system32\drivers are a couple of 0KB wdf files (Windows Driver Foundation) files:
Msft_Kernel_WinUSB_01009.Wdf
MSft_Kernel_motoandroid_01009.wdf
Msft_User_WpdFs_01_11_00.wdf
So when looking at the c:\windows\system32\DriverStore\FileRepository I think the driver that needs to be installed can be found in the subfolder:
motoandroid.inf_amd64_dd80f24dcfb3dc931
However opening the motoandroid.inf file inside I can see lines like
DriverVer=03/25/2013, 1.3.0.0
As this folder was created about 30mins+ earlier, am I correct to believe the actual motorola driver was created back in 25th March 2013 and is version 1.3?
I know its possible to edit inf files to make drivers W2k and XP drivers work on later versions of windows, but the motorola website has the version number 6.4 but is this 6.4 the version number of the installation program?
Anyway scrolling further down the motoandroid.inf I can see towards the bottom instructions to install a service
"Mot ADB Interface Installation Driver" and it needs to find the actual driver in %root%\System32\Drivers\motoandroid.sys
Various paramaters, like a transfer size 4096bytes, a debug level of 2 and plenty of guids which will be found in the registry.
Anyway uninstalling the software as now removed these subfolders from the DriverStore\FileRepository, so a reboot and another attempt to see where its failing.
I just hope it doesnt need an internet connection, as this offline pc is a dev machine.
Onwards and upwards....
Edit 5
So the Windows 10 setting which prevents the Lenevo Rescue and Smart assist from installing is the Windows App and Browser Control > Exploit Protection > Force randomisation for images (Mandatory ASLR) when its on.
You can have every other windows setting on, like ransomware protection, normal ASLR, DEP etc etc and LMSA installs fine, right now its downloading an image to flash from FastBoot, but its not got the Developer mode/USB debug enable in android to make this possible.
Now lets see if I can get the Motorola USB drivers to work with ADB...
Got to say these forums are excellent cheap intelligence gathering tools for manufacturers and software companies to harden their products.
So tried lots and lots of these types of YouTube videos which are exploiting an SE Linux "vulnerabilities/design flaw" by getting access to enough of the system in order to disable/force stop certain apps in order to get past FRP block.
Some of these are less than a month old with less than 100 views, but I also suspect some of them of doing a bit of camera editing. I guess its a way of bunking up the number of views for a youtube account, before it gets rebranded, if thats even possible!?!
Now I managed to get the Lenovo Rescue and Smart Assist program to work, once I realised it will not install when Windows Exploit protection/Mandatory ASLR is enabled (which is a give away as to what the installer is doing on my system as well), and the give away information which suggests it might be worth downloading wireshark and installing the USB "packet" sniffer is the fact that when LMSA is running and you plug your usb cable into the Motorola phone, the phone displays the battery power as a xx% inside a swirling circle of sorts.
So there is some sort of USB communication taking place?
The other thing that gives it away is when you type in your IMEI number into the LMSA Rescue section, its detecting the version of firmware and wants to download the latest version.
LMSA did this to me last night as it downloaded
SOFIAR_RETEU_RPES31.Q4U_47_35_12_subsidy_DEFAULT__regulatory_DEFAULT_CFC.XML.zip
which I guess I can search for on this computer, or at least search for files on my windows hard drive created within a certain date/time frame, as the filename might be scrambled/obfuscated in some temp folder.
So is it just Firmware level communication, or is there some sort of Android communication taking place as well?
If its just firmware, then what could be elucidated/deduced from attacking the firmware? Perhaps its time to get the Wireshark USB sniffer out after all.
As I can also put an SD card into the phone (the start of a potential side channel attack) and the phone will load the SD card, I could explore different routes like some "malware" embedded using a picture to attach to the Emergency Contact details, maybe some PHP embedded in the pictures EXIF data or something that could trigger some other secondary app/process in Android into action.
It might pay for me to lookup the Google Android source if its open source, and look at the Android project source which is open source for any vulnerabilities. Anything mentioned in Github could give away clues
Configure on-device developer options | Android Studio | Android Developers
Learn how to configure system behaviors that help you profile and debug your app performance.
developer.android.com
So are there any issues listed here which doesn't just affect Android 13, but maybe earlier versions as well?
Google Issue Tracker
issuetracker.google.com
So lots of less obvious or not publicly mentioned intelligent sources of potential attack vectors in plain sight.
Seeing if I can alter the cpu clock speed and quantum could also help to introduce some instability, Linux has a wider range of cpu schedulers than windows, but this route tends to hang systems and I have to get enough access to this phone in order to change the route.
The recovery msg logs seen when selecting different bootloader options give away info, I think this is DMesg output of sorts. I'm not a linux programmer, just a boring old windows programmer.
I could explore what else could be loaded from the SD card, using the Bootloader menu options. I was surprised the APK packages dont appear in SD card in the "Recovery Mode > Apply updates from SD card" option. Maybe its not expecting a APK file extension? Mybe its expecting a different file of sorts like a .bin file or .img file. Is this where BlankFlash comes into play?
I have to admit, buying a second hand phone like this with FRB enabled off Ebay from a guy purporting to be in Salisbury home of Noivchok, is also a great way of spreading the latest and greatest malware to unsuspecting hackers and also to phish those who could potentially get around the FRB restriction with the minimum of effort. The UK civil service have their own internal postal system so has something been posted internally down the M5 motorway from Cheltenham, for some intelligence gathering or a cheap way of outsourcing some device cracking?
Oh well the silence is deafening.
So Motorola Support Centre have been in touch and stated:
I am really sorry to say that the kill switch feature, which is known as "Google Lock" is not bypassable by anyone other than the repair center.
So they are stating the Android Factory Reset Protection (FRP) can be bypassed which is another way of saying it can be undone, so the next challenge is finding out where on the device this flag or flags resides.
Is it something like the RaspberryPi One Time Programmable (OTP) switch's that may not be One Time Programmable but like the dip switches seen on the motherboards of early 8086/286/386/etc personal computers, or something else like a file on the main storage device with the rest of android.
I think the first thing to do is get Wireshark and the USB sniffer to see what information is being sent over the USB cable.
And as its possible to get the device online via wifi, it's probably a good idea to see what information is being sent over wifi, so using wireshark on a raspberrypi masquerading as an access point might be useful as well.
So the first thing to do is have a look at the Android documents
Android
Android has 74 repositories available. Follow their code on GitHub.
github.com
https://developer.android.com/reference/android/app/admin/FactoryResetProtectionPolicy
The factory reset protection policy determines which accounts can unlock a device that has gone through untrusted factory reset.
So it looks like Android are also stating the Factory Reset Protection can be undone. It seems a that a single user setup and a corporate setup exist, where a corporate account could be used to remotely wipe a device and then reenable the device, I guess if the user hands it back to the company.
https://developer.android.com/about/versions/marshmallow/android-6.0-changes API 23
EXTRA_PROVISIONING_RESET_PROTECTION_PARAMETERS is removed so NFC bump provisioning cannot programmatically unlock a factory reset protected device.
You can now use the EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE extra to pass data to the device owner app during NFC provisioning of the managed device.
Interestingly, NFC can be used to unlock FRP in earlier versions of Android. and its possible to use NFC to potentially configure and more other devices using NFC. As NFC is just a low power and thus low range frequency in the RFID range of frequencies alot of other things could be possible. NFC to me is just like any other form of communication method, beit a usb cable, telephone wire, wifi, ultrasonic sounds, or Infrared.
Radio-frequency identification - Wikipedia
en.wikipedia.org
NFCIP-1 and NFCIP-2
Near-field communication - Wikipedia
en.wikipedia.org
As NFC can communicate a request and response, and Android is using NFC to configure devices, using NFC may be a novel attack vector for peoples android devices, without them knowing about it unless they capture on a personal webcam everyone and every NFC device they come in to close contact with. Maybe using payment terminals could become a new attack vector at your favorite local retail outlet?
Well if Covid doesnt make people socially distanced, then maybe an NFC attack vector might if it works beyond the claimed 4cm operating range! Unfortunately this phone does not come with NFC, but others do.
I've got to find the source code....
Android (operating system) - Wikipedia
en.wikipedia.org
Most versions of Android are proprietary. The core components are taken from the Android Open Source Project (AOSP), which is free and open-source software (FOSS) primarily licensed under the Apache License.
Search results for "factory reset protection" | Android Open Source Project
source.android.com
The default implementation of Test Harness Mode uses the same storage mechanism as Factory Reset Protection to store the ADB keys temporarily in a persistent partition.
So it looks like I need to gain access to this "persistent partition" and try to find this ADB for starters.
Seems a bit sneeky of Google and Android here. https://source.android.com/docs/security/bulletin/2016-02-01
At the bottom of the Android webpage is a link to Factory Images of the Google Nexus and Pixel phones which jumps you to Google web page. No indication what so ever I'm leaving Android and going to Google!
Flashing devices | Android Open Source Project
source.android.com
To enable OEM unlocking on the device:
In Settings, tap About phone, then tap Build number seven times.
When you see the message You are now a developer!, tap the back button.
In Settings, tap System, then tap Developer options and enable OEM unlocking and USB debugging. (If OEM unlocking is disabled, connect to the internet so the device can check in at least once. If it remains disabled, your device might be SIM locked by your carrier and the bootloader can't be unlocked.)
Reboot into the bootloader and use fastboot to unlock it.
For newer devices (2015 and higher):
fastboot flashing unlock
For older devices (2014 and lower):
fastboot oem unlock
Tip: if you're seeing `adb devices` output before reboot but fastboot or the flash script are misbehaving, it might be issues with your USB cable. Try a different port and/or switching connectors. If you are using a USB C port on your computer try a USB A port instead.
Confirm the unlock onscreen.
Well the instructions I've seen only talk about the gaining access to settings and the doing 7 taps on the Build Number. Lets see if the rest of the instructions work.
Onwards and upwards....
Well sent the phone back the Ebay seller claiming to be a house clearance business wouldnt provide any paperwork to back up his claims of how he came to be in possession of the phone. So as I planned to do some computer forensics on it, like retrieve the files wiped by a Factory Reset, and the perverse interpretation of the law in this UK, I wasnt prepared to go any further with the phone. So its been sent back. The banks have already shown how untouchable they are, other big businesses are also in the same position and finding illegal stuff on a phone is not a risk I'm not prepared to take without paperwork.