Android 4.0 Kernel Help - Upgrading, Modifying and Unlocking

Hi, I'm fairly new to android and spend most of my time writing applications rather then getting involved with the kernel.
I've been asked by my manager to see if its possible to have a version of android installed with limited functionality.
basically taking things like the locations and other commercial specific services, but keeping all the core things that android needs to simply run, and keeping most of the wifi/network capabilities.
This is going to be done on Android 4.0 on a tablet, which tablet has yet to be decided.
If anyone is able to give me some advice of where i should be looking and what i need to do, i would be very grateful.
thanks,

to be or not to be
HellPrye said:
I've been asked by my manager to see if its possible to have a version of android installed with limited functionality.
basically taking things like the locations and other commercial specific services, but keeping all the core things that android needs to simply run, and keeping most of the wifi/network capabilities.
Click to expand...
Click to collapse
find a tablet with kernel sources released/published by manufacturer also you need Android sources (AOSP) now recompile disabling some features/ options in theory it seems to be easy this is your starting point in my opinion

Thanks ruscan,
the starting point is appreciated, as before I had little clue to how to go about this.

Related

Android 2.3 (Gingerbread) Being Pushed To AOSP

http://www.androidpolice.com/2010/1...3-gingerbread-being-pushed-to-aosp-right-now/
go, go, go! )
These are very good news
I already see my Hero running CM 7
:happy face:
Excellent News Lets see who get's their GingerBread ROM out first
Sweet, if the hero really will be supported!
Cooooooooooooooool man very nice go go go go gooooooooooooooogle
Tchuup-tchuup! Hotness train is leaving the stations
ummm...
yea. will be interesting to watch... if it works on hero it will be fun... I don't expect devs will take the time on the hero any more like they used to but if someone out there has the know how and time and dedication then it's probably possible.
dkelley said:
ummm...
yea. will be interesting to watch... if it works on hero it will be fun... I don't expect devs will take the time on the hero any more like they used to but if someone out there has the know how and time and dedication then it's probably possible.
Click to expand...
Click to collapse
Feeyo...
Good news
Sent from my HTC Hero
C0mpu13rFr34k said:
Feeyo...
Click to expand...
Click to collapse
should be interesting to watch his progress
I wish the technical know-how would be something well documented.
What I mean is, ive seen lox/benocharm (sp?) progress in the last year in terms of Android knowledge, almost from the start. Ive seen one of these two guys post about initial questions about how things work, then edit his own post to do a mini-FAQ on ROM cooking. Now today it would look like they would kick some major ass at doing it if they were still able to give time for this, because they know the Hero hardware by heart; they know the usual glitch when porting (ie: how to make camera/bluetooth work, etc), all the minor details that makes a ROM usable or not for a day-to-day ROM! However, this kind of knowledge seems not so well documented.
What i'm basically saying is if a developer bails out the documentation about how to rebuild a custom ROM does too. It looks like (from a non-cooker point of view) that there is no centralized Wiki or webpage about the usual generic steps or roadblocks when porting from another device or when starting from AOSP to build FOR an Htc Hero (or any device, too).
Personally i know enough about linux in general, ive build a few updates.zip for my own knowledge's sake (nothing fancy though, removed/added apks ), but I have my questions on how to properly make something not built specifically for an Hero work with all the hardware functioning. I'm sure many others are in the same boat (plenty of tech knowledge but lack of Android ROM resources). For example, the question I had in mind were in the form of:
Does specific hardware components (gps, wifi, bt) relies on linux kernel modules? Does it need some kind of special APKS or Jars to make it work along with the framework, or just kernel modules are enough once loaded?
Following up on the point above: would copying modules from another device specific ROM would be sufficient? (I guess not), what about Android release versions (Eclair, Froyo, Gingerbread, etc)? Can modules work regardless of the Android version being run on?
ETC...
Well its pretty much a long rant, but since i'm stuck with a 3 year contract on Telus with an HTC Hero, I wouldnt mind giving a bit of my free time to make a working ROM out of it. However I am/was under the impression that the Hero ROM development scene went to a stop once Cyanogen started supporting Hero (seems to me there are only two *major* roms out there, CM and VillainRom), and due to that ROM cookers stoped caring about the Hero since it was well enough supported as it is (with CM on board).
Thanks for listening, doctor
I'm actually in the process of setting up an Ubuntu virtual box to dive right in, when I saw the AOSP sources getting pushed I thought why wait? Why not try it myself?
Don't expect anything soon. First of all I am just going to build off the Cyanogen tree and see if I can make a working ROM, then I will look into the deep dark hell that is porting software to HTC's proprietory-drivered-up-the-ass Hero
l0st.prophet said:
I'm actually in the process of setting up an Ubuntu virtual box to dive right in, when I saw the AOSP sources getting pushed I thought why wait? Why not try it myself?
Don't expect anything soon. First of all I am just going to build off the Cyanogen tree and see if I can make a working ROM, then I will look into the deep dark hell that is porting software to HTC's proprietory-drivered-up-the-ass Hero
Click to expand...
Click to collapse
Any luck with it? I had the same idea, reading now a lot of information about building a rom.
Maybe we can post some useful links or tutorials about building ROMs in this thread so that we can kind of collaborate?
That would be a great idea, i really like the idea of building my own rom. or at least try to build one.
Here you can find how to setup your own machine to build android roms
http://source.android.com/source/download.html
if you have problems with installing sun-java5-jdk follow the instructions on this page:
http://blog.enea.com/Blog/bid/32050/Ubuntu-9-10-Java-5-and-the-Android-Open-Source-Project
Also checkout Cyanogen's wiki, they really did an excellent job there:
http://wiki.cyanogenmod.com/index.php?title=Compile_CyanogenMod_for_Hero
I'm progressing... slowly. Downloading Ubuntu 10.10 iso, 200MB of updates, the SDK, Eclipse, the ADT plugin, all the platform updates and GIT is taking a while on < 2Mb connection...
Especially the repo syncing... that just takes ages ;
krispijn_s said:
Especially the repo syncing... that just takes ages ;
Click to expand...
Click to collapse
Gives me time to read I spose! I totally understand how to build off Cyanogen's code, that sounds simple, but I get a little lost when it comes to syncing with AOSP or branching Cyanogen to make changes... but I got hours of dowloading yet so I can read up about it then!
Make sure you download the x64 version of Ubuntu. Since 2.2.1 you need a 64-bit system to compile the Android OS project.
Also don't expect to get it compiling right away, I reckon somekind of cpu-profile is missing (could be named different). Third I heard that the sound and camera (again) systems got changed, could be buggers to get those working.
Just my two cents

[Q] How Does the Android OS Work?

Disclaimer: I am only a flasher. I do, however, contribute to the forums, donate to devs and also use the paid version of good apps.
My question is: How does Android work on our phones?
You have hardware (HTC Incredible); you have a carrier (Verizon, in my case); you have an OS (Android, obviously); you have a radio; you have a ROM; you have a kernel; you have themes, you have skins and you have apps. How do all these pieces interact? Just curious.
This is a really good question that should be answered in laymen's terms. I'm surprised it hasn't been answered yet.
I also thought it would have been answered by now. However, I think the developers (who would be the best folks to answer this question) are busy working with the Gingerbread source code to build new ROMs for us.
This is what I have figured out so far but I'm not sure if my analysis is correct:
After selecting your hardware and carrier, the OS is the most important element. Most of us are currently on Froyo (2.2). I have seen some screen shots showing the OS version to be "2.2.1" but I am not sure why. Google (I think) has released the source code for Gingerbread (2.3) and the developers ("devs") are hard at work producing new ROMs as I post this.
I gather that it is best to stay away from trying out different radios ("basebands"). Most of us are using 2.15.00.07.28.
I think the ROM takes the OS and re-works the user interface by adding, removing and changing the various screens and "features" of the OS. For example: the ROM can be written to take out the stock music player and substitute a music player that the ROM developer prefers. I think this is called "baking in an app". I believe the ROM developer can also create an overall "look and feel" that can be quite different from the stock OS. For instance, the ROM can be "colored" in black and red (rather than the stock green) and the stock font can be changed to something the developer prefers. In other words, the ROM is what you see and use on a daily basis.
Now this is where things get a little fuzzy: the kernel. I think this is kind of a behind the scenes element that governs the performance of a ROM. It greatly affects things like battery life, time to charge the battery and the "speed" of the phone. The kernel is where the phone can be "over-clocked" and "under-volted" should you want to do those things. I gather that once you select a ROM, you can try different kernels without changing what the various screens look like on the phone. I believe this is the way most people do it (pick a ROM and try different kernels with it). I don't think the other way really works (pick a kernel and try different ROMs with the kernel).
Next comes themes and skins which really only affect what you see on the various screens without do anything about battery life or the speed of the phone. I haven't played with these much.
Finally, I forgot to put WALLPAPER on the list in the original post. I believe this only appears as a background image on the home screens.
If any reader sees errors in my layman's analysis, please, by all means jump in and correct me. Per my disclaimer in Post #1, I am just an ordinary user and this analysis could be flawed or incorrect in whole or in part.
Everytime I try to answer a question like this, I get too complex about it and leave more questions than answers. Then someone comes along and says "It's like Windows or Linux or MacOS on a PC", and that's that. Well they're right. Those OS's tell the PC's that they are PC's and essentially all OS's do the same things.
Here's my simplified new list:
1) Hardware on phone :: meaningless without OS
-- (android OS - or any other OS)
2) Linux kernel understands hardware like touchscreen, radios, I/O (drivers/modules). Of course it also understands how to schedule processes and all those "kernel tasks".
3) Libraries provide APIs (Application programming interface) to userspace code (like APPS).
4) Userspace (apps, scripts, libraries) provide user control over the phone.
--
Together they work in harmony (we hope) to make the phone realize it is a phone and allow us to use it as such. (well, a smartphone, so many things other than a phone).
Here's a simple example: You touch the phone icon which is in userspace, and it brings up the userspace phone app. As soon (or before) as you touch some buttons, dial a number, it is using the API to the driver in the kernel that actually understands the phone hardware/radio. Also userspace controls GUI which is also requiring API to some form of OPENGL API that is requiring device drivers that get the touchscreen/LCD display. and so on.
--- Hashi
PS: I realize there are a thousand things wrong with this representation, but hey, it's a start. Feel free to fix it up if you're inclined.

[REQ] Calling for support for Dedicated iTouch-like Android build for HD2

Just telling you guys the story first.
I have this spare HD2 lying around after getting the Sensation which also has a severely cracked screen (LCD working, and screen protector on top to prevent injured fingers when using ). A thought occurred to me: Why not build Android to function like an iTouch? I.e: Remove anything related to the SIM card/ remove everything that involves making calls, SMS, etc but retain the functionality of Android apps etc(As I will be using DATA SIM). Most importantly, I want it to be fully optimised for those (I believe that the phone/sms functions running in the background would affect the full potential for the HD2 running music, video, and other apps). I do know how to flash ROMS, and customise downloaded ROMS (e.g: Slipstreaming apps I want, remove some apps I don't want, customise build.prop, etc) and also some programming (a bit of obj-C, a bit of C#, and lots of VB.NET). However, I do not know how to build Android from scratch. Hence I would appreciate if:
-I can get devs to assist me in building Android from source code and customise it so it fits my expectations
-I can get support for this project as I plan to release my work to the public when its done
I will give credit to those who helped. Thanks.
Reserved for future use.
Reserved again.
arikyeo said:
Just telling you guys the story first.
I have this spare HD2 lying around after getting the Sensation which also has a severely cracked screen (LCD working, and screen protector on top to prevent injured fingers when using ). A thought occurred to me: Why not build Android to function like an iTouch? I.e: Remove anything related to the SIM card/ remove everything that involves making calls, SMS, etc but retain the functionality of Android apps etc(As I will be using DATA SIM). Most importantly, I want it to be fully optimised for those (I believe that the phone/sms functions running in the background would affect the full potential for the HD2 running music, video, and other apps). I do know how to flash ROMS, and customise downloaded ROMS (e.g: Slipstreaming apps I want, remove some apps I don't want, customise build.prop, etc) and also some programming (a bit of obj-C, a bit of C#, and lots of VB.NET). However, I do not know how to build Android from scratch. Hence I would appreciate if:
-I can get devs to assist me in building Android from source code and customise it so it fits my expectations
-I can get support for this project as I plan to release my work to the public when its done
I will give credit to those who helped. Thanks.
Click to expand...
Click to collapse
arikyeo said:
Reserved again.
Click to expand...
Click to collapse
arikyeo said:
Reserved for future use.
Click to expand...
Click to collapse
Sir, i seriously doubt your state of mental stability.
And as for your request, the best you can do is use in Airplane mode and switch on wireless. Works for me when i don't want to waste my battery.
Just so that you know, the Qualcomm processors have 2 ARM CPUs on the die, 1 for Radio(Wireless/bluetooth/GSM etc) and 1 for the General purpose/Logic etc... I don't think GSM functions and the phone app running in the background would even mean or translate into anything near a burden or even something which would affect the performace for the CPU in your HD2.
you're pretty much dead-end on this one mate.
android is built ground-up for use in mobile phones. look at those cheap shenzen tablets..they all have no network icon in top bar, and com.android.phone must be running. removing this will only result not working phone as these also include core services-market access etc
only hope you have for doing what you want is to somehow get honeycomb workin' on qsd8250 and tiny fingers to interact with it.
imho best bet would be to just install CM or MIUI, and hide phone etc from launcher.
refer to post above for "very exact explanation" of everything you are trying to do

[ANSWER] -_/*~Kernel~*\_-

There are many explanations that people will tell you to the answer to the "what is a kernel?" Like this great one from Omnicide
Spoiler
Omnicide said:
The best way i seen it put was, think of the kernel as the engine and the rom as the body of the car. The body of the car (rom) just makes the car look nice and user friendly. Now when we talk about the engine (kernel) simply put red lining the engine will get you to go fast but burn gas. Keeping the rev down low will make you run slower but saving lots of gas. Thats just one way to look at it, rpms being the cpu.
Click to expand...
Click to collapse
or this great one from androidcentral.com
Spoiler
What is a kernel? If you spend any time reading Android forums, blogs, how-to posts or online discussion you'll soon hear people talking about the kernel. A kernel isn't something unique to Android -- iOS and MacOS have one, Windows has one, BlackBerry's QNX has one, in fact all high level operating systems have one. The one we're interested in is Linux, as it's the one Android uses. Let's try to break down what it is and what it does.
Android devices use the Linux kernel, but it's not the exact same kernel other Linux-based operating systems use. There's a lot of Android specific code built in, and Google's Android kernel maintainers have their work cut out for them. OEMs have to contribute as well, because they need to develop hardware drivers for the parts they're using for the kernel version they're using. This is why it takes a while for independent Android developers and hackers to port new versions to older devices and get everything working. Drivers written to work with the Gingerbread kernel on a phone won't necessarily work with the Ice Cream Sandwich kernel. And that's important, because one of the kernel's main functions is to control the hardware. It's a whole lot of source code, with more options while building it than you can imagine, but in the end it's just the intermediary between the hardware and the software.
When software needs the hardware to do anything, it sends a request to the kernel. And when we say anything, we mean anything. From the brightness of the screen, to the volume level, to initiating a call through the radio, even what's drawn on the display is ultimately controlled by the kernel. For example --when you tap the search button on your phone, you tell the software to open the search application. What happens is that you touched a certain point on the digitizer, which tells the software that you've touched the screen at those coordinates. The software knows that when that particular spot is touched, the search dialog is supposed to open. The kernel is what tells the digitizer to look (or listen, events are "listened" for) for touches, helps figure out where you touched, and tells the system you touched it. In turn, when the system receives a touch event at a specific point from the kernel (through the driver) it knows what to draw on your screen. Both the hardware and the software communicate both ways with the kernel, and that's how your phone knows when to do something. Input from one side is sent as output to the other, whether it's you playing Angry Birds, or connecting to your car's Bluetooth.
It sounds complicated, and it is. But it's also pretty standard computer logic -- there's an action of some sort generated for every event. Without the kernel to accept and send information, developers would have to write code for every single event for every single piece of hardware in your device. With the kernel, all they have to do is communicate with it through the Android system API's, and hardware developers only have to make the device hardware communicate with the kernel. The good thing is that you don't need to know exactly how or why the kernel does what it does, just understanding that it's the go-between from software to hardware gives you a pretty good grasp of what's happening under the glass. Sort of gives a whole new outlook towards those fellows who stay up all night to work on kernels for your phone, doesn't it?
. You probably didn't get it at all, so let me tell you what a kernel is in about 17 words. A kernel is "what makes the phone work, and connects the hardware (camera, storage, etc.) And the software (the Rom)."
I don't want to be thanked for this, thank omnicide, and androidcentral.com for the great explanations.
~~~~~~~~~~~~~~~~~~~~~
Samsung galaxy s2
Rom: Jedi knight 6
kernel: Jedi kernel 2
~~~~~~~~~~~~~~~~~~~~~
And you thought celebrities weren't smart! =P
Kernel can correlate to brains function in the human body meaning the manager of the perishing body.
Or the manager of the resources available.
Or the manager of the body.
Sent from my SAMSUNG-SGH-T989 using xda premium
I flashed JB Jedi 2 which came packed with a rom while it works great I wonder what will happen if I want to switch back to a different Rom will it be compatible with the kernel it installed?
All roms install their own default kernel each time you flash them.
They are usually chosen by the rom's Dev for good reasons (usually stability) .
It's up to you if you then choose to replace the included kernel with one of your own choosing.
At that point you should think twice about posting glitches you encounter on the ROM developer's forum because you have now changed a fundamental component of his work which is not of his choosing. It would be kind of rude to clutter his thread with problems that may be caused by the replacement kernel.
Feel free to push the envelope, just make a backup first then post problems to the kernel's thread.
Ohh ok I really didnt know that as some roms I have downloaded are 90mb some are like 330mb does that mean they are all compressed in different ways?
davcohen said:
Ohh ok I really didnt know that as some roms I have downloaded are 90mb some are like 330mb does that mean they are all compressed in different ways?
Click to expand...
Click to collapse
No. Some ROMSs gave more data or bloat. Slim ROMs, are well, slim. Leaks, like, Jedi jelly, tend to be pretty big, due to all the bloat they have.
LoopDoGG79 said:
No. Some ROMSs gave more data or bloat. Slim ROMs, are well, slim. Leaks, like, Jedi jelly, tend to be pretty big, due to all the bloat they have.
Click to expand...
Click to collapse
Bloat = the stuff, APKs in this case, someone decided are not necessary.

Dual Booting Anyone? are we there yet?

i know that there are Kernels that can do this, its possible and can be done but is this an issue, a solution, something to look forward, something to think about, or give deep try in developing and making it a reality like Roms, or is it dead, its not a thing? people are now satisfied with what they have as custom/Stock Roms with kernels, MODS, Open Source scripts that yu can mess up with, themes, Root Apps, Are we done?
upgrading became the big fuss when rooting became public, a simple easy code/binaries/ETC that you could alter and get Admin rights anyone can do it now (DEVS, ELITE/PRO/EXP/AVERAGE ANDROID USERS) for the average user its an app from the Play store and ROOT allows you to control/modify the whole package not just the basic/average using
4 years LATER and we have Root like anyother app, yes we have come so far but what do we have in store, Windows official 1.0 to windows 8 all those versions they have reinvented, developed, innovation has been found sure they they dont have a clean sheet but they done as much with little time as they could
has anyone noticed that since Gingerbread we have not incoporated any major updates, features, developments, Big changes, Android 4.x.x has just being polishing, cleaning up the mess, getting rid of major bugs, Big Fixes, new theme, stable enough, added some few minor tweaks and called it Jelly Bean (am not hatin on Google and everyone who has contributed to ICS/JELL BEAN THEY DESERVE CREDIT/THANKS FOR THEIR HARDWORK THEY PUT IN IT) Google Open Source Linux based Android OS and we are done
iguess its time to focus on Security since it has been a big issue (the elephant in the room) So CALLED IRRELEVANT nobody wants to deal with it, although Google has tried eliminating this threats/virus/malware they still haVE alot of work to do APPL IS PRO AT THAT(take_notes_google)
Security Vs Rooting is the new topic in CM (iwont get into that too much look it up yourself) how will they deal with it IDONT_KNOW, other than that i would Say that we are done with developing Firmware, features, games, Apps, Roms, Kernels, wateva Android includes that can utilize the 1.9/2GHZ, KILLA GPU, Processors that will continue to upgrade push the mobile to the limit/beyond and maybe one day compete with Desktop/laptop GPU/CPU's
KILLA hardware/SPECS THAT we are not using it to the fullest, playing angry birds, instagram, playin music, making a call/text does not utilize anything just takes 1-10% CPU and Zero Ram
if one day we can replace Ram(mobile) or even desktop, with something else that would be awsome until then we have nothing to show off to APPL Fanboys

Categories

Resources