[Defy Android Development] YetAnotherForumUser:
New build w/JellyX, de-fanged fmradio

For those already pining for the days of 2.6.32.60 'goodness' (minus the 'ringtone' bug, maybe even minus the 'black screen' bug?) now that Quarx reverted back to 2.6.32.9 I have some good news. I'm currently running a build which combines Quarx's repo (synced 20130220) with Blechd0se's Jellyx kernel (synced 20130220). The download link is at the bottom of this post.

I patched:

pathmap.mk to get the fmradio stuff to build (apply in build/);

diff --git a/core/pathmap.mk b/core/pathmap.mk
index 91a7fd4..ab55fd6 100644
--- a/core/pathmap.mk
+++ b/core/pathmap.mk
@@ -101,6 +101,7 @@ FRAMEWORKS_BASE_SUBDIRS := \
keystore \
icu4j \
voip \
+ fmradio \
)

#

With that patch (which I posted before but added here for completeness' sake) the fmradio code builds. Unfortunately the code is incomplete and leads to crashes, eg. when the phone is put in airplane mode. The following patch de-fangs the fmradio code by disabling the relevant services. This is a cleaner solution to the current problems than a complete revert of the branch merges which introduced this code. If you feel the urge to debug the fmradio code just build without this patch and watch systemserver crash on entering airplane mode...

SystemServer.java to exclude the fmradio stuff (apply in framworks/base):

diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/
index df36cd7..1d4d57d 100644
--- a/services/java/com/android/server/SystemServer.java
+++ b/services/java/com/android/server/SystemServer.java
@@ -74,8 +74,10 @@ import java.util.Timer;
import java.util.TimerTask;

import java.lang.reflect.Constructor;
+/* FDL20130221: disabled, not complete, causes segfaults, no hardware implementation
import com.stericsson.hardware.fm.FmReceiverService;
import com.stericsson.hardware.fm.FmTransmitterService;
+ */

class ServerThread extends Thread {
private static final String TAG = "SystemServer";
@@ -478,7 +480,7 @@ class ServerThread extends Thread {
} catch (Throwable e) {
reportWtf("starting ThrottleService", e);
}
-
+/* FDL20130221: disabled
try {
Slog.i(TAG, "FM receiver Service");
ServiceManager.addService("fm_receiver",
@@ -494,6 +496,7 @@ class ServerThread extends Thread {
} catch (Throwable e) {
Slog.e(TAG, "Failure starting FM transmitter Service", e);
}
+ */
try {
Slog.i(TAG, "UpdateLock Service");
ServiceManager.addService(Context.UPDATE_LOCK_SERVICE,

This build also contains the kernel logger and phone strings patches from sevenrock's post #15221.

The kernel configuration differs from 'stock JellyX' in the following ways:

Using the SLUB allocator (default is SLAB)

Only interactive/boosted/performance/convervative/powersave/ondemand governors included (default includes a host of fancy governors)

debugfs enabled

sweep2wake disabled (doesn't work yet, once it works it'll probably cause extra battery drain)

BBS tells me the average battery use is 0.7% per hour (data off, Wifi on). In airplane mode it goes down to about 0.3% per hour. All these values are of course related to overclock/voltage and signal strength parameters, YMMV.

Download: cm-10-20130216-jellyx-UNOFFICIAL-mb526.zip (151.6 MB)

md5sum: [FONT="Monospace, Courier New"]49675f07f97a4072bac083edf50bccc1[/FONT]