[DEV][HELP NEEDED] ICS rooting for kernel 10 users - Sony Tablet S

We, kernel 10 users, will get ICS one day but only by regular OTA update since we can't use Condi's tool to build and flash some pre-rooted ROM.
Therefore we will need a kernel exploit to gain root and the good new is that there's one around here, discovered by Linux supermen Jüri Aedla and Jason A. Donenfeld then given to simple mortals by developer Saurik. I've tried the thing successfully on my newly bought Galaxy Nexus running ICS 4.0.2. In fact, the exploit runs on every 3.6.39 kernel based distrib.
The bad new is that the exploit needs offsets of setresuid and exit functions calls, taken from the statically (dynamically would be too easy) linked run-as binary if i've understood the trick. The right offsets were given by Saurik for the Gnex, that's why I've met success in rooting my new phone. We need to learn how to get them from the run-as binary embedded in the upcoming Sony tablet's ICS to break the no-root spell thrown by Honeycomb kernel 10...
I actually try to find a way but must admit it's a bit too rough for a total noob in ARM assembly stuff. So ladies and gentlemen, help is needed!
PS:
I have NDK's cross-platform gcc compiler working, run-as C source code (don't know wich version), run-as binaries (3.2.1, 4.0.2, 4.0.3) for testing purpose

You obviously know what you're doing more than I, but there might be a bit of a hurdle when it comes to that kernel exploit...
Apparently (and this is only alleged), Sony are sticking with the older 2.6 kernel for their 4.0.3 update (didn't even realise they were compatible), which would make that exploit a bit tricky.

According to what I've read here and in other places, the exploit works on kernel 2.6.39 wich is "under" Acer's and Samsung's (maybe others too) ICS 4.0.2 and 4.0.3 releases. It doesn't for earlier kernels like the 2.6.36 (our HC 3.2.1) and newer ones where the vulnerability is patched.
So let's hope that Sony will neither use the old 2.6.36 nor be at the top of kernels versions when releasing their ICS and that someone will find the two magic offsets required for the exploit...Sony tablet S is not a best seller and I'm afraid devs will not take much care of it.
Wait and see and in the meantime, maybe someone will find something about getting the offset's value while surfing the Web or ear someone talking about it or meet a super developer in a bar or get a revelation while sleeping or... find an easier exploit!

Related

[Q] How come that specific userlands do require a certain kernel to work?

I'm very new to Android as an OS with the Linux kernel at its heart, but fairily proficient with GNU/Linux and a plethora of its distributions for what has been more than a decade by now. So, what I (amongst other things) find a bit bewildering is that very many of custom firmware images seem to require a very specific kernel version or build for handsets to actually work. For my Xperia Mini (Smultron), there are ROM images based on CyanogenMod that won't work with the "vanilla" CM7 kernel, for instance.
With a proper GNU/Linux system, you don't have that kind close coupling of userspace and kernel versions at all. Barring some minor incompatibilities between certain (old) releases of udev and modern releases of the Linux kernel (and vice versa), there's very little (if anything) that stops you from supplanting your three years old distro's kernel with something that Linus released a few days ago.
However, whenever I've come across a guide how to install/set up this and that ROM for some kind of phone, and someone (more or less prominently) states that that image will require a specific kernel build, I've _never_ been so lucky to have been offered a technicial explanation as to why exactly this is the case. Can anyone reading this thread tell me, or point me to where I can find out more about the underlying reasons for these subtle incompatibilities?
I refuse to believe noone can answer that question...
Some features are not available in stock kernel, that are needed for custom ROM.
I am personally not fully familiar with kernels.

Who is Letama

Just for the fun
http://translate.google.com/transla...ation-de-le-tama-the-king-of-the-rom/&act=url
Nice
Anybody knows why google translates "firmware" to "shower"?
Nice, now we know a bit more of the guru
God, Google translation is awful
Here is my approximate translation of cajl interview:
1) Le Tama, master of archos roms, present yourself
I fall into computers when I was very young (11 year old, no personal computer at this time, I start programming on paper with a book ) and since then virus never left me. I'm 42, I'm technical director of a small software development company. As my current job don't give me much occasion to dig into code, I'm pursuing my passion as a leisure, and especially on Archos tablet these days.
2) Why Android ?
I came to Android with my HTC HD2. At that time, Android just started to show some great potential and Windows Mobile was getting old. I started to follow HD2 development efforts on Android. It was stuck on a kernel problem, it pushed me to start looking into linux kernel source code. I then took part of the desire kernel port to HD2 with Cotulla and the others and I also participated to the first Android release working on HD2.
3) Why Archos
I started looking at Archos when Google annonced ICS and annonced that they will be using Omap as reference platform. I always wanted to have a look at omap (too much qualcomm with hd2 ), so I started to look for a platform that would let me play with it without being too costly. That's why I naturally came to Archos. I started toying with my co-worker A70 and then purchased my A101G9.
The more I work on Archos, the more I like the "openness" of the platform. Gen8 bootloader is easy to crack, gen9 bootloaders are not even locked. Better, Archos thinks about us, hackers, by letting entry points like SDE, a reserved partition on gen9,...
4) By the way, what's the purpose of rooting ?
Ah! What's the purpose of root:
From a developer point of view, to give complete access to resources. With root, we can do a complete dump of disk and partitions to study firmware, install things we couldn't do without, like SDE for Gen9. It's the first necessary step to modify stock firmware. It's also mandatory if you want to do some specific operations like partitioning.
From an user point of view, it let you use application that demands root. My favorites are:
- Busybox
- Root Explorer
- Titanium backup
- Chainfire 3D
And I certainly forgot some. Just looking at market, we see thousands of applications that requires root to work.
5) Easy or not easy to find exploits ?
No, not easy with a well-made firmware. Except big mistake from manufacturer, exploits (weakness abused to obtain a temporary root) are fixed after discovery, and it's getting more and more difficult to find new weaknesses. Thankfully, our current exploit is not fixed, crossing finger.
6) What are you currently working on ?
I'm working a bit on too many fronts and not enough free time, but here is what I'm working on:
- Internal disk partitioning for g9 to let us install sde firmware on a separated native ext4 partition, without interfering with stock firmware and internal storage. It works on mine, I'm working on way to do it simply and safely to let everyone benefit from it.
- Clockworkmod Recovery. It also works on mine, but is only useful if tablet has been partitioned. It let us do complete backups, rom+apps+internal storage (nandroid backup), it let us use zips to install firmware and firmware updates, and it make our tablet feels more "android native".
- CM9: I built one for gen9 that worked not too badly, but there is a lot of work to get something completely functional.
- I also launched a first overclocked kernel for 1.0Ghz Gen9, stable on mine up to 1.2, almost at 1.3. I will have to work on this again when Archos will release a new firmware that fix current ICS problems.
- I'm working on the IT2, I activated SDE and I have a rooted firmware. I will try to port 3.0 kernel and ICS on it.
- I'd like to work on bootloader too, but this is another story...
7 How can we help ?
Explain my boss that I have to stop working on his projects! More seriously, I'll certainly need beta-testers that are willing to take risks for their tablets with partitioning, but I'm not there yet.
8 Why this nickname ?
Le Tama ? This is a wink to my wife! Sshhh!
9 Anything more ?
Nah, enough talk, back to work!
letama said:
God, Google translation is awful
Click to expand...
Click to collapse
Naaaah, it's pretty funny (I had no idea that Gen9 has a shower onboard)
letama said:
7 How can we help ?
Explain my boss that I have to stop working on his projects! More seriously, I'll certainly need beta-testers that are willing to take risks for their tablets with partitioning, but I'm not there yet.
Click to expand...
Click to collapse
Count me in
letama said:
- Clockworkmod Recovery. It also works on mine, but is only useful if tablet has been partitioned. It let us do complete backups, rom+apps+internal storage (nandroid backup), it let us use zips to install firmware and firmware updates, and it make our tablet feels more "android native".
Click to expand...
Click to collapse
Oh my god! This is by far that feature that I am missing most on my G9. I hope this dream comes true one day.
letama is great!!!

[Q] Kernels and Android Versions

I'm not understanding how kernels and ROMs connect. Can someone give me some extra insight?
[Hardware] <-- Unique to every phone
--
[Kernel] <--- Tells the OS how to talk to the hardware
--
[ROM] <--- Slightly confused. Is the OS in the Read only Memory, or has this term changed its "street" meaning?
I understand that most ROMs (e.g. CM7 and CM9) include both the kernel and the ROM, but can you flash these separately too?
I have a 1.5 year old thunderbolt that's rooted, and has CM7 which is based on gingerbread. I believe HTC has also released the kernel as open source, which is probably the reason I have CM7
Anyway, I guess what I'm looking for is an answer/guide/forum that explains why I can't install newer versions of android onto the already working/open source kernel I'm already running. Is it accurate to view the kernel as all the phone's drivers, or just the CPU driver? If that statement is true, why can't I load ICS or Jelly Bean onto my already existing set of drivers?
I'm thinking about starting a Wiki on this if 1) it doesn't already exist, and 2) I can wrap my brain around it enough to share with others!
Thanks to anyone with a response!
shadowrelic said:
I'm not understanding how kernels and ROMs connect. Can someone give me some extra insight?
[Hardware] <-- Unique to every phone
--
[Kernel] <--- Tells the OS how to talk to the hardware
--
[ROM] <--- Slightly confused. Is the OS in the Read only Memory, or has this term changed its "street" meaning?
I understand that most ROMs (e.g. CM7 and CM9) include both the kernel and the ROM, but can you flash these separately too?
I have a 1.5 year old thunderbolt that's rooted, and has CM7 which is based on gingerbread. I believe HTC has also released the kernel as open source, which is probably the reason I have CM7
Anyway, I guess what I'm looking for is an answer/guide/forum that explains why I can't install newer versions of android onto the already working/open source kernel I'm already running. Is it accurate to view the kernel as all the phone's drivers, or just the CPU driver? If that statement is true, why can't I load ICS or Jelly Bean onto my already existing set of drivers?
I'm thinking about starting a Wiki on this if 1) it doesn't already exist, and 2) I can wrap my brain around it enough to share with others!
Thanks to anyone with a response!
Click to expand...
Click to collapse
You are correct about the ROM, but ROMs also include the kernel (if it didn't, or no kernel was flashed separately, the device would not boot). Yes, other kernels can be flashed on your existing ROM, but it's not necessarily going to be compatible.
Sort of, but there's a lot more than that. See here and here. Later versions of Android will require newer drivers,etc. which the existing kernel won't provide (they'll be outdated). Back porting and additional coding is theoretically possible, but insanely difficult (many times). Even after this some things may still not work.
Thanks for the insight, I was able to get a lot deeper into this with those links. For anyone else wandering down a similar path, you might as well stop now! Here are a few links:
http://forum.xda-developers.com/showthread.php?t=1039217&page=2#17
http://www.cs.uwc.ac.za/~mmotlhabi/avmk.pdf
http://www.iteachandroid.com/2012/01/what-is-firmware-rom-and-firmware.html
So, if anyone else is still listening, I do have two more questions:
Do any phones have truly open source drivers? (a.k.a. higher probability of allowing old hardware to work with new android OS)
Is there any way to determine which phones will be supported by the custom-ROM community early on? I know the Nexus line doesn't have vendor modified code, is that the direction which would have the highest probability to stay at top of the Custom ROM curve without upgrading devices every year?
Thanks again for any insight! I hope I'm posting this in a Newb-Friendly forum!
shadowrelic said:
Thanks for the insight, I was able to get a lot deeper into this with those links. For anyone else wandering down a similar path, you might as well stop now! Here are a few links:
http://forum.xda-developers.com/showthread.php?t=1039217&page=2#17
http://www.cs.uwc.ac.za/~mmotlhabi/avmk.pdf
http://www.iteachandroid.com/2012/01/what-is-firmware-rom-and-firmware.html
So, if anyone else is still listening, I do have two more questions:
Do any phones have truly open source drivers? (a.k.a. higher probability of allowing old hardware to work with new android OS)
Is there any way to determine which phones will be supported by the custom-ROM community early on? I know the Nexus line doesn't have vendor modified code, is that the direction which would have the highest probability to stay at top of the Custom ROM curve without upgrading devices every year?
Thanks again for any insight! I hope I'm posting this in a Newb-Friendly forum!
Click to expand...
Click to collapse
For both your questions, the Nexus-line devices would be the way to go. They usually have everything working on new Android versions the soonest, and Google always releases their code, etc.
Hi
i can use linux kernel (zimage) to update android kernel if yes ,how ?
thnx

[Q] General question regarding kernels and android releases

Hi! This is maybe a general dev question, but I'd like to get an answer anyway:
what is exactly the link between an Android release and the kernel it works upon?
I noticed most recent releases use 3.0+ Linux kernels, and others (like the DSCs) use the Phoenix Universal Kernel, which is based on a 2.6.35... So I wonder: is ICS/JB in any way dependant on "newer" kernels?
I understand the answer must be closer to "no", since the pre-alpha build also uses a fork of the PUK, but the fact that it uses a *different version* makes me wonder how much work does it take to get a kernel ready for a newer release, and most importantly... why?
Thanks a lot! Total n00b here, but eager to know more.
Newer kernel not required at least for ICS.
All GB/ICS kernels are based on this kernel (and it's a Dell's lie about using same sources for 407 release as SoD was fixed there without switching timer source):
http://opensource.dell.com/releases/streak/4.05_and_4.07/
kibuuka successfully applied kgsl/genlock patch and it's the only thing actually needed for ICS.
List (a bit old) of changes in Phoenix kernel and later derivatives:
http://forum.xda-developers.com/showpost.php?p=25291276&postcount=3812

[noob questions] ROM/Kernel - building/porting

I’ll start by admiting that, in the arts of cooking/building/porting android innards, I’m closer to being a complete noob than na intermediate user.
I own a Newman K1S, JB 4.2.2, MT6592, 2Gb/16Gb, 720p, and, sadly for me, it looks like the manufacturer (Newman Mobile, or Newsmy, who knows) pretty much disavows any knowledge of this model ever being built or sold. No reference to it, no community, no android updates or ROM releases.
Taking into account some MediaTek source codes for KitKat were made available earlier this year (even if unofficially), I was wondering:
So, question number 1 – Is it possible to build android 4.4 for my device straight from said sources? Or are they unreliable and it would be best not to attempt it?
And question number 2 – Being at the noob level, should I stay away from such a task? And, in this case, would I be better off porting a 4.4 ROM from a similar spec’ed device?
Also, while browsing needrom, I noticed that a 4.4 “official” ROM was posted for my device. However, having flashed it, I found that it produces no sounds from the external speaker (although with headphones it works fine). Same thing was experienced by other users, and there is no fix so far.
Which takes me to question number 3 – What may I try, in order to fix an issue like this? Does KK use the same sound drivers as JB, and maybe it’s only a matter of replacing them? (if so, I believe this is within my grasp, even if I must unpack the IMG files to reach the drivers)
Lastly, Newman K1S has a severe overheating problem when pushed, which I believe would be easily solved by underclocking it to 1.3 or 1.5, or maybe implementing an optimized kernel.
Final question – How do I manage to underclock with my current kernel, or, better yet, how do I port a custom, optimized kernel to my device?
Congratulations to everyone who managed to read this far, and thank you in advance for any help provided. I’ve spent the last few days reading tutorials and guides, only to become even more confused… I did manage to get android kitchen running on my Windows laptop, though!
Links to recent/updated guides that might be useful are appreciated, too.

Categories

Resources