A modest custom ROM based off AOSP with minimal modifications.
I started cooking ROMs with Android 2.2 FroYo and Android 2.3 Gingerbread mainly. Over the years, I felt more and more satisfied with the community's work, yet the stock "pure" Nexus experience was more and more pleasant by itself.
Android getting more and more mature, starting with Android 6.0 Marshmallow (and its Material Design), I felt like having a stock "pure" Nexus experience, while having root, could be enough for me.
I was wrong: it lacked tiny things here and there. So I made this modest ROM with the few things I missed from the custom ROMs. And that is enough for me.
My work is licensed under the Apache 2 license.
- ShkMod: 17.01.31
- Format: YEAR.MONTH.DAY (follows the latest integrated Android Security Bulletins)
- DAY=00 means a work-in-progress.
- Final release has the day of the Android Security Bulletin as last digits (> 00).
- Subsequent updates might appear, incrementing the last digits even more.
- Android: 6.0.1 android-6.0.1_r78
- Configurable lock pattern size
- (Optional) Ambient Display
- (Optional) Music rocker (skip tracks while screen is off)
- (Optional) Quick Settings one-finger pull-down (right side of the status bar)
- Advanced reboot
- Long press back kills foreground app
- No ADB notification
- Security enhancements
- Password invisible by default
- Screen locks immediately when off by default
- No IME notification
- (Optional) Hide brightness slider
- Quick switch to last app (by long-pressing the recents tasks button)
- (Optional) Pin scramble
- System UI Tuner enabled by default (icon invisible from status bar)
- Speed up animations by 25%
- Displays applications' names while optimizing during boot
- Does not flash recovery
- Refreshed stock icons
- (Configurable) Smart Quick Settings pull-down
- Refreshed Gallery app
- Deactivable Messenging app
- Un-deactivable Dialer app
- Disabled OTAs
- (Optional) Toast shows application icon
Google additions (optional):
- Accepts Google's WebView as alternative
- Google's DNS
- Google's backup
- keyboard (decoder & swipe) libaries
- Camera (interface) library
- cleanup.xml: removes unecessary projects
- roomservice.xml: default ; ShkMod modifications to AOSP
- google.xml: (optional) Google-related stuff
You can remove the last one to get a more OSS experience.
- vendor/shk/androids.sh: lists all AOSP branches (version sort)
- vendor/shk/build.sh: builds ShkMod
- vendor/shk/envsetup.sh: minimalist envsetup for emulator target
- vendor/shk/update.sh: updates ShkMod repositories from AOSP (pull)
- vendor/shk/hosts.sh: hosts files to block ads (not bundled inside the ROM)
- vendor/google/playservices.sh: installs Google's Play Services onto the emulator
- https://github.com/shkschneider/android_build
- https://github.com/shkschneider/android_frameworks_base
- https://github.com/shkschneider/android_packages_apps_Dialer
- https://github.com/shkschneider/android_packages_apps_Gallery2
- https://github.com/shkschneider/android_packages_apps_Messaging
- https://github.com/shkschneider/android_packages_apps_Settings
- https://github.com/shkschneider/android_vendor_shk
- https://github.com/shkschneider/android_vendor_google
List of available (configured) targets (devices):
$ ./vendor/shk/build.sh ...
This work could very easily be ported to any other Nexus device, maybe even other devices — this is AOSP, a solid build for Nexus devices and a solid base for other devices (modulo the proprietary blobs).
Regular AOSP download (including GPG public key):
$ repo init --config-name -u https://android.googlesource.com/platform/manifest -b android-6.0.1_r78
Clone this repository (alters AOSP):
$ git clone https://github.com/shkschneider/android_manifest.git -b shk-marshmallow .repo/local_manifests
Sync:
$ repo sync
The build process has only been tested on Linux x86_64.
$ ./vendor/shk/build.sh shkmod_emulator-eng
This makes the images to be used by the emulator (64-bits only).
Run the last given command to start it and try the ROM on the emulator.
You should get the proprietary blobs out of the device first: Driver Binaries for Nexus Devices.
$ ./vendor/shk/build.sh shkmod_hammerhead-user ... rom-${modName}-${modVersion}-${device}-android-${androidVersion}-${androidBuildId}.zip stock-${modName}-${modVersion}-${device}-android-${androidVersion}-${androidBuildId}.zip
The rom-*.zip file is what you would want to flash on your device using a custom recovery.
The stock-*.zip file contains all final images that you might want to use with fastboot.
This ROM does not claim to live outside of Google's ecosystem. Yet it can.
This ROM comes with AOSP apps (that can all be disabled) but no Google Apps:
- AOSP Launcher
- AOSP Keyboard
- Browser
- Calculator
- Calendar
- Contacts
- Downloads
- Gallery
- Messaging
- Phone (Dialer cannot be disable)
- Settings (cannot be disable)
However, the default build process includes some Google related configurations and blobs to properly support Google Apps.
If you want Google Apps, Open GApps are recommended.
If you want the ROM clean of Google Apps, remove vendor/google/ dependency (google.xml). In such a case, F-Droid is automatically included (uninstallable). I then recommend SimpleMobileTools apps to start with.
This ROM made it so the recovery is UNTOUCHED.
This ROM comes without root.
If you want root access, an Open Source variant is recommended:
- phh's SuperUser (more @ xda-developers)
For this ROM:
- AOSP (and Open Handset Alliance members)
- Chroma-Aosp (mainly zephiK)
- Gabriele Lucci
For everything else: