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).