If you like my work, please consider donating!

SAPPHIRE 0.7.0 DROID (Froyo)

Release Information

ROM Sapphire
Device Droid
Version 0.7.0
Status Release
OS Android 2.2 (Froyo)
License Android: (GPLv2 + Apache), Sapphire: (GPLv2)
Download sapphire-0.7.0-update.zip
Mirrors MediaFire Sh7m MyDroidWorld
MD5 0e0ab30978a32c317d33d792ae3134d4

License Agreement

The core of Android is released from AOSP under a combination of the Apache and GPLv2 licenses. Sapphire is released under the GPLv2 license, which can be found below:

Sapphire ROM - A custom Android OS built from AOSP
Copyright (C) 2010 Austen Dicken (CVPCS)

This program is free software; you can redistribute it and/or modify it under the terms of the
GNU General Public License as published by the Free Software Foundation; either version 2 of
the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not,
write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

Core Features

Below are a list of the core features provided by Sapphire 0.7.0 (for a list of changes since 0.6.2, view the changelog at bottom of the page):

  • Base Features
    • Built from source
    • Fully zipaligned
    • Fully deodexed
    • Fully optipnged
    • Adobe FLASH support Download
  • Kernel Features
    • Overclocking started automatically at boot time (regardless of whether SetCPU is there or not)
    • Proper working “modprobe” command (makes loading/unloading kernel modules easier)
  • Command-Line Tools
    • Vixie-CRON low-level task scheduler (command-line task scheduler)
    • Colored BASH shell (simply type “bash” after entering adb shell or terminal emulator shell)
    • NANO text editor with syntax highlighting (simply type “nano” using a terminal emulator [syntax hiyghlighting for asm, c, css, html, java, php, sh, xml, and more])
    • Busybox (lots of fancy tools and stuffs)
  • Apps
    • Superuser (provides root access)
    • Spare Parts app (allows for some nice tweaking)
    • Dev Tools (good for developers)
    • App2SD works
    • Native IM app
  • ScriptyBox (scripts!)
    • adblock (turns ads on or off in the browser/apps)
    • camsounds (turns camera shutter/record sounds on or off)
    • compcache (turns compcache on/off) requires a kernel that supports it [not provided]
    • cpuinfo (display CPU info)
    • freemem (ensure that 50, 75, or 100 mb of RAM is always available)
    • halt (shuts down the system)
    • meminfo (display memory info)
    • mtdinfo (display internal system partition info)
    • rmapk (remove various APKs, such as amazon mp3 and whatnot)
    • sysro (mounts the system partition read-only)
    • sysrw (mounts the system partition read-write)
    • swapinfo (displays swap space info)
    • switchapk (downloads and swaps between various apps, i.e. milestone and 2.1 music, without the need to put them on the sd card)
    • zipalign_apks (zipaligns ALL apks on the entire system)
  • Other Tweaks
    • Increased wireless scan time to 90 seconds (saves battery life)
    • Reboot to recovery option
    • Ability to pick colors for notification texts (in spare parts)
    • Reduced ring delay
    • FLAC support
    • Use of volume/camera buttons to control music while screen is off (see changelog for instructions)
  • Branding
    • Custom boot animation (looks pretty slick if i say so myself)

Known Issues

Market Not Syncing

Some people have had issues with the market not syncing. This is most likely due to a problem with discrepencies in the release keys that come with Sapphire 0.7.0. We have upgraded to verizon's 2.2 release keys that were leaked with FRF84B, and although market does work, it is likely that there may be issues with syncing or purchase apps. In case you experience these problems, HERE IS A FIX.

Do NOT use this fix unless you are experiencing problems! Problems are most likely caused on market's end with not having the keys for verizon yet. This SHOULD be remedied as verizon prepares to push their OTA out to the public. So I repeat: If you are having problems, use the fix. If not, don't.

Voice Search FC + Location Apps not working

There is a problem with the provided Google Apps due to some of them being improperly packaged during deodexing. Essentially some of the proprietary APK files have raw resources in them, which cannot be compressed or they will fail. This is why certain proprietary apps (like gmail) run while others don't. This was an oversight on my part (and also partly because it was my first attempt at deodexing :D) The voice search bug is found here: Bug#45. The location bug is here: Bug#55. HERE IS A FIX

There are issues with replacing gapps that may cause your phone to become unstable! BEFORE APPLYING THIS FIX BE SURE TO MAKE A BACKUP! This fix may or may not work for you, so it is recommended that you not use it unless you find that you are experiencing problems. Also, if you ARE experiencing problems but this fix doesn't seem to help you, try unzipping the file and copying over JUST the apps that are giving you problems (such as VoiceSearch.apk or NetworkLocation.apk).

Kernels

All supported kernels for this release are provided by P3Droid, and are available on his site: P3Droid Kernels. Special thanks goes out to him for all his hard work on these beauties! :D

Although other froyo kernels (such as ChevyNo1's or Bekits) will more than likely work with Sapphire, it is important to note that sapphire uses a customized initialization process that is written to the boot image. What does that mean? Well, essentially unless the kernel is packaged using Koush and Bekit's AnyKernel format (such as the ones below are), then you will be stuck on the Motorola logo upon install. Thus, the below kernels are recommended!

Overclocking your phone can be dangerous and is guaranteed to increase the likelyhood that it will become unstable. If you are experiencing random hard-reboots or force-closes, consider trying a kernel either with a higher voltage, or a lower clock speed. I personally recommend kernel 7x1000LV that is included, as it provides good speed with good stability, and longer battery life.

Themes

Below are the various themes that have been set up to work with Sapphire 0.7.0. For screenshots of these themes in action, check out the screenshots section on this page!

Download

Theme Name Download Mirrors
Smoked Glass (blue) sapphire-0.7.0-smoked_glass_blue-update.zip MyDroidWorld Sh7m
Smoked Glass (blue) [NO FONTS] sapphire-0.7.0-smoked_glass_blue-NO_FONTS-update.zip MyDroidWorld Sh7m

Theme Installation

Because of how theming is done in android, it is recommended that you always apply a new theme by first reverting back to the stock theme (as themes tend to change different things and don't always overlap). The easiest way to do this is to download both the Stock theme, as well as the theme you want, and then apply them in that order.

Installation of themes is done using update.zip format. As such, simply download the desired theme file to /sdcard/update.zip and then apply it.

Many themes require that text colors be changed as well using the Spare Parts app. It is recommended that you make these changes PRIOR to installing the theme, as the changes themselves require a reboot anyway to take effect. For suggested values for the text colors, check out the theme's corresponding screenshot page.

It is recommended that you WIPE THE CACHE before installing a theme. This simply promotes stability and will prevent some unnecessary problems when you reboot.

Screenshots

Below are some pages linking to screenshots of the system, under various themes. Enjoy!

To be added soon

Installation

Installation is performed using the standard update.zip installation method. The steps of which are:

  1. Download the update.zip file at the top of this page
  2. Reboot your phone into recovery mode
  3. MAKE A BACKUP OF YOUR PHONE
  4. Optionally reset phone to factory default (THIS STEP IS REQUIRED IF YOU CURRENTLY ARE RUNNING A NON-FROYO ROM)
  5. Push sapphire-0.7.0-update.zip to /sdcard/update.zip
  6. Tell your recovery to allow update.zip installation
  7. Install from /sdcard/update.zip

If you plan on installing a new kernel or theme, simply follow the same steps as above with those zip files.

The first time you boot Sapphire will also be the longest. This is because it must rebuild the dalvik cache to use the system. Please give it a fair amount of time (anywhere from 1 to 10 minutes) for this to occur.

Occasionally the system will be unstable following the initial boot of the system. This is generally caused by the dalvik cache being rebuilt, and can often be solved by simply rebooting the phone after the system has fully booted initially.

Report a Bug / Request a Feature

All bug reports and feature requests will be done through Bugzilla, an issue tracker hosted on this site. It requires a valid email to register (which is only used for tracking which users have what bugs), and provides a much better interface to report and track problems or features.

You can find the Sapphire Bugzilla here: CVPCS Sapphire Bugzilla

Donations

As a starving college student, I do this on my free time simply because I love it and want to provide something great to the community. That being said, I would love to be able to devote more time to doing this as a living. If you like the work that I do, please consider making a contribution!

Changelog

Below is the changelog for the system.

A copy of the entire changelog for the system is always included on the device itself at /system/etc/CHANGELOG-SR.

0.7.0:
    Added Eliot Stocker's Music App [eliotstocker]
        Overhaul of the stock Music app.  Now available using switchapk.

    Updated build fingerprint to 2.2 [cvpcs]
        The latest build uses the fingerprint from verizon's FRF84B leak,
        which is for Android 2.2 instead of android 2.1 (as was used before).

    New kernel [p3droid]
        This build of sapphire sports the LV125-1000-v32 kernel from P3Droid's
        website natively

    Modified scriptybox [cvpcs]
        Modified rmapk:
            added ability to remove ChromeToPhone and Tips
        Added compcache:
            enables and disables compcache support

    Switched to FRF84B proprietaries [cvpcs]
        Based the hardware/system files off of the latest FRF84B leak from
        motorola.  Thanks to P3Droid for the leak!

    Added compcache userspace [cvpcs]
        allows for in-RAM swap space, which essentially slightly increases
        the amount of virtual RAM available to the system.

    Added control of media based on volume/camera buttons [cvpcs (camera)]
                                                          [cyanogen (vol)]
        Long-pressing the volume up/down buttons changes tracks
        Long-pressing the camera button play/pauses tracks

0.6.2:
    Re-added compcache executable
        NOTE: compcache support is not yet enabled in the kernel, so although
        the executable is there, unless you load a new kernel with compcache
        support.  Expect support in the next kernel.

    Fixed a control race condition for bluetooth [cyanogen]
        There was a race condition that would cause connections to fail for
        certain bluetooth devices.  Kudos to cyanogen's team for finding this
        error as well as the fix.

    Other tweaks:
        Reduced ring delay [cvpcs]
        Re-added FLAC support [cyanogen]
        Re-added the droid notification sound back [cvpcs]
        Updated to wpa-supplicant 0.6.x [koush]
        Added ChromeToPhone app [cvpcs]

0.6.1:
    Modified scriptybox [cvpcs]
        updated to be relevent to froyo
        added Visual VM to rmapk

    Switched to bekit's kernel [bekit]
        seems to provide more stability for wifi.  also includes various other
        modules that weren't included before

    Fixed a problem with the qwerty touchscreen file not being found [cvpcs]
        didn't really seem to cause any problems, but hey, i hate that it was
        spitting out errors to the log...

    Other tweaks:
        Optipng-ed the whole system [cvpcs]
        Re-added native IM app [cvpcs]

0.6.0:
    Updated to AOSP source for Froyo [cvpcs]
        this update was hell in and of itself to get going, so lots of thanks to
        Sniffle and Koush, as well as support from anyone else! :D

0.5.2:
    Modified SpareParts [cvpcs]
        added ability to customize text colors for download notifications

    Fixed MMS [cvpcs]
        provided proper carrier file (credit to cyanogen for the file itself) to
        properly connect to verizon

0.5.1:
    Added Color Picker in Spare Parts [cvpcs (modifications)]
                                      [cyanogen (base work and commit)]
        provides a method to set the various text colors in the notifcation and
        status bars

    Modified scriptybox [cvpcs]
        added commands:
            help (must invoke as "scriptybox help")
                provides an easy way to get information about the various commands
                included in scriptybox, without actually running those commands
        modified commands:
            {all}
                all commands were updated so that if you run them as:
                  [command] --help
                they will be guaranteed to print out their usage information

    Added command line knock executable [cvpcs]
        provides low-level port knocking functionality without the need for an app

    Other tweaks:
        optipng'ed the entire system [cvpcs (redone with optipng)]
                                     [cyanogen/koush (base optimizer scripts)]

0.5.0:
    Modified scriptybox [cvpcs]
        modified commands:
            mtdinfo
                added code to ensure that the proper functions actually get called
            rmapk
                added code to remove IM

    Other tweaks:
	added new Sapphire brand bootanimation [cvpcs]

0.4.6:
    Added native IM app [pete? (found in one of pete's forums)]
        app to connect to MSN, Yahoo!, and AOL messenger, originally natively included
          with android.

    Modified scriptybox [cvpcs]
	added commands:
            mtdinfo
                displays information about all of the internal system partitions

    Other tweaks:
        changed default kernel to STOCK (no overclock) [cvpcs]
        added basic support for ROMManager [cvpcs]

0.4.5:
    Modified scriptybox
        fixed sysro syncing issues [pete]

0.4.4:
    Modified scriptybox [cvpcs]
	finished changing scriptybox to be bash-based
        fixed a minor typo in the script
	fixed a problem with switchapk not getting the system to recognize the change

    Other features:
        added regular "Reboot" option [cvpcs]
        moved "Reboot into Recovery" under "Reboot" option [cvpcs]

    Other tweaks:
        re-added unknown terminfo file [cvpcs]

0.4.3:
    Modified scriptybox [cvpcs]
        switched over to the new bash shell to make scripts more sleek and managable

0.4.2:
    Added nano text editor [cvpcs]
        provides a simple text editor for use in modifying text files from
          the command line
        provides basic syntax highlighting to common source files such as:
          asm, c, css, html, java, perl, php, sh, xml, and more

    Added Bourne Again SHell (bash) [cvpcs]
        provides a bash shell with much more feature support than the native
          system shell
        is dynamically linked to reduce size, as opposed to other roms which
          use a statically linked bash shell
        provides basic color highlighting features
        set as default shell

    Modified compcache [cvpcs]
        fixed a bug where the ramzswap module would not unload on stop

    Modified scriptybox [cvpcs]
        fixed a bug where scriptybox wouldn't mount the system read-only on some occassions

    Other features:
        added native FLAC support [kruton]
        added "Reboot into recovery" option to power dialog [cvpcs]

    Other tweaks:
        moved wminput from /system/bin to /system/xbin [cvpcs]

0.4.1:
    Modified scriptybox [cvpcs]
        fixed several typos
	fixed bug in switchapk command
        changed internal structure

0.4:
    Switched to default android-omap-2.6.29-bekit_sapphire kernel [cvpcs]
                                                                  [bekit (base)]
        provides overclocking of 250-1000mhz at low-voltage, is patched for
        compcache support, and also includes the following modules:
            cifs, ext2, ext3, ext4, fuse, isofs, jfs, nfsd, nfs, ntfs,
            ramzswap, reiserfs, squashfs, tiwlan_drv, xfs
        also supports wired and wireless tether

    Replaced stock Launcher2 [sniffle]
        provides more columns in the app drawer
        based off helix launcher2

    Added vixie-cron task scheduler [cvpcs]
        ported the vixie-cron (cron) task scheduler to android.  this allows for
        system-level processes to be run periodically whenever the phone is on.
        search google for "cron" to learn more about how this works.  system
        cron tab should be placed at /data/cron/systab.

    Modified scriptybox [cvpcs]
        fixed some typos
        added new commands:
            adblock [cvpcs (speed increase for blocking)]
                    [pete (original blocklist)]
                turns ad blocking on or off
            halt [cvpcs]
                replacement for "shutdown" command
            switch [cvpcs]
                replaces certain apps with replacement versions of them (such as
                2.1 music and milestone music)
        modified commands:
            rmapk
                fixed code to remove the Amazon MP3 app
                added code to remove the AlarmClock app
                added code to remove the Music app
        removed commands:
            shutdown
                removed because it is renamed to "halt"

    Modified init process [cvpcs]
        added script to enable ondemand overclocking upon boot
        added script to start cron daemon if a systab exists

    Other features:
        added animated gif support to webkit [cyanogen]

0.3:
    Added default android-omap-2.6.29-sapphire kernel [cvpcs]
                                                      [AdamZ (base)]
        provides overclocking of 250-1000mhz at low-voltage, is patched for
        unionfs support, is patched for compcache support, and also includes
        the following modules:
            unionfs, squashfs, cifs, xfs, ext2, ext3, ext4, reiserfs, isofs,
            jfs, nfsd, nfs, ntfs, fuse, ramzswap, tiwlan_drv
        also supports wired and wireless tether

    Added scriptybox [cvpcs]
        provides a busybox-like interface to many different command scripts that
        implement a barrage of features.  these commands are:
            camsounds [pete]
                turns the camera shutter and video sounds on and off
            cpuinfo [cvpcs]
                displays information about the cpu
            freemem [cvpcs (added default setting)]
                    [pete (base)]
                ensures that stale processes are killed to keep a specific
                amount of RAM available
            dalvikjit [cvpcs]
                enables or disables JIT compiling in the Dalvik Virtual Mahcine
                (requires a reboot)
            meminfo [cvpcs]
                displays information about memory in the system
            rmapk [cvpcs (streamlined the script)]
                  [pete (idea for the scripts)]
                removes certain applications from the system if they exist
            shutdown [cvpcs]
                powers off the system without reboot
            sysro [cvpcs]
                mounts the system partition read-only and syncs the system
            sysrw [cvpcs]
                mounts the system partition read-write
            swapinfo [cvpcs]
                displays information about swap partitions in the system
            zipalign_apks [cvpcs (streamlined the process)]
                          [pete (base)]
                zipaligns all APKs on your entire system

    Added a custom init system [cvpcs (customizations)]
                               [cyanogen (base ideas)]
        provides a series of scripts that get ran upon boot
        added the following scripts:
            00 - banner: prints a banner upon boot to the syslog
            10 - sysrw: mounts the system partition read-write for the 1* 
                        script block
            11 - depmod: sets up the kernel module directory to ensure that
                         modprobe works
            19 - sysro: remounts the system read-only
            99 - ready: notifies the system that our init process is finished

    Added some tweaks:
        increased the wireless scan interval to 90 seconds [cvpcs]
        increased the default video record quality [fede]

    Other features:
        switched to ChainsDD's Superuser [chainsdd]
        added a default ringtone [cvpcs]

0.2:
    Added custom init.rc [cvpcs]
        provides a way to customize the boot process

    Other features:
        added HQ YouTube app [pete]

0.1:
    Added Superuser [cyanogen]
        provides root access via su

    Added busybox [cvpcs (removed need for modified bionic)]
                  [cyanogen (base)]
        provides a large set of command line executables

    Added libc-ext [cvpcs]
        provides syscalls not included in bionic used by busybox

    Created cvpcs vendor [cvpcs (customizations for my custom build)]
                         [cyanogen (base vendor setup)]
                         [koush (base device setup)]
        removed the need for koush's motorola/sholes-open device or cyanogen's
        vendor/cyanogen vendor setup.

    Customized build setup [cvpcs]
                           [cyanogen (used his ideas for build.prop overrides)]
        modified the build setup from scratch to support some extra features.

    Added CWiid library [cvpcs]
        provides support for connecting wiimotes to the phone via bluetooth

    Other features:
        added custom boot animation [cvpcs]
 
releases/sapphire-0.7.0.txt · Last modified: 2010/08/04 23:53 by Austen Dicken
 
Except where otherwise noted, content on this wiki is licensed under the following license:GNU Free Documentation License 1.2
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki