[Q] - General Questions and Answers

Total noob here... all new to messing about with phones but I am well used to laptops, desktops servers etc.
I am somewhat confused by all the different terms. For instance firmware is mentioned a lot but to me this is the low level software that is installed on a laptop or PC, such as the BIOS or the low level software in a controller of some sort.
I take it that it's not the case when you guys talk about it in terms of Android phones? Basically what I want to know is what do we mean when we talk about the firmware?

seamrog said:
Total noob here... all new to messing about with phones but I am well used to laptops, desktops servers etc.
I am somewhat confused by all the different terms. For instance firmware is mentioned a lot but to me this is the low level software that is installed on a laptop or PC, such as the BIOS or the low level software in a controller of some sort.
I take it that it's not the case when you guys talk about it in terms of Android phones? Basically what I want to know is what do we mean when we talk about the firmware?
Click to expand...
Click to collapse
your firmware is "android" its the operating system like windows on your computer so your running 2.2.3 "android operating system" = firmware. Let me know if this helps.

Thanks Omnichron.
Thats clears that up pretty well. So the "firmware" is the OS i.e. Android. But doesn't Android sit on a lower level of firmware like Windows XP uses the BIOS on a PCon the computers BIOS?
What loads Android?
It's a strange new world....

seamrog said:
Thanks Omnichron.
Thats clears that up pretty well. So the "firmware" is the OS i.e. Android. But doesn't Android sit on a lower level of firmware like Windows XP uses the BIOS on a PCon the computers BIOS?
What loads Android?
It's a strange new world....
Click to expand...
Click to collapse
That would be the bootloader. Based on linux, it is used to do very low-level system initialization, before loading the Linux kernel. The kernel then does the bulk of hardware, driver and file system initialization, before starting up the user-space programs and applications that make up Android.

Good explanation. Thanks for the info It's hard to believe but that lack of understanding was holding me back from rooting my new SGS2

Related

Bought a Nexus One; totally, completely baffled by tethering

I'm a professional programmer, and I'm baffled. It seems that there is a whole "smartphone scene" and it's intimidating. I'm a Java expert and am comfortable with the Android SDK in Eclipse. However I'm completely baffled by the prospect of getting tethering to work on my Nexus One.
One thing that baffles me, for example, is the concept of a "ROM". Is there a ROM on the N1? I thought that ROMs haven't been used for 10 years. I was under the impression that the N1 is basically a little PC running Linux, which means that it should only have a bare minimum of a BIOS and everything else would be on "disk", or flash.
Another thing that baffles me is the concept of "rooting" the N1. It's running Android, which is an open-source mobile operating system. And, as far as I know, I have the permission to change all bits of the phone. Heck, that's part of the appeal! To say that you have to "root" your N1 is like saying that you have to "root" your Ubuntu box - it just doesn't make sense.
Complicating matters is the release of Froyo. I simply don't know enough to judge whether the actions required to upgrade the N1 to Froyo are compatible with the actions required to install a tethering app.
And that's the thing: I'm not just interested in installing tethering. I want to understand what I'm doing and why. I'd like to understand the options choose intelligently between them. There are so many resources online which are trying so hard to be helpful, but which don't really answer these simple questions.
I really appreciate your help.
-Ablation
search the correct forum for your phones model here on xda. some roms provide tethering preinstalled
check this thread for more info
http://forum.xda-developers.com/showthread.php?t=668090
while that targeted at g1, its the same concept. again search xda for the n1 section
Thanks for the link. However, I think I need a more conceptual introduction to the scene. The essential question is: what are the bits? On a PC you have:
1. BIOS
2. Disk
3. Peripheral firmware.
The disk is further broken down:
1. Bootloader
2. Operating system
3. Drivers
4. Applications
When you say ROM I assume you mean some combination of BIOS and Peripheral Firmware?

[Q] How Android Works - OS and Versions

I know this is an incredibly newbish question, but I'd flipped through various forums and articles and googled it and still don't quite seem to understand it.
My question is why is android dependent upon manufacturer's release?
Take for example, a desktop computer.
OS
This is the core of the device and the UI between the user and the hardware.
Applications talk to the OS to instruct the hardware to do stuff.
Microsoft and Apple makes the OS.
ex. Windows 7, Mac OS, Linux.
Hardware
Asus, Nvidia, Realtek, marvell make the hardware.
ex. video, LAN, sound etc.
Hardware Bundler
Dell, Alienware, Gateway, Acer
They take commercial hardware and some OEM hardware and assemble it in a way that many consumers will buy their bundle.
For 99.9% of us, not counting Synapse, this is the only way the hardware is packaged together.
Device Standards
Collectively, the manufactures work together to determine certain industry standards ex. ATX, PCI-E, SATA 3, USB 3.0 etc...
Drivers
The manufacturers also make drivers so the OS can make use of their hardware.
Compatibility Is Determined by Driver Support
If the driver exists to talk to a given OS, then the hardware will work.
Not all hardware manufacturers will code for every OS out there.
ex. USB works on all OS because it's more established, but not every sound card will work on a Linux system.
Bringing it home...
So if Microsoft releases Windows 8, and as long as Nvidia releases a driver that works with that OS, then the video card will work.
Can you help me understand how the android phone architecture is so different that it's no longer
OS <-> Driver <-> Hardware?
Sorry for not getting it.
Culverin said:
Can you help me understand how the android phone architecture is so different that it's no longer
OS <-> Driver <-> Hardware?
Click to expand...
Click to collapse
It isn't different, it's exactly as you written. But manufacturers usually don't release sources of drivers, neither binaries for newer versions of OS. Also many manufacturers add protection against installing your own software into "their" device.
Android is open, but many manufacturers of Android devices - aren't.
Many devices just like????
You say manufacturers, are you referring to components such as the modem (???), video encoding/decoding chip (tegra), sound chip (wolfson)? NFC chip?
Aren't these drivers publicly available?
How else would small companies be able to develop low volume items such as these?
http://www.bigboxstore.com/computers/android-tablet-pcs
http://cheapandroidtablet.org/
When a company, samsung for example, makes a phone.
They start tying all the components together and making them talk to each other.
How "custom" are the "motherboard bios"?
Is that what you are saying by the manufacturers add protection?
Like at the "bios" level?
As for things like this...
http://www.engadget.com/2011/01/27/sony-announces-playstation-suite/
Does that mean Sony is banking on Google making it more standardized?
Culverin said:
You say manufacturers, are you referring to components such as the modem (???), video encoding/decoding chip (tegra), sound chip (wolfson)? NFC chip?
Click to expand...
Click to collapse
I mean both components manufacturers and phone manufacturers.
Usually there are problems with Wifi, GPS, GPU support, camera, etc. Many alpha-stage ports have problems with these things.
Culverin said:
Aren't these drivers publicly available?
Click to expand...
Click to collapse
Do you mean sources? Manufacturers rarely release sources of drivers, even on a PC. This is the reason, why there are problems with some devices on linux systems.
Culverin said:
How else would small companies be able to develop low volume items such as these?
Click to expand...
Click to collapse
I'm not sure, but they have to buy a license to use these components in their devices anyway, so I guess they get sources of drivers too, but they can't release them.
Culverin said:
How "custom" are the "motherboard bios"?
Is that what you are saying by the manufacturers add protection?
Like at the "bios" level?
Click to expand...
Click to collapse
"BIOS" or just "boot phase software" is usually 100% custom - there are no standard solutions I know of.
Let's imagine you have bought a new PC with some preinstalled OS. You don't have administrator rights on it, you can't boot from other device than HDD and if you want to update your system, you have to use special software, which has administrator rights, but it checks whether updates were created by device manufacturer. This is more or less how most of phones work.
Culverin said:
Does that mean Sony is banking on Google making it more standardized?
Click to expand...
Click to collapse
I'm not sure what do you mean?
Culverin said:
I know this is an incredibly newbish question, but I'd flipped through various forums and articles and googled it and still don't quite seem to understand it.
My question is why is android dependent upon manufacturer's release?
Click to expand...
Click to collapse
Because individual makers add their own hardware.
Can you help me understand how the android phone architecture is so different that it's no longer
OS <-> Driver <-> Hardware?
Sorry for not getting it.
Click to expand...
Click to collapse
It still is. Android OS is JUST THE BIOS, in your example. The VXDs/drivers are made by different manufacturers (hardware level drivers) and loaded at system time.
You can load a plain Android OS, but it won't be able to talk to the phone's hardware except in a very general sense. You can touch screen, launch apps, but no phone, and only generic camera without special resolution support and such. It won't be able to do data or phone at all. That requires special VXDs (or their linux equivalent, I'm a Windows guy). Not all phones have the same buttons, or the same screen rez, or the same keyboard, and so on.
That's why there are various experimental Gingerbread ROMs out there already, but they don't work that well, because nobody had debugged the "drivers" for the hardware yet.
And if nobody release the source of the drivers (even for the earlier versions) nobody can use that to figure out if they are compatible with the next OS rev. Binary hacking is way too difficult.

windows 95 running on surface rt

start windows 95 Help on surface rt, really need the program electronic workbench 5.12, via an x 86 emulator, it is not.
I will use bochs, downloaded the BIOS file and VGA in tab CPU put the bad CPU, but still does not work. The configuration file can only be downloaded in the format of the bxrc format, the txt he does not understand. If that happens, put Please setup and working windows 95 image
I kind of doubt anybody else is going to bother with the effort needed to get Win95 running (it would run very slowly, although I suppose it was intended to run on very slow CPUs...) on a first-gen Surface RT, but hey, maybe I'm wrong.
Anybody familiar with Bochs configuration want to weigh in on the configuration issue? I never really did much with it.
GoodDayToDie said:
I kind of doubt anybody else is going to bother with the effort needed to get Win95 running (it would run very slowly, although I suppose it was intended to run on very slow CPUs...) on a first-gen Surface RT, but hey, maybe I'm wrong.
Anybody familiar with Bochs configuration want to weigh in on the configuration issue? I never really did much with it.
Click to expand...
Click to collapse
I really need the electronic workbench 5.12 "want to run it in any way, it is not a resource, the minimum requirements in the area of pentium 200 MHz
You'll be lucky if you get that equivalent of speed, actually. Typical estimate is order of 10x overhead for emulation, which means each core of the Surface RT is basically like a 130MHz x86 chip. Unless the emulator runs across multiple cores and the program does too (unlikely), you probably won't get much.
Have you considered running it on a real PC and just having the Surface remote desktop into it? Unless you're somewhere without an Internet connection, that's at least a little more likely to work.
Deleted due to forum software screwup
If they can run windows 95 on Android wear, Surface RT is certainly capable. If that's what you want to do, and have the ability to get it done knock yourself out.
https://www.youtube.com/watch?v=GZx-LJH5J_I
Whether or not it's *possible* to run 95 wasn't really in question - people have, in fact, booted later versions of Windows via emulators - but rather whether it's a practical way to run even a very old program.
If anybody were still maintaining the RT x86 dynamic recompilation layer, I'd say to work on getting it working in that; the performance is a lot better when you don't have to support an entire OS and can execute OS library code in native instructions rather than emulating even the low-level functions. However, I don't think even the source code for that program was ever released. :-/
Weigh in here
Deleted due to forum software screwup
Click to expand...
Click to collapse
What happened? HAHA
Also I would like to weigh in here. You (mickel2255) should have done a simple forum search. Gooddaytodie has a list and in it is an x86 emulator that I tested with electronic workbench 5.12 and it works no problem.
List of desktop apps for hacked RT devices http://forum.xda-developers.com/showthread.php?p=36534446
Click to expand...
Click to collapse

Why aren't there any universal ROM?

Why everysingle device have his own ROM and there isn't a universal ROM for all devices? I know, every single devices have lots of different features but why just a single HAL which load the appropriate drivers for each device's componente (speaker, io, chipset, etc)? (Like Windows, OSX, Linux Distros does) What is wrong with this? why not? Did anyone ever tried to build something like this?
Scr3w1912 said:
Why everysingle device have his own ROM and there isn't a universal ROM for all devices? I know, every single devices have lots of different features but why just a single HAL which load the appropriate drivers for each device's componente (speaker, io, chipset, etc)? (Like Windows, OSX, Linux Distros does) What is wrong with this? why not? Did anyone ever tried to build something like this?
Click to expand...
Click to collapse
This will take to much space to hold every driver of every device and the partition sizes are limited
Scr3w1912 said:
Why everysingle device have his own ROM and there isn't a universal ROM for all devices? I know, every single devices have lots of different features but why just a single HAL which load the appropriate drivers for each device's componente (speaker, io, chipset, etc)? (Like Windows, OSX, Linux Distros does) What is wrong with this? why not? Did anyone ever tried to build something like this?
Click to expand...
Click to collapse
Some software needed to be in a specific processor/cpu or hardware,every model of device is working differently even though their brand are same and the name of the phone is same,like there are exynos and snapdragon for samsung galaxy s flagship phone and they are working differently.maybe in the future there is but it will need experienced engineer or whatever it takes to build an os that work for every phone,and of course it is costly to maintain the development like the remix os.but it just nearly impossible(maybe not).
You know that when you install Windows, you still need drivers for almost everything, motherboard, gpu, some ssds need drivers to work properly. Maybe in the future because device space is increasing and we might have like chromebooks, 2 partitions for drivers and system files, then after installation, it determines drivers and loads them, then deletes the rest of the double partitions and cleans up. This will take up space though, a lot. And it will take a heck lot of space and will most likely only be available for new devices because what's the point of having devices from 2016 and their files in a ROM for devices from 2020 etc. Space is the only limitation.
Not Possible.
Every manufacturer built it's system using public patents (like IEEE 802.11) and multiple private patents, that they acquire or researched. This way all the companies have different architecture means different drivers set and hardware settings. In order to achieve something that you are describing, they have to agree to 1 manufacturing standard (and believe or not no company will agree to this thing). As another person wrote above about installing many drivers and stuff. This will make the ROM extremely heavy and it will take allot of time each time, it will start as it have to check the system and load all the drivers compatible. This is the thing Richard Stallman is saying for many years but close system developed by each and every company have produced 'restrictions on each and every side of the technological field'
strongst said:
This will take to much space to hold every driver of every device and the partition sizes are limited
Click to expand...
Click to collapse
Well, nice point, honestly how much space are we talking about? We may just have some generic drivers (like windows) and some thirdy part proprietary drivers to download separately
Thunderoar said:
Some software needed to be in a specific processor/cpu or hardware,every model of device is working differently even though their brand are same and the name of the phone is same,like there are exynos and snapdragon for samsung galaxy s flagship phone and they are working differently..
Click to expand...
Click to collapse
Linux (And Windows as well) is/was designed to run on a very large number of platforms, like RISC, ARM, X86, AMD64, IA64 etc. Both Exynos and Snapdragon processors are based on the ARM/ARM64 Platform so this kind of abstraction OSes do already from long time
Thunderoar said:
maybe in the future there is but it will need experienced engineer or whatever it takes to build an os that work for every phone,and of course it is costly to maintain the development like the remix os.but it just nearly impossible(maybe not)
Click to expand...
Click to collapse
We are a open source community, look at Linux kernel, everything is possible.
RAZERZDAHACKER said:
You know that when you install Windows, you still need drivers for almost everything, motherboard, gpu, some ssds need drivers to work properly. Maybe in the future because device space is increasing and we might have like chromebooks, 2 partitions for drivers and system files, then after installation, it determines drivers and loads them, then deletes the rest of the double partitions and cleans up. This will take up space though, a lot. And it will take a heck lot of space and will most likely only be available for new devices because what's the point of having devices from 2016 and their files in a ROM for devices from 2020 etc. Space is the only limitation.
Click to expand...
Click to collapse
"Space is the only limitation" Yeah but space is increasing, everyphone have at least 16 GB, only video drivers are very heavy, we may drive some generic video drivers (like xorg-amd, xorg-nvidia etc) All other drivers are relative lightweight, bluetooth, wifi, modems etc.
GenieKnudson said:
Every manufacturer built it's system using public patents (like IEEE 802.11) and multiple private patents, that they acquire or researched. This way all the companies have different architecture means different drivers set and hardware settings. In order to achieve something that you are describing, they have to agree to 1 manufacturing standard (and believe or not no company will agree to this thing). As another person wrote above about installing many drivers and stuff. This will make the ROM extremely heavy and it will take allot of time each time, it will start as it have to check the system and load all the drivers compatible. This is the thing Richard Stallman is saying for many years but close system developed by each and every company have produced 'restrictions on each and every side of the technological field'
Click to expand...
Click to collapse
I think we already talked about some aspect of this answer, private patents? CyanogenMod, AOSP, are opensource those roms run on kinda everyphone out there, we may just write a real "os" based on those roms. What do u thinK?

Why don't phones exist with standard hardware, that you can install any OS on?

I have wondered this for a very long time
Why isn't there any phone hardware which exists (that I'm aware of) where you can simply install any OS you like without jumping through hoops?
I'm referring to something similar to a PC. When you build a PC, it is all standard hardware and you can load any os you want on it, endless flavors of linux, current or old versions of windows, etc. It is simple. Both windows and linux can generally detect all your hardware and install drivers, it is simple.
With phones however it seems you are always limited. You have to find ways to root them, usually requiring exploiting some vulnerability. Hope the bootloader is unlocked. Assuming you aren't a talented developer (like most typical people), you then must search for roms for the phone, usually made by various people on forums sites or similar. It is a big mess. Or if you don't customize it, your stuck with some bloated os that the manufacturer will fail to update.
I don't understand why phones are such a mess like this, and why you can't just buy an OS-less phone, and simply install vanilla android, or any other standardized open source os on it, similar to how things work on a PC?
There aren't any unified standard in the embedded devices in general and in phones in particular. The reason that you can install compatible OS on the PC is because IBM PC is a standard, which specifies how the PC should boot, where to search for the bootloader, what kind of partition table should be on the HDD, how the devices should be connected, how to probe for the hardware, how software should use hardware, and lots of other things.
In embedded word, there aren't such standard. Until recently, every System-on-Chip used its own boot specifications and bootloaders incompatible with each other. Only in the last 2 years something started to change in a better way.

Categories

Resources