Is it possible for me as a single developer to write an OS for Android phones that can turn on with a logo and have a simple onscreen keyboard for text input which receives text commands and can take selfies and save them? How do I go about building it and how long might it take?
If you have a two year old phone, chances are that it's running an older OS. However there is way to get the latest Android OS on your old smartphone by running a custom ROM on your smartphone.
While you can't replace Android OS with Linux on most Android tablets, it is worth investigating, just in case. One thing you definitely can't do, however, is install Linux on an iPad. Apple keeps its operating system and hardware firmly locked, so there is no avenue for Linux (or Android) here.
Tizen is an open source, Linux-based mobile operating system. It is often dubbed an official Linux mobile OS, as the project is supported by the Linux Foundation.
Windows phone OS is a closed-source code mobile OS developed by Microsoft Corporation and used by multiple smart devices (personal digital assistants, smartphones, and touch devices). Windows phone OS is based on a compact version of .
Telecom operators often require rigorous security measures on todays phones so it's very hard to program your own OS on a phone out on the market. Also you would need access to the circuit board schematics, chip details and so on, which is not going to happen :-).
There is a high complexity involved between developing an Android application and using that application. For users, it is very easy and for developers, it is a quite tough job for them and the above points which have been listed justify this statement. Please do share your opinions and thoughts in the comments section.
Designing apps in Android is the most important part. You have to design applications in such a way that it suits all or almost all the screens in the universe. The screen resolution is not the only major concern here but you have to take care of the OS versions too.
Many applications, even very large and complex ones, were developed by a single person. For example, Linus Torvalds created the initial Linux kernel all by himself. The first Java compiler and virtual machine were created by a single person: James Gosling.
If you mean from scratch: it would certainly be possible. But it requires a lot of human resources :-). Manufactures of mobile phones often have hundreds of programmers, and yet the SW it often filled with bugs :-).
Simplifying things you could say that there's often two SW modules in a mobile phone:
The UI OS could be for example Linux or something simpler. A vanilla Linux kernel can easily run on almost any modern mobile phones.
The second part is the baseband OS. This part usually requires real time properties to be able to handle communication with the mobile network as the timing needs to be precise when sending data in specific "time slots".
There's only one catch: you need to find a "open hardware mobile phone" where to put the OS on. Telecom operators often require rigorous security measures on todays phones so it's very hard to program your own OS on a phone out on the market. Also you would need access to the circuit board schematics, chip details and so on, which is not going to happen :-).
One idea could be OpenMoko which is a "open phone project": http://wiki.openmoko.org/wiki/Main_Page or the Google Android project.
Also, the CPU:s used in todays phones, such as TI OMAP, are often available via development boards such as http://www.igep-platform.com/index.php?option=com_content&view=article&id=46&Itemid=55
The down thing here is that the board does not contain a baseband chip to handle communication towards the mobile network.
Edit: About building and running SW for mobile phones. What happens in the startup of a mobile phone depends on the hardware platform obviously but something like this could happen (this is also true for most embedded systems):
If the ASIC would have a NOR flash it could execute directly without first uploading the SW into the SDRAM.
The OS in the SDRAM could be a vanilla Linux kernel. The only thing the Linux kernel would need is a few information blocks such as memory size, physical location of that memory and so on (one way is using an ATAG list). Of course it would also need to know some of the internals of the ASIC, this would be added to the Linux kernel. But most chips out on the market today exist in the Linux kernel already. Nokia has for example contributed a lot of code to the TI OMAP3430 adaption and this can be seen in the kernel source code itself (arch/ directory or similar). I am not certain which phones from Nokia uses this chip, but it's probably the high-end Linux and Symbian phones.
Giving a more detailed answer than above would require a few pages, so your best bet would be to use the answers you got on SO and try to use it to get more information from elsewhere.
Good luck :-)
Android is also open source, if you're not looking to start from scratch. Otherwise, you'll need to find documentation for your phone's architecture. Do you have a particular phone in mind?
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With