FORUMS

Android for Surface RT - how difficult?

117 posts
Thanks Meter: 177
 
By Myriachan, Senior Member on 26th August 2013, 09:25 PM
Post Reply Email Thread
What would be required to make Android for Surface RT? The exploit to get into kernel mode exists, so this is more about what is required to get Android running.

Surface RT has a Tegra3 with 2 GB RAM, but I don't know much more than that about the actual hardware. Does Android have drivers for such hardware already?

I'm more of a Windows person. I don't know Linux internals very well.
The Following 2 Users Say Thank You to Myriachan For This Useful Post: [ View ] Gift Myriachan Ad-Free
26th August 2013, 09:58 PM |#2  
Inactive Recognized Developer
Flag Denver
Thanks Meter: 566
 
Donate to Me
More
Quote:
Originally Posted by Myriachan

What would be required to make Android for Surface RT? The exploit to get into kernel mode exists, so this is more about what is required to get Android running.

Surface RT has a Tegra3 with 2 GB RAM, but I don't know much more than that about the actual hardware. Does Android have drivers for such hardware already?

I'm more of a Windows person. I don't know Linux internals very well.

The biggest challenge would be loading Linux and getting it not to panic immediately.

Other than that, there are tegra drivers available, but I seem to recall that the OEMs customize certain aspects, such as memory mappings, that we'd either have to reverse engineer from Windows or just straight up guess on.
26th August 2013, 10:04 PM |#3  
Myriachan's Avatar
OP Senior Member
Thanks Meter: 177
 
More
Quote:
Originally Posted by netham45

The biggest challenge would be loading Linux and getting it not to panic immediately.

Other than that, there are tegra drivers available, but I seem to recall that the OEMs customize certain aspects, such as memory mappings, that we'd either have to reverse engineer from Windows or just straight up guess on.

I think another hard part would be implementing some sort of way to capture the output of Linux's console once the NT kernel is gone.

I don't think that getting the memory mappings would actually be too difficult, if we know the devices.
26th August 2013, 11:17 PM |#4  
Senior Member
Thanks Meter: 326
 
More
Quote:
Originally Posted by Myriachan

What would be required to make Android for Surface RT? The exploit to get into kernel mode exists, so this is more about what is required to get Android running.

Surface RT has a Tegra3 with 2 GB RAM, but I don't know much more than that about the actual hardware. Does Android have drivers for such hardware already?

I'm more of a Windows person. I don't know Linux internals very well.

NVidia have a full linux for tegra project. They like OEMs to keep the devices similar to an extent I think. You can buy tegra dev boards as a consumer (although they have ridiculous prices).

Much of the surface hardware interfaces via i2c as per the microsoft windows 8 hardware guidelines. UART usage is not allowed so much in Windows 8 for internal devices but the tegra does have quite a few UARTS and I presume bare minimum 1 of them is accessible externally, question is how or where. Quite a few methods have been used on phones for adding external serial access, but who knows where it would be on the RT, would take some very intimate PCB tracing to work out where the hell it is if it is there. Common ones I have seen have been a specific resistor value used on the sense line for a USB-OTG adaptor to then trigger a pinmux to swap USB D+ and D- for a serial Tx and Rx, any other value would then trigger the USB host function as you would expect such a cable to do. Same has been done on the nexus 4 between the microphone and ground pins on the audio jack. iPhones and I think the galaxy tabs have them in their regular plug (well, all iOS devices with a 30 pin connector rather than lightning, galaxy tabs also have their own large pin count connector instead of a microUSB).
The RT, well the external keyboard connector is 6 pins. Keyboard, mouse and accelerometer all interface via the i2c bus which is 2 pins (SDA, SCL), all comms need a ground and a VCC connection of some sort is required. thats 4 pins accounted for. For some reason though 1 of the pins isn't connected within the tablet itself, so there are only actually 5 pins. Could the 5th be a sense line?



Android on RT, well, android is linux kernel based. So start with linux on RT and your probably most of the way there. Once your that far you might aswell get a "regular" linux distro on there, if you had full hardware support and were to run lets say ubuntu (for simplicities sake) you probably have a device far more useful than Windows RT now that you are free of the RT limitations

Oh, android kernel sources for several tegra devices are available too I think.





But I am guessing the biggest obstacle is getting the RT to even attempt to boot a linux kernel.

---------- Post added at 11:17 PM ---------- Previous post was at 10:28 PM ----------

Oh, anyone really interested in whats under the hood of that chip: https://developer.nvidia.com/tegra-3...ference-manual

Display might cause a slight issue. Tegra has both DSI and LDVS display support. Which one is the Surface using is unknown. If I had to hazard a guess, I would wager the surface uses DSI. Mostly because it has an HDMI output, the tegra does not support HDMI output natively, however converting a set of LDVS signals to HDMI (and vice versa) are relatively straight forward compared to DSI. You can get DSI screens in the RT's size, so I would guess they use DSI for the screen and LDVS with an adaptor for the HDMI, or if someone was testing the display output of the RT, you could just presume its LDVS for instance and simply connect the RT to a display as it boots linux and see whether the internal or external displays come on first I guess, or device manager in windows might shed some light (or it might not).

There is PCIe in there, wouldnt surprise me if they use it for networking. I dont see anything else suited to the task particularly (outside of special use cases, SPI is often used for an arduino for example, but at the same time it isnt streaming youtube in 1080p).
The Following 2 Users Say Thank You to SixSixSevenSeven For This Useful Post: [ View ] Gift SixSixSevenSeven Ad-Free
27th August 2013, 03:43 AM |#5  
lambstone's Avatar
Senior Member
Thanks Meter: 265
 
Donate to Me
More
The issue here is there is too few devs on xda working on the RT. This is going to stay until more people get RT devices. Look at the HP Touchpad, the dev community was stagnant until the fire sales. After the fire sales, people started ports of android and now afaik, there are fully working ports.

I believe a similar thing must occur for the Surface RT, perhaps clearing stock at $300-$350 with keyboard. Get more people onboard and some serious dev work will begin. MS won't have fire sales, they are not going to close down the RT division anytime soon so chances are, it'll just be some sale to clear old stock.
27th August 2013, 12:15 PM |#6  
Member
Thanks Meter: 2
 
More
Actually they are having a sale right now. In korea atleast. 310,000krw (approx US$277) for a 32gb surface and touch cover..

Sent from my MB860 using xda app-developers app
27th August 2013, 06:32 PM |#7  
Member
Flag Athens
Thanks Meter: 3
 
More
This may sound dumb but, wouldn't it be simpler to drop linux from android and run android natively on windows? Just like normal software in fullscreen.
After all, android is a shell ontop of an OS.

These guys did it on x86 (Surface Pro): http://windroy.com/
27th August 2013, 07:14 PM |#8  
Senior Member
Thanks Meter: 326
 
More
Quote:
Originally Posted by ScRePt

This may sound dumb but, wouldn't it be simpler to drop linux from android and run android natively on windows? Just like normal software in fullscreen.
After all, android is a shell ontop of an OS.

These guys did it on x86 (Surface Pro): http://windroy.com/

They are not first to do so. Bluestacks and JarOfBeans.

Android mostly consists of the dalvik virtual machine and a few libraries, its a complex project though and it does rely heavily on linux capabilities, I think Bluestacks uses cygwin extensively, which isnt available for RT and is very complex itself.

Its actually incredibly difficult to do what you propose. It might actually be simpler to get the linux kernel booting, besides, the linux kernel on an RT device would be more useful in the long term as it would open the door to running Ubuntu or something on the device.
27th August 2013, 07:38 PM |#9  
Member
Flag Athens
Thanks Meter: 3
 
More
I referred windroy because I am quite amazed of it's speed.
I thought they just wrapped the linux calls to call the winapi and thus it seemed simpler than porting a whole OS
28th August 2013, 08:40 PM |#10  
Senior Member
Thanks Meter: 21
 
More
@ threadstarter:
just buy a nexus tablet if you are in android THAT much.
28th August 2013, 09:15 PM |#11  
Inactive Recognized Developer
Flag Seattle
Thanks Meter: 2,950
 
More
The idea is to have both Windows and Android... there's no ARM tablet that can currently do that. Besides, "put Linux on it" is a time-honored hacking tradition. It doesn't even need to be practical, really. Myriachan has already done some very cool work for the community, too... https://twitter.com/Myriachan/status...50790803619840
Post Reply Subscribe to Thread

Guest Quick Reply (no urls or BBcode)
Message:
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes