Android and Its Derivatives

Discussion in 'Linux Other' started by DevynCJohnson, Jun 15, 2014.

  1. DevynCJohnson

    DevynCJohnson Well-Known Member Staff Member Staff Writer

    Messages:
    1,331
    Likes Received:
    1,070
    Trophy Points:
    113
    Android is considered a Linux distro because it has the Linux kernel. True, the userland is different from desktop systems like Ubuntu, but this is still Linux. Android also has derivatives as do other Linux distros. Yes, there is not just Android, but other substitutes. I am not talking about iOS, Firefox OS, or Ubuntu Touch. I mean, forks/branches of Android exist. This article will discuss the different "Android Distros".

    NOTE: Some people are probably confused by the fact that Android is Linux. Android does indeed use the Linux kernel. True, the "Android Kernel" is not a Vanilla kernel, but the Google developers need to make some minor changes to make the Linux kernel run on a mobile system. For instance, the Vanilla Kernel does not come with the drivers needed to run on Android tablets. For more information on the Android/Linux kernel, you may find some of the links below helpful. Also, if you would like, start a debate in the comments below.

    http://www.linux.org/threads/the-linux-kernel-android.5459/
    https://android.googlesource.com/?format=HTML
    http://elinux.org/Android_Kernel_Features

    Google first released Android in September 2008. Android is a popular mobile/embedded system that uses the Linux kernel. Android is a Unix-like system that uses some code and utilities from NetBSD. The APK packaging system is used just like Debian systems use DEB and Red-Hat systems use RPM. However, Android is not entirely open-source. Most of the operating system is open-source, but not all of it. This is what stimulated the creation of Android's derivatives.

    I am sure that when I said forks and derivatives of Android, many of you thought "CyanogenMod". CyanogenMod appears to be the most popular Android fork. CyanogenMod was first made in 2009. It is entirely open-source and does have some differences with Android. For instance, CyanogenMod has FLAC codec support, CPU-overclocking abilities, and various other features and tweaks. CyanogenMod supposedly has less bloatware than Android, thus, it may run faster on a device than Android. CyanogenMod still uses the APK package system and may use Google's Play Store if the user desires. CyanogenMod uses a customizable launcher that supported various themes/skins. To "install" CyanogenMod, the user must root their Android device and apply the CyanogenMod firmware. Many users report positive experiences with rooting. However, rooting your device will void the warranty of your device. Also, it is possible that something can go wrong with the rooting and installation process. Be sure to backup all data, especially your personal files like music, videos, and pictures. I strongly advise users thoroughly read the official installation instructions and visit the main website for proper instructions and the installer. Do not download CyanogenMod from a third-party because some third-parties may make a malicious installer that can cause problems and create spyware. (http://wiki.cyanogenmod.org/w/CyanogenMod_Installer) (http://www.cyanogenmod.org/)

    Android Open Kang Project (AOKP) is another Android fork. AOKP started in 2011 with the release of Ice-Cream-Sandwich (Android ICS). Like CyanogenMod, AOKP supports APK and is entirely open-source. AOKP is highly customizable. AOKP can even be set to vibrate differently depending on who calls you. If you like customizing your mobile system and you wish to use a fork of Android, then AOKP may be the system for you. (http://www.aokp.co/)

    Baidu Yi is a Chinese fork of Android. The company "Baidu" develops Baidu Yi and has replaced many of the Google applications with their own. Baidu Yi contains proprietary code. (http://rom.baidu.com/home)

    LeWa OS (also called "Music Frogs" or "жабка") is a Android derivative that is optimized for the Chinese language. In other words, this is a localized system. LeWa OS uses the APK packaging system and contains some proprietary code. (English: http://www.lewaos.com/en/) (Chinese: http://www.lewaos.com/)

    MIUI (pronounced as "me you I" and stands for "Mobile Internet User Interface") is an iOS-like Android derivative. MIUI still uses the Linux kernel and supports the APK packaging system. However, the system contains a lot of closed-source code and looks like iOS. MIUI has a virus scanner and is slowly becoming less like Android. MIUI and MIUI devices can be obtained from the company Xiaomi. (http://www.mi.com/en/)

    The company Maizu develops smart phones with their own remix of Android called Flyme OS. (http://en.meizu.com/)

    OPhone uses some code from Android, but OPhone is not a Android derivative. However, it is still an embedded mobile Linux system. (www.ophonesdn.com)

    OmniROM is entirely open-source and uses APK although use of Google's Play Store is discouraged, but permitted. OmniROM has a lot in common with CyanogenMod. (http://omnirom.org/ and https://github.com/omnirom/)

    Replicant is a like CyanogenMod or AOKP, but the focus of the Replicant project is security rather than performance or customizability. Replicant still supports APK and uses the Linux kernel. If you wish to use a derivative of Android and security is an concern of yours, then Replicant is probably the best choice for you. (http://www.replicant.us/)


    XobotOS is an experimental project to replace Android's Java code with C#. The project is no longer maintained. Its purpose was a proof of concept by Miguel de Icaza. Even though XobotOS is no longer used, its existence can still teach us that an OS can still function while being written in a different programming language. It also proves that Android does not need to be written in more than one language. We can hope future programmers learn from Miguel's experiment. Thank you Miguel de Icaza! (https://github.com/xamarin/XobotOS)

    Fire OS is a proprietary Android derivative that still uses APK and the Linux kernel. Many people use this operating system and they probably have no idea it is an Android derivative. Many of you using the device that Fire OS was made for may not even know that Fire OS is the name of the OS on the device. So, what is the name of the device that uses Fire OS........ The Kindle-Fire! Yes, the Kindle Fire is using an Android derivative and it is using the Linux kernel. (https://developer.amazon.com/sdk/fireos.html)

    NOTE: The Nook also uses an Android derivative.


    Not only does Android have forks and derivatives, but so does CyanogenMod. Cyanfox (cyanfox-rom.com), Chameleon OS (chameleonos.org), AOSB (http://probam.net/) and others use CyanogenMod as their base.

    Other Android derivatives exist, but I cannot discuss each and everyone. Android is an embedded mobile Linux and is more common than many of us think. Android and its derivatives are being used by more people and more devices.

    For further reading on Android and friends, you may enjoy this link - http://www.linux.org/threads/android-and-friends-reading-guide.6146/

    Attached Files:

    Last edited: Sep 15, 2014
    spin89, ryanvade and Yesyesloud like this.
  2. Kyle Thompson

    Kyle Thompson New Member

    Messages:
    1
    Likes Received:
    1
    Trophy Points:
    1
    Great article, would love to learn more about the specific derivatives of current popular phones
    DevynCJohnson likes this.
  3. Videodrome

    Videodrome Active Member

    Messages:
    206
    Likes Received:
    78
    Trophy Points:
    28
    Is there a way to run Android on a NetBook?

    I did try an ISO from this site: http://www.android-x86.org. It did seem to basically boot up, but didn't work with my Wifi. Maybe it's my broadcom being difficult as usual?
    DevynCJohnson likes this.
  4. DevynCJohnson

    DevynCJohnson Well-Known Member Staff Member Staff Writer

    Messages:
    1,331
    Likes Received:
    1,070
    Trophy Points:
    113
    There is a way, but you must ensure the architecture is compatible and install any needed drivers. Perhaps, you could get the needed drivers from a vanilla Linux kernel and copy the modules out (if the architecture matches).
  5. Videodrome

    Videodrome Active Member

    Messages:
    206
    Likes Received:
    78
    Trophy Points:
    28
    I think my Netbook connected online with Ethernet when I tried Android, but I wasn't sure how to get drivers or if there is a package manager.
    DevynCJohnson likes this.
  6. curtaintwitcher

    curtaintwitcher New Member

    Messages:
    11
    Likes Received:
    1
    Trophy Points:
    3
    By you perhaps? Android is not a GNU/Linux distro, anymore than router firmware, TomTom, Amazon Kindle or any other Linux based firmware/OS is a "Linux distro".
    DevynCJohnson likes this.
  7. DevynCJohnson

    DevynCJohnson Well-Known Member Staff Member Staff Writer

    Messages:
    1,331
    Likes Received:
    1,070
    Trophy Points:
    113
    Okay, many people debate about Android being Linux. Android uses the Linux kernel, thus it is Linux. Notice that in your post, you say Android is not a "GNU/Linux distro". You are correct, but how are we both correct? We are both correct because you said "GNU/Linux". GNU is the userland; Linux is the kernel. All Linux systems do not have a Linux userland because their is no Linux userland. The userland is GNU. The Hurd operating system is an OS with a GNU kernel (named Hurd) and GNU userland. However, Ubuntu is a Linux kernel with the GNU userland and Android is the Linux kernel with a userland made by Google. The kernel defines the OS type. The userland defines the distro/flavor. Think about this, there is a Debian distro that uses the FreeBSD kernel and the GNU userland (kfreebsd/Debian). Is this distro a Linux distro or a FreeBSD distro?
  8. DevynCJohnson

    DevynCJohnson Well-Known Member Staff Member Staff Writer

    Messages:
    1,331
    Likes Received:
    1,070
    Trophy Points:
    113
    Can you download an x86 Broadcom Linux module/driver and insert it (insmod)? Unfortunately, I am familiar with running Android on anything other than a tablet, so I do not know how you would achieve your goal.
  9. will_lineo

    will_lineo New Member

    Messages:
    2
    Likes Received:
    1
    Trophy Points:
    3
    hello Mr.Johnson, I am a student major in System and Circuit, which focus more on hardware than software. but i want get a job related to embedded system development or linux driver programer, where should i start? is it helpful to learn linux kernel structure?
    DevynCJohnson likes this.
  10. DevynCJohnson

    DevynCJohnson Well-Known Member Staff Member Staff Writer

    Messages:
    1,331
    Likes Received:
    1,070
    Trophy Points:
    113
    Yes, learning the structure of the Linux kernel can help you. This link is a good start (http://www.linux.org/threads/linux-kernel-reading-guide.5384/).
    will_lineo likes this.

Share This Page