Wednesday, 11 April 2018

What Custom Android Launchers Are and Why You Might Want to Use One



choose-android-launcher

One of the many ways you can customize your Android home screen is by replacing it entirely. Android developers can create their own software to replace your home screen — Facebook Home is just one of many options.
Most custom Android launchers are currently focused on providing options, changing your home screen’s theme and icons, and generally tweaking the default interface. With Facebook Home’s release, developers may become even more creative in offering alternatives to Android’s home screen.

How Android’s Home Screen Works

When you press the Home button on your Android phone or tablet, you see your home screen, which is filled with the app shortcuts and widgets you’ve placed there. However, unlock on competing mobile platforms like Apple’s iOS and Microsoft’s Windows Phone, the home screen is basically just another app.
When you press your home utton, you can have Android launch a third-party app that behaves as a home screen, replacing the default home screen. Such pieces of software are often referred to as launchers or home-screen replacements.

What Third-Party Launchers Can Do

Third-party launchers replace your entire home screen, which means they can change the home screen as well as the app drawer. For example, launchers could include themes that affect the look of your home screen and the icons in your app drawer. They could change the look and organization of the app drawer entirely, offering categories and different methods of sorting your installed apps. They could change the graphical effects that occur when swiping around, add a variety of options for tweaking the interface just how you like, and change what taps and swipes on your home screen do.android-app-drawer-categories
The above explanation describes how most third-party launchers currently work, anyway. Facebook Home goes in a different direction by using its control over your home screen to eliminate widgets and place app icons aside, focusing on the latest content from your Facebook friends. Other third party launchers could do similar, moving further away from the standard “home screen with widgets plus app drawer” interface.
nova-launcher-settings

Using Custom Launchers

After installing a custom launcher from Google Play, tapping the Home button will bring up an app chooser. You can select your new home screen and tap Just onceto use it once, or tap Always to make it your new default home screen that appears whenever you tap the Home button.
android-select-default-launcher[4]
You’ll see this option again whenever you install a new custom launcher, allowing you to select your preferred app.
To get the default launcher back, go into the Settings screen, tap Apps, tap your current launcher in the list of installed apps, and tap the Clear defaults button.
android-reset-default-launcher

Example Home Screen Replacements

Here are a few of the more interesting third-party launchers available for Android:
  • Facebook Home – Facebook Home is very different from most home screen replacements. Most custom home screen replacements are for tweakers and replace Android’s home screen with an interface supporting many more options and themes. In contrast, Facebook Home goes a different direction and replaces your device’s home screen with content from your Facebook friends. It’s a good example of just how flexible Android’s interface is, and we may see more interfaces like it from other developers — Twitter has recently indicated a possible interest in releasing its own home screen replacement for Android.
  • Nova Launcher – Nova Launcher supports Android 4.0 and above. It looks similar to Android’s default launcher, but adds a variety of additional options and effects, including the ability to use themes and create custom tabs to categorize the apps in your app drawer. Because it’s so similar to the default interface, it can be installed on a Samsung, HTC, or other manufacturers’ device and set as the default launcher, replacing the manufacturer’s Android skin with a a more stock Android-like experience.
  • Holo Launcher – Holo Launcher works like Android 4.0’s default interface, but it also works on Android 2.2 and above. Holo Launcher can be used to get a more modern-looking home screen on devices running older versions of Android, making an old Android feel like new.
  • GO Launcher EX – GO Launcher EX supports over 5000 themes and its own GO widgets, as well as many included effects and options. If you want something that looks a bit different, you may want to give this a try.
  • Launcher 8 – Launcher 8 offers a Windows Phone 8-like layout for your home screen. It’s another good example of Android’s flexibility, although it won’t be as slick and integrated as a real Windows Phone experience.
launcher-8-on-android

Facebook also recently introduced “chat heads,” floating chat windows that appear above any other app you’re currently using. However, chat heads aren’t the only floating app available for Android. We’ve covered a variety of floating apps you can use on any Android device for everything from chatting to taking notes, browsing the web, and watching videos.
Read More

Seven Things You Don’t Have to Root Android to Do Anymore

For years, Android enthusiasts have been rooting their devices to do things that Android doesn’t allow by default. But Google has added many features to Android that once required root, eliminating the need for many people.
And with every major release of Android, the list of reasons to root a device is getting shorter and shorter—what used to be a requisite reasons for rooting is often an included feature at this point. Here are some of the top examples.

Take Screenshots

You could always take screenshots by connecting your Android smartphone or tablet to your computer, but taking screenshots on your device was once a privilege reserved only for root users. It seems like this was an eternity ago, and if you’re not a lifelong Android user, you may not even be aware there was a time when screenshots required a rooted device. Crazy, right?
But now, it’s simple: press volume down and power at the same time to take a screenshots (or the home button and power on Galaxy devices with physical buttons). And poof—a screencap ready to share with the world. I honestly still can’t believe this was ever not a native function.

Disable Preinstalled Apps

Look, no one likes bloatware. But once upon a time, your personal feelings on the crap your manufacturer or carrier wanted you to have on your phone didn’t matter. You were stuck with it, unless you rooted your handset.
Now, however, you can easily disable preinstalled applications right from Android’s settings. This is particularly useful for the aforementioned bloatware situation, though it’s possible some manufacturers may disable this feature on their devices. That’s an unfortunate downside of such an open operating system. The good news is that it doesn’t seem to be common practice for most major Android OEMs at this point.
To disable a preinstalled application, open Android’s Settings screen, select Apps, and flick over to the All category (this is the default view on Oreo handsets). Tap the app you want to disable in the list.
If you can’t uninstall the app, you’ll see a Disable button where the Uninstall button would be. Tap the button to disable the app. The Disable button may not be available for some essential packages that are part of the Android OS, but you can disable default apps like the Calendar, Gallery, and Clock. You can even disable Android’s built-in keyboard (though we wouldn’t).

Revoke Permissions

This is one area where Android has made very large strides over the last several versions. Once upon a time, you had no control over what apps were allowed to do on your phone and with your information. Since then, it’s evolved to have a bit more broad control, and now incredibly granular control.
Because controlling permissions is so granular now, it’s a little more in depth than just a “click here, then here, then here.”

Restrict Cellular Data

With Android’s built-in tools, you can restrict specific apps from using the cellular data connection in the background. It’s not quite a firewall that blocks network access for specific apps, but it’s still useful.
To take advantage of this feature, go into the Settings menu and select Data usage (on Oreo, you’ll find Data Usage in the Networks & Internet menu). In addition to setting data limits, viewing charts, and disabling mobile data entirely, you can tap a specific app and uncheck the “Background Data” option to prevent the app from using mobile data in the background. The app can still use data if you open it, and can still use data on Wi-Fi networks, but it won’t be able to use the cellular data connection in the background.
You can also tell Android to treat specific Wi-Fi networks like they’re cellular networks. To do this, tap the “Network restrictions” option under the Wi-Fi subsection in the Data Usage menu, then set the Wi-Fi network as “Metered.” This essentially tells Android to restrict data on this network in the same way it does on cellular networks. Super granular control!

Encrypt Device Storage

Android includes built-in encryption support, allowing you to encrypt your smartphone or tablet’s entire storage. When you power it on, you’ll have to enter its encryption password—if you forget this password, you’ll have to perform a factory reset and lose all your data. If your device is stolen, the thief will need your credentials to decrypt it and access your data (assuming it’s powered off).
To encrypt your Android smartphone or tablet, go into it Settings screen, tap Security, and tap Encrypt tablet or Encrypt phone. It’s worth noting that this process will take a while to complete and once it’s done, it’s done. You won’t be able to undo the encryption without a factory reset.

Connect to VPNs

If you want to connect your Android to a virtual private network—say, your work VPN—you don’t need to root it and install a VPN client like you once did. Hooray for innovation!
Some VPNs may have their own standalone apps, but ifyours doesn’t, you can go into the Settings menu, tap More under Wireless & Networks, and tap VPN. You’ll be able to add and edit multiple VPN profiles. On Oreo, you’ll find the VPN option in the Network & Internet menu.

Restart Your Phone With One Tap

Once upon a time, you had to either turn your phone off and back on again manually, or you had to root to restart it with one tap. Honestly, it’s a stupid thing, but man what a difference it makes—I can’t tell you how many times I turned my phone off to restart it and forgot to turn it back on before this feature became commonplace.
I’m sure you already know how to do this: long-press the power button to bring up the menu, then tap restart. It’s easy.

While there are still some things you can only do by rooting your Android, Google’s doing a good job of adding features to the Android OS where they make sense.
Read More

10 Android Tweaks That Still Require Root


Many features that once required root have been added to Android over the years. However, many advanced tricks still require rooting your Android smartphone or tablet.
In an ideal world, you wouldn’t have to root — rooting reduces your device’s security. That’s part of why CyanogenMod’s founder is looking at adding additional features to Cyanogenmod that would eliminate the need for root.

Back Up and Restore App Data

The popular Titanium Backup app, which allows you to back up an app’s data and then restore it later, requires root access. Android apps aren’t supposed to be able to read other apps’ data — that’s a security vulnerability — so this still requires root access. Much Android data is automatically backed up, but Titanium Backup allows users to back up everything and easily restore it, even data that wouldn’t normally be backed up.
Android includes some built-in backup features, but they’re hidden — you have to access them by plugging your device into a computer and running a special command. While the built-in backup features are so hidden and not all app data is backed up to the cloud, Titanium Backup is still very useful.

Change Your DNS Server

Want to change your Android phone’s DNS server and use a third-party DNS server like Google Public DNS for possibly improved speed, OpenDNS for web filtering, or Tunlr for easy access to geoblocked online media services?
Android doesn’t make this easy. You can change the DNS server for each individual Wi-Fi network you connect to, but you can’t set a preferred DNS server system-wide. This requires a third-party app like SetDNS. Sure, you could just change the DNS server on your router and you’d be okay when you were at home, but this wouldn’t help you when you were out and about. Android make this possible without rooting, but it’s extremely tedious.

Remove Bloatware Completely

Android now provides a way to disable apps that were preinstalled by the carrier or device’s manufacturer. However, they’ll just be disabled — so they’ll still take up space on the device’s storage. With root access, you can delete the applications from the system partition, recovering the wasted storage and gaining the ability to use it for other things.
This isn’t necessarily recommended, as it can cause problems if you remove apps that the device needs. That’s why disabling bloatware apps is generally a better idea — but that’s little comfort if you don’t have much storage space left and you want to recover space wasted by bloatware.

Gain Low-Level Hardware Access

After rooting your device, you can install a custom Linux kernel on it. This enables you to access features that require kernel-level changes. For example, Nexus 4 users can install the Touch Control app to wake their smartphones with a simple swipe on the display rather than a press often power button. This is implemented as a kernel module because it requires that low-level access.
Other commonly used features that often require custom kernels include display calibration, CPU downclocking (for more battery life), and CPU overclocking (for more performance.)

Manage App Permissions

When you install an app, Android shows you the permissions the app requires. This is a take-it-or-leave-it offer — if you want to install a game but that game requires an obscene level of permissions, you can’t just deny individual permissions.
Root access allows you more control over app permissions on your phone, as this feature isn’t available to typical users. The good news is that Android 4.3 includes a hidden permissions manager named “App ops.” This feature likely isn’t stable and shouldn’t be relied on yet, but it’s hopefully a sign of things to come — with any luck, we’ll see a stable permission manager introduced in Android 4.4.
android-app-ops

Mount USB Sticks

It’s possible to connect a USB stick to your Android tablet using a standard USB OTG cable. However, Android doesn’t support USB sticks natively. If you’d like to connect a USB stick to your tablet so you can watch videos without wasting all your tablet’s storage, you’ll need root access and something like the StickMount app. This utility makes files on USB sticks available on the Android device’s file system so other apps can access them, but it requires low-level access available only to root users.

Get Full File System Access

Root gives you full access to the system by definition, so it’s no coincidence that people who want full read/write access to the entire file system will require root. Root allows you to use file managers that can access the entire file system and even edit Android’s configuration files by hand in text editors — something hardcore Android tweakers may find useful.

Automate More Things

We’ve previously covered Tasker, an advanced application that lets you automate your Android device. Tasker allows you to make things automatically happen when certain conditions are met. However, some features you can change yourself require root access when controlled by an application. If you want to enable or disable airplane mode, connect or disconnect VPNs, or do other advanced things that Android doesn’t allow apps to do, you’ll need to give Tasker root access.

Stream To Apple AirPlay Devices

The AirAudio app makes Android devices AirPlay-compatible, allowing you to stream audio from your device to an AirPlay-enabled receiver like an Apple TV. AirAudio does this by capturing the audio data coming from an application and sending it over the network. Android doesn’t normally allow apps to listen to other app’s audio signals, so AirAudio requires root access to do its thing.
This is an example of the sort of unforeseen app that’s only possible because root allows the app to break out of Android’s security model.

Adblock

We’re obviously an ad-supported website, so we generally don’t jump up and down telling everyone how to disable ads. However, it’s impossible to deny — one big reason many people root their devices is to block ads at the system level.
Many Android apps are free specifically because they contain ads, so using a trick to disable advertisements in the app when you could just spend $0.99 for the full, ad-free app isn’t very nice to developers. Don’t expect Google to make this feature stop requiring root anytime soon.

This isn’t a comprehensive list, but it gives you an idea of some of the most common reasons for rooting. Wi-Fi tethering doesn’t necessarily require rooting anymore, either — even if the carrier has disabled the built-in tethering features, most devices can use Wi-Fi tethering via the FoxFi app.
Read More

Android is Based on Linux, But What Does That Mean?

android-linux
Android may be based on Linux, but it’s not based on the type of Linux system you may have used on your PC. You can’t run Android apps on typical Linux distributions and you can’t run the Linux programs you’re familiar with on Android.
Linux makes up the core part of Android, but Google hasn’t added all the typical software and libraries you’d find on a Linux distribution like Ubuntu. This makes all the difference.

“Linux” vs. The Linux Kernel

The big difference here comes down to what we mean by Linux. People use the term “Linux” to mean many different things. At its most basic, Linux means the Linux kernel. A kernel is the core part of any operating system.
We also refer to Linux distributions as simply “Linux.” However, Linux distributions aren’t just the Linux kernel. They contain many other pieces of software, such as the GNU shell utilities, Xorg graphical server, GNOME desktop, Firefox web browser, and so on. That’s why some people think the term GNU/Linux should be used for “Linux distributions” like Ubuntu, Mint, Debian, Fedora, Arch, openSUSE, and others.
Android uses the Linux kernel under the hood. Because Linux is open-source, Google’s Android developers could modify the Linux kernel to fit their needs. Linux gives the Android developers a pre-built, already maintained operating system kernel to start with so they don’t have to write their own kernel. This is the way many different devices are built — for example, the PlayStation 4 uses the open-source FreeBSD kernel, while the Xbox One uses the Windows NT kernel found in modern versions of Windows.
You’ll even see the Linux kernel version running on your device under About phone or About tablet in Android’s Settings.
linux-kernel-version-on-android-about-screen

The Differences

There’s some debate over whether Android qualifies as a “Linux distribution.” It uses the Linux kernel and other software, but it doesn’t include much of the software Linux distributions normally include.
When you boot an Android device, the Linux kernel loads just like it would on a Linux distribution. However, much of the other software is different. Android doesn’t include the GNU C Library (glibc) used on standard Linux distributions, nor does it include all of the GNU libraries you’d find on a typical Linux distribution. It also doesn’t include an X server like Xorg, so you can’t run standard graphical Linux applications.
Rather than running typical Linux applications, Android uses the Dalvik virtual machine to essentially run applications written in Java. These applications are targeted at Android devices and the application programming interfaces (APIs) Android provides rather than being targeted at Linux in general.
android-architecture

Why You Can’t Run Desktop Linux Software on Android?

Because Android doesn’t include a graphical X server or all the standard GNU libraries, you can’t simply run Linux applications on Android. You have to run applications written specifically for Android.
Android does have a shell like the one you’ll find on Linux. There’s no way to access it out-of-the-box, but you can install an app like Android Terminal Emulator to gain access to this terminal environment.
By default, there’s not much you can do here. The terminal will still run in a restricted environment, so you can’t gain a full root shell without rooting your Android device. Many standard commands you might need aren’t available — that’s why people who root their device generally install the BusyBox application, which installs many command-line utilities. These utilities are used by applications to do things with their root access.
android-terminal-emulator-uname

Why You Can’t Run Android Software on Desktop Linux

Linux doesn’t include the Dalvik virtual machine, so it can’t run Android apps. The Dalvik virtual machine and all of Android’s other software can’t simply be dropped onto a desktop Linux machine — you’d have to do more work to make Android apps output to a window on a standard desktop through Xorg, for example. Theoretically, with enough work, developers could make Dalvik run on desktop Linux so desktop Linux users could run Android apps on their desktops. The now-dormant Ubuntu for Android product attempted to do something like this, integrating Ubuntu and Android on a phone and allowing those Android apps to run on Ubuntu’s desktop.
BlueStacks and other Android app emulators attempt to do this for Windows and Mac. They run Android on virtual hardware in a virtual machine, allowing them to run Android apps — with a performance penalty — on your desktop. These solutions haven’t proven very popular, though.
apk-on-desktop-linux

Google’s Chrome OS is also based on Linux. Like Android, Chrome OS doesn’t provide a standard X window system, so standard Linux applications can’t run on Chrome OS. Unlike Android, Chrome OS is closer to standard desktop Linux distributions so you can use developer mode to install the missing Linux desktop software.
Read More

What Is Unix, and Why Does It Matter?




Most operating systems can be grouped into two different families. Aside from Microsoft’s Windows NT-based operating systems, nearly everything else traces its heritage back to Unix.
Linux, Mac OS X, Android, iOS, Chrome OS, Orbis OS used on the PlayStation 4, whatever firmware is running on your router — all of these operating systems are often called “Unix-like” operating systems.

Unix’s Design Lives On Today

Unix was developed in AT&T’s Bell Labs back in the mid-to-late 1960’s. The initial release of Unix had some important design attributes that live on today.
One is the “Unix philosophy” of creating small, modular utilities that do one thing and do them well. If you’re familiar with using a Linux terminal, this should be familiar to you — the system offers a number of utilities that can be combined in different ways through pipes and other features to perform more complex tasks. Even graphical programs are likely calling simpler utilities in the background to do the heavy lifting. This also makes it easy to create shell scripts, stringing together simple tools to do complicated things.
Unix also had a single file system that programs use to communicate with each other. This is why “everything is a file” on Linux – including hardware devices and special files that provide system information or other data. It’s also why only Windows has drive letters, which it inherited from DOS — on other operating systems, every file on the system is part of a single directory hierarchy.
UNIX BELL LABS

Tracing the Unix Descendants

Like any history going back over 40 years, the history of Unix and its descendants is messy. To simplify things, we can roughly group Unix’s descendants into two groups.
One group of Unix descendants were developed in academia. The first was BSD (Berkeley Software Distribution), an open-source, Unix-like operating system. BSD lives on today through FreeBSD, NetBSD, and OpenBSD. NeXTStep was also based on the original BSD, Apple’s Mac OS X was based on NeXTStep, and iOS was based on Mac OS X. Many other operating systems, including the Orbis OS used on the PlayStation 4, are derived from types of BSD operating systems.
Richard Stallman’s GNU project was also started as a reaction to AT&T’s increasingly restrictive Unix software licensing terms. MINIX was a Unix-like operating system created for educational purposes, and Linux was inspired by MINIX. The Linux we know today is really GNU/Linux, as it’s made up of the Linux kernel and a lot of GNU utilities. GNU/Linux isn’t directly descended from BSD, but it is descended from Unix’s design and has its roots in academia. Many operating systems today, including Android, Chrome OS, Steam OS, and a huge amount of embedded operating systems for devices, are based on Linux.
On the other hand, there were the commercial Unix operating systems. AT&T UNIX, SCO UnixWare, Sun Microsystems Solaris, HP-UX, IBM AIX, SGI IRIX — many big corporations wanted to create and license their own versions of Unix. These aren’t quite as common today, but some of them are still out there.
Image Credit: Wikimedia Commons

The Rise of DOS and Windows NT

Many people expected Unix to become the industry standard operating system, but DOS and “IBM PC compatible” computers eventually exploded in popularity. Microsoft’s DOS became the most successful DOS of them all. DOS was never based on Unix at all, which is why Windows uses a backslash for file paths while everything else uses a forward slash. This decision was made back in the early days of DOS, and later versions of Windows inherited it, just as BSD, Linux, Mac OS X, and other Unix-like operating systems inherited many aspects of Unix’s design.
Windows 3.1, Windows 95, Windows 98, and Windows ME were all based on DOS underneath. Microsoft was developing a more modern and stable operating system at the time, which they named Windows NT — for “Windows New Technology.” Windows NT eventually made its way to regular computer users as Windows XP, but it was available for corporations as Windows 2000 and Windows NT before that.
All of Microsoft’s operating systems are based on the Windows NT kernel today. Windows 7, Windows 8, Windows RT, Windows Phone 8, Windows Server, and the Xbox One’s operating system all use the Windows NT kernel. Unlike most other operating systems, Windows NT wasn’t developed as a Unix-like operating system.
Microsoft didn’t start with a completely clean slate, of course. To maintain compatibility with DOS and old Windows software, Windows NT inherited many DOS conventions like drive letters, backslashes for file paths, and forward slashes for command-line switches.
windows-2000-professional-built-on-nt-technology

Why it Matters

Have you ever taken a look at the Mac OS X terminal or file system and noticed how similar it was to Linux’s, and how different they both were from Windows? Well, this is why —  both Mac OSX and Linux are Unix-like operating systems.
Knowing this bit of history helps you understand what a “Unix-like” operating system is, and why so many operating systems seem so similar to each other while Windows seems so different. This explains why the terminal on Mac OS X will feel so familiar to a Linux geek, while the Command Prompt and PowerShell on Windows are so different from other command-line environments.

This was just a quick history that will help you understand how we got to where we are today without getting bogged down in the details. If you want more information, you can find entire books on the history of Unix.
Read More

What’s the Difference Between Jailbreaking, Rooting, and Unlocking?

iphones ipods and ipad
Compared to a PC, phones and tablets are fairly locked-down devices. Jailbreaking, rooting, and unlocking are all ways of bypassing their limitations, and doing things that manufacturers and carriers don’t want you to do.
Some countries have laws that prevent you from doing these things with the devices you paid for and legally own — we won’t get into those laws here.

Jailbreaking

Jailbreaking is the process of removing the limitations put in place by a device’s manufacturer. Jailbreaking is generally performed on Apple iOS devices, such as the iPhone or iPad. Jailbreaking removes the restrictions Apple puts in place, allowing you to install third-party software from outside the app store. Some people may have the perception that jailbreaking is only used for piracy, but this isn not the case — jailbreaking allows you to do things like change your iPhone’s default browser and mail client. Essentially, jailbreaking allows you to use software that Apple doesn’t approve.
Jailbreaking can be performed on other devices with similar limitations. For example, there is now a Microsoft Surface RT jailbreak that allows you to install unapproved desktop programs. (By default, Windows RT systems only allow you to run desktop applications written by Microsoft.) However, the desktop apps must be compiled for ARM, so you can’t run any Windows desktop programs you already have, although open-source applications could be tweaked and recompiled for the Windows desktop on ARM.
Companies like Apple and Microsoft don’t want you jailbreaking to get past a device’s limitations — so you can change the default programs on iOS or run third-party desktop applications on Windows RT. To perform a jailbreak, someone has to find a security vulnerability that allows them to “exploit” the device and get around the manufacturer safeguards.
Android allows users to install third-party applications from outside Google’s app store out-of-the-box and doesn’t need to be jailbroken.

Rooting

Rooting is the process of gaining “root access” to a device. This is generally performed on Android devices, but rooting can also occur on other devices based on Linux, such as Nokia’s now-retired Symbian operating system.
On Linux and other UNIX-like operating systems, the root user is essentially the same as the Administrator user on Windows. After rooting, you can grant specific applications access to root permissions, allowing them to do almost anything they want to the operating system. For example, an application with root permissions could uninstall system applications, install low-level system binaries, revoke permissions installed apps require, and do other crazy things. Almost anything you can do on a proper Linux system, you can do with root access on your phone.
Rooting gets around Android’s security architecture and could potentially cause problems if users don’t know what they’re doing, so Android doesn’t come rooted.
On some devices, rooting may need to be accomplished via a security exploit. Just like jailbreaking, manufacturers generally don’t want you rooting. On some devices, such as Nexus devices (which are also intended for developers), rooting does not require a security vulnerability.
image

Unlocking a Bootloader

Android is an open-source operating system, so anyone can take the Android source code and create their own version of it. This allows custom ROMs like Cyanogenmod to exist. Lots of custom ROMs exist for Android — everything from large projects that support a variety of devices to custom ROMs with a few theme patches some kid whipped up in his spare time.
However, many Android phones come with locked bootloaders. A locked bootloader won’t boot anything but the manufacturer-approved version of Android that comes with the device. Unlocking the bootloader allows you to install custom ROMs — alternate versions of the Android operating system.
This isn’t just useful to geeks — Cyanogenmod brings new versions of Android to devices that manufacturers no longer update. It’s a more vanilla Android experience, too — many people like it because it is an alternative to the manufacturer-customized user interfaces most Android devices come with.
Unlocking a device’s bootloader may also require a security exploit, although companies like HTC and Motorola allow unlocking some devices. Nexus devices (which are also intended for developers) can be easily unlocked.
Unlocking a boot loader can theoretically allow you to install non-Android operating systems, too. For example, you can install Ubuntu for phones or WebOS on a Galaxy Nexus with an unlocked bootloader. The desktop version of Ubuntu can be installed on the Nexus 7, too. Of course, the operating system must be built to be compatible with a specific device. These operating systems probably aren’t particularly stable — but developers can use the devices to run an alternate operating system while they work on it.
cyanogenmod-header
Image Credit: Johan Larsson on Flickr

Unlocking a Phone

Many phones, particularly phones that come subsidized with a contract, come “locked” to a specific carrier. The phone is set up so that it can only be used on that carrier’s network. If you insert a SIM card from a competing carrier into the phone, you will see a message indicating that the phone is locked and cannot be used with the SIM card.
Unlocking a phone allows you to use it with a different SIM card — either to use a different carrier while travelling or to take your current phone with you while switching to a new service provider.
You will generally need an unlock code to unlock the phone. Many carriers will unlock phones once your contract is up, while phones bought outright without a contract may not be locked to a carrier at all. There are ways to unlock phones without a carrier’s permission, too.
locked t-mobile phone
Image Credit: Kai Hendry on Flickr

Not everyone has to jailbreak, root, or unlock their devices. However, the option is there — and now you know why you might want to.
Read More

The Case Against Root: Why Android Devices Don’t Come Rooted



image
We’ve written about rooting your Android smartphones and tablets before, but why don’t they come rooted? Google argues that rooting is a mistake for security reasons, as it subverts Android’s security model.
Over the years, Google has added more and more formerly root-only features to Android – from screenshots to support for encryption and VPNs. The goal is to minimize the need for rooting.

What is Rooting, Anyway?

Android is based on Linux, where the “root” user is equivalent to the Administrator user in Windows. The term “rooting” means gaining root access to your smartphone or tablet and being able to run applications with that root permissions – full system access, in other words.
A standard rooting process will also an application like Superuser or SuperSU. This application supervises access to root. Applications on your device can’t just get root permissions whenever they want – they have to prompt you and you can confirm or deny the request.
image

Breaking Out of Android’s Security Model

Android uses Linux’s security model in a different way. Every Android app runs with its own user ID, or UID. In other words, every app runs as its own user account. This means that every app has its own data isolated from every other app. If you install your bank’s app, its data will be stored so that it’s only accessible by the bank’s app – other apps on your device can’t snoop on it.
On a standard Android configuration, no app can access any other app’s data, no matter how many permissions the app asks for.
This all changes when you run an application as root. The application is no longer running in a sandboxed area – it has access to the entire system. An app with root permissions can read other apps’ data – this is how the excellent Titanium Backup works and why it requires root.

Root Permission Prompts and Malware

The full system access means that malware could potentially exploit root access to do much more damage than it normally could. Once an app is granted root access, it can do anything – run a key logger in the background without telling you, extract your account information from other apps, or even mess up your device by deleting critical system files.
If you know what you’re doing and only download trusted root apps, you can avoid this. However, this is worth remembering when you consider how many less-technical users use Android. They don’t care about running Titanium Backup and having access to the entire root file system – they just want it to work, place phone calls, and play Angry Birds.
In other words, you probably shouldn’t root your relatives’ smartphones and tablets as a favor to them.
image

With Great Power Comes Great Responsibility

The problems don’t only extend to malware. With full access to the root file system, you can delete critical system files in the root file system or disable critical system apps and prevent your device from functioning properly. Windows goes to great pains to prevent average users from mucking around in the C:\Windows folder for the same reason. If the average user doesn’t understand what they’re doing, they can do serious damage to their operating system.
image

Warranty Considerations

Some manufacturers or carriers may try to refuse you warranty service if you have a rooted device. If you’ve used root access to modify your system files and the software no longer works properly, this makes some sense – although you should be able to restore the device to its factory default settings and fix it on your own.
If the device’s hardware is failing, rooting can’t be the cause (unless you’ve installed an overclocking app that required root and killed the hardware with heat). To prevent any arguments, you should unroot the device before taking it in for service.
This is yet another reason why you wouldn’t want to root a non-technical family member’s device – it may cause them problems if they ever need it fixed or replaced.

In summary, rooting grants you great power – more power than Android is designed to give you. (However, it’s Linux underneath, and Linux works just fine with root access.) An app with root access isn’t bound by any permission restrictions and has the potential to cause some serious problems. If you know what you’re doing, you should be okay – but you’ll need to be more careful.
However, this power is only a liability for the average Android user. This is why Android doesn’t come rooted – if any app could pop up a root permission prompt and gain complete access to the system, many less-technical users would allow the access so they can continue using the app. Some apps might even refuse to run without root access just to display nastier ads, just as many ad-supported apps ask for a long list of permissions today. The lack of root helps protect average users.
Read More

SafetyNet Explained: Why Android Pay and Other Apps Don’t Work on Rooted Devices

rooting android phone
Rooting your Android device gives you access to a wider variety of apps and a deeper access to the Android system. But some apps–like Google’s Android Pay–won’t work at all on a rooted device.
Google uses something called SafetyNet to detect whether your device is rooted or not, and blocks access to those features. Google isn’t the only one, either–plenty of third-party apps also won’t work on rooted Android devices, although they may check for the presence of root in other ways.

SafetyNet: How Google Knows You’ve Rooted Your Android Phone

Android devices offer a “SafetyNet API,” which is part of the Google Play Services layer installed on Google-approved Android devices. This API “provides access to Google services that help you assess the health and safety of an Android device,” according to Google. If you’re an Android developer, you can call this API in your app to check whether the device you’re running on has been tampered with.
This SafetyNet API is designed to check whether a device has been tampered with–whether it’s been rooted by a user, is running a custom ROM, or has been infected with low-level malware, for example.
Devices that ship with Google’s Play Store and other apps installed must pass Google’s Android “Compatibility Test Suite”. Rooting a device or installing a custom ROM prevents a device from being “CTS Compatible”. This is how the SafetyNet API can tell if you’re rooted–it merely checks for CTS compatibility. Similarly, if you get an Android device that never came with Google’s apps–like one of those $20 tablets shipped direct from a factory in China–it won’t be considered “CTS compatible” at all, even if you haven’t rooted it.
To get this information, Google Play Services downloads a program named “snet” and runs it in the background on your device. The program collects data from your device and sends it to Google regularly. Google uses this information for a variety of purposes, from getting a picture of the wider Android ecosystem to determining whether or not your device’s software has been tampered with. Google doesn’t explain exactly what snet is looking for, but it’s likely snet checks if your system partition has been modified from the factory state.
You can check the SafetyNet status of your device by downloading an app like SafetyNet Helper Sample or SafetyNet Playground. The app will ask Google’s SafetyNet service about your device’s status and tell you the response it gets from Google’s server.

It’s Up to the App

SafetyNet is optional for app developers, and app developers can choose to use it or not. SafetyNet only prevents an app from working if an app’s developer doesn’t want it to work on rooted devices.
Most apps won’t check the SafetyNet API at all. Even an app that does check the SafetyNet API–like the test apps above–won’t stop working if they receive a bad response. The app’s developer has to check the SafetyNet API and make the app refuse to function if it learns your device’s software has been modified. Google’s own Android Pay app is a good example of this in action.

Android Pay Won’t Work on Rooted Devices

Google’s Android Pay mobile payment solution doesn’t work at all on rooted Android devices. Try to launch it, and you’ll just see a message saying “Android Pay cannot be used. Google is unable to verify that your device or the software running on it is Android compatible.”
It’s not just about rooting, of course–running a custom ROM would also put you afoul of this requirement. The SafetyNet API will claim it’s not “Android compatible” if you’re using a custom ROM the device didn’t come with.
Remember, this doesn’t just detect rooting. If your device were infected by some system-level malware with the ability to spy on Android Pay and other apps, the SafetyNet API would also prevent Android Pay from functioning, which is a good thing.
Rooting your device breaks Android’s normal security model. Android Pay normally protects your payment data using Android’s sandboxing features, but apps can break out of the sandbox on a rooted device. Google has no way to know how secure Android Pay would be on a particular device if it’s rooted or running an unknown custom ROM, so they block it. An Android Pay engineer explained the problem on the XDA Developers forum if you’re curious to read more.

Other Ways Apps Can Detect Root

SafetyNet is just one way an app could check if it’s running on a rooted device. For example, Samsung devices include a security system named KNOX. If you root your device, KNOX security is tripped. Samsung Pay, Samsung’s own mobile-payments app, will refuse to function on rooted devices. Samsung is using KNOX for this, but it could just as well use SafetyNet.
Similarly, plenty of third-party apps will block you from using them, and not all of them use SafetyNet. They may just check for the presence of known root apps and processes on a device.
It’s tough to find an up-to-date list of apps that don’t work when a device is rooted. However, RootCloak provides several lists. These lists may be out-of-date, but they’re the best ones we can find. Many are banking and other mobile wallet apps, which block access on rooted phones in an attempt to protect your banking information from being captured by other apps. Apps for video streaming services may also refuse to function on a rooted device as a sort of DRM measure, attempting to prevent you from recording a protected video stream.

Some Apps Can Be Tricked

Google’s playing a cat-and-mouse game with SafetyNet, constantly updating it in an attempt to stay ahead of people getting around it. For example, Android developer Chainfire has created a new method of rooting Android devices without modifying the system partition, known as “systemless root”. SafetyNet initially didn’t detect such devices as being tampered with, and Android Pay worked–but SafetyNet was eventually updated to detect this new rooting method. This means Android Pay no longer works along with systemless root.
Depending on how an app checks for root access, you may be able to trick it. For example, there are reportedly methods to root some Samsung devices without tripping the KNOX security, which would allow you to continue using Samsung Pay.
In the case of apps that just check for root apps on your system, there’s an Xposed Framework module named RootCloak that reportedly allows you to trick them into working anyway. This works with apps like DirecTV GenieGo, Best Buy CinemaNow, and Movies by Flixster, which don’t normally work on rooted devices. However, if these apps were updated to use Google’s SafetyNet, they wouldn’t be so easy to trick in this way.

Most apps will continue working normally once you’ve rooted your device. Mobile payment apps are the big exception, as are some other banking and financial apps. Paid video-streaming services sometimes attempt to block you from watching their videos as well.
If an app you need doesn’t function on your rooted device, you can always unroot your device to use it. The app should work after you’ve returned your device to its secure, factory state
Read More

Tuesday, 10 April 2018

8 Reasons to Install LineageOS on Your Android Device

CyanogenMod was formerly the most popular custom ROM for Android devices. Unfortunately, a short-lived effort at making the ROM the basis of a business-to-business software company sank the entire CyanogenMod team and its former assets, including the name and community servers. But all isn’t lost: many of the original developers have jumped into the new LineageOS project—a direct follow-up to CyanogenMod. While the extensive device support isn’t quite what it used to be, Lineage is still the first stop for up-to-date community ROMs for many users.
Up-to-Date, Stock Android
LineageOS provides you with an up-to-date version of Android. It’s also a pure, stock Android experience. Yes, the Lineage developers add lots of their own tweaks and a handful of apps. However, they respect Google’s interface. The tweaks the operating system adds don’t feel out of place—many of them are just added to the Settings screen as new options. Because it dispenses with the additional bloat a lot of manufacturers and carriers add, LineageOS is also very fast.
This is the biggest reason to install a custom ROM. If it supports your device, it will provide you with a pure, up-to-date Android experience. It’s a way to revitalize old Android devices that manufacturers are no longer updating.

Privacy Guard

Privacy Guard lets you control which permissions installed apps can use, and which permissions new apps get by default. This gives you an iOS-style permission experience on Android, so you can decide whether that app should be allowed to access your location, contacts, and other private data while still using the app. This is based on an Android feature named App Ops to which Google removed access.
Privacy Guard also displays a notification when you’re using an app with blocked permissions. If an app isn’t working properly, this notification reminds you that you may want to re-enable some permissions. You can enable Privacy Guard and control notifications by heading to Settings > Privacy > Privacy Guard.

SuperUser

cyanogenmod-superuser-root-access-settings
The “Superuser” screen integrates root permissions into Android’s Settings screen. This interface functions as a traditional way to allow and disallow superuser requests from apps, but it also allows you to enable or disable root for your entire device. You don’t have to connect your phone or tablet to your computer and run any commands, and you won’t lose root when upgrading. LineageOS is compatible with root access if you want it, and allows you to disable root access if you don’t need it.

Interface Tweaks

The “Interface” settings screen is packed with options. You can tweak the Status Bar, Quick Settings panel, Notification Drawer, and Navigation Bar. For example, you could reorder the buttons on the Navigation Bar at the bottom of your screen, or rearrange the order of the tiles in the Quick Settings panel.
The Status Bar pane has a Brightness control toggle, which allows you to adjust your device’s screen brightness just by sliding your finger back and forth on the notification panel at the top of your screen. It’s a great way to increase screen brightness if you can’t see your screen in direct sunlight, for example.

Equalizer

The AudioFX app provides system-wide equalizer controls you can use to adjust the sound coming from your device, enabling bass boost, activating an equalizer, and selecting presets that match the music you listen to.

Button Options

Use the “Buttons” screen to control what your device’s buttons do. For example, you could long-press the volume buttons to switch music tracks. This is a great solution for skipping between songs without pulling your phone out of your pocket, if you don’t have a headphone cable with an integrated remote.
LineageOS even includes the ability to enable keyboard cursor control, so that your volume keys move the text cursor when your software keyboard is open. This could make typing more efficient, allowing you to adjust the cursor without having to move your finger a pixel to the left or right on the touchscreen.

Profiles

LineageOS includes profiles, which you can find under Settings > Users or by long-pressing the power button, and then tapping the “Profile” option. Profiles are groups of settings. For example, say you always set your phone to vibrate mode and disable mobile data when you’re at work. You could group those settings into a “Work” profile and just switch to the profile instead of changing each individual setting. You can also activate profiles using Tasker.
LineageOS also includes a handful of its own apps, like the Trebuchet home screen launcher, the clock home screen widget, a File Manager with root file access, a custom music player, and a terminal emulator. You can also install many of these apps on other Android devices, and you can all be replace them with other apps you may like better.
Read More