Open Source CM10.1 for Dell Streak 7 continuation - Dell Streak 7

First you need to have giveen's original port installed: http://goo.im/devs/giveen/jellystreak (via the old thread: http://forum.xda-developers.com/showthread.php?t=2130081). The most important thing this does is installing the TWRP "recovery" bootmenu thingy. You can use it when powering on/restarting the dell streak 7 and then keeping power+volup pressed and then choosing "install update from sdcard" or so.
With AOKP there is one install image that wipes /system and an ota update. I have not tested the ota update.
Download for the AOKP 4.2 build for the Dell Streak 7: http://w3studi.informatik.uni-stuttgart.de/~haagch/aokp/
The non-ota update wipes /system. So you have to reinstall gapps every time too, preferably before rebooting (android deletes settings for apps that are not installed I think).
The "official" gapps package uses neon instructions that don't work on tegra2. You'll see the keyboard, tts, etc. crashing all the time. "tonyp" has created a gapps package that uses "old" libraries that work without neon instructions. So you should use this instead of the official gapps:
Download for non-neon gapps: http://goo.im/devs/tonyp/non-neon-gapps
Gesture typing on the keyboard doesn't seem to work for me, but tts works and it doesn't seem to be crashing.
Known issues for me:
[*]sensors don't work: rotation, accelerometer, gps (I think), magnet field (Sensor driver is sensors.p3.so for now, maybe later giveen gets open source drivers to work)
headphone jack doesn't mute/transfer for some headsets like ones with built in microphones
bluetooth keyboard
Performance problems. Especially when the ram gets full. You can use a ram manager like https://play.google.com/store/apps/details?id=com.jrummy.apps.memory.manager with the Aggressive or Extreme preset to make that problem go away with the cost of background apps being killed very quickly.
Here is the repository: https://github.com/ChristophHaag/android_device_dell_streak7
And here is how to build it on Archlinux:
AOKP: https://gist.github.com/ChristophHaag/6334554
Cyanogenmod: https://gist.github.com/ChristophHaag/6078249
I'm new to android but maybe some other people know something, so I post whatever I come about. Maybe someone else wants to get started too and finds this helpful.
If you want to engage in bug finding and fixing yourself:
Remote debugging c works like this:
On the android device you do
Code:
gdbserver --remote-debug :5039 --attach 1
Which will attach gdbserver to the process with pid 1 and listen on port 5039 on all interfaces.
For a gui debugger I tried nemiver:
For $ANDROID I use the path where the cyanogenmod was checked out.
Code:
nemiver --remote=<STREAK7-IP>:5039 --gdb-binary=$ANDROID/android/system/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gdb --solib-prefix=$ANDROID/android/system/out/target/product/streak7/symbols/ $ANDROID/android/system/out/target/product/streak7/symbols/init
And in edit-preferences for sources I added some paths like symbols/, symbols/system/lib and the android/system directory.
There's also a statically compiled gdb that you can use over ssh or so: http://dan.drown.org/android/howto/gdb.html
Obsolete first look into the CyanogenMod adb bug:
I think the problem is in line 1068 in init.c
Code:
if (!action_queue_empty() || cur_action)
timeout = 0;
each time I looked when it comes there the cur_action->name was "property:sys.usb.config=none".
Maybe it is connected with the adb issue. When I googled for the
Code:
E/UsbDebuggingManager( 367): Communication error:
E/UsbDebuggingManager( 367): java.io.IOException: No such file or directory
E/UsbDebuggingManager( 367): at android.net.LocalSocketImpl.connectLocal(Native Method)
E/UsbDebuggingManager( 367): at android.net.LocalSocketImpl.connect(LocalSocketImpl.java:238)
E/UsbDebuggingManager( 367): at android.net.LocalSocket.connect(LocalSocket.java:108)
E/UsbDebuggingManager( 367): at com.android.server.usb.UsbDebuggingManager.listenToSocket(UsbDebuggingManager.java:79)
E/UsbDebuggingManager( 367): at com.android.server.usb.UsbDebuggingManager.run(UsbDebuggingManager.java:115)
E/UsbDebuggingManager( 367): at java.lang.Thread.run(Thread.java:856)
issue I found surprisingly many people having issues with this, but few answers.
But I also found e.g. this: https://gist.github.com/steven676/5...c-remove-obsolete-ro.debuggable-1-trigg.patch
so the problem may be in https://github.com/ChristophHaag/an...lob/master/prebuilts/root/init.streak7.usb.rc
but I didn't have time to really read documentation to that.
I think this file complements $ANDROID/system/core/rootdir/init.usb.rc
I'll either play around with that or I'll add debug output in android.net.LocalSocketImpl.connect(LocalSocketImpl.java:238)
Code:
connectLocal(fd, address.getName(), address.getNamespace().getId());
Then I would at least know what it's trying to do and it would get easier.
Many of the results I saw from googling mentioned that it might have to do with netd.
On the streak 7 I get this:
Code:
cat /dev/socket/netd
cat: can't open '/dev/socket/netd': No such device or address
I'm not sure if this is how it should behave...
An observation is that adbd run from a command line seems to start without an issue and listens on a port specified with
Code:
setprop service.adb.tcp.port 5555
but the access over adb connect <STREAK7-IP> does only say "unauthorized". And "start adbd" does nothing. None of the programs seem to have --help or -h, so I have to look closer into whether they can be started directly.
I'll change "[ro.adb.secure]: [1]" in /default.prop to 0 and see whether that does anything.
In the other thread from giveen I said that I don't see the log spam. This was with debugging in the developer settings disabled. When I enable it, the logspam starts. But whether it is enabled or not, init still eats 100% cpu. The trouble with the debugging is that each time it is enabled and I want to disable it, the streak 7 immediately reboots.
Now that I had logcat via ssh running I caught this when the reboot happened:
Code:
W/dalvikvm( 367): threadid=50: thread exiting with uncaught exception (group=0x40b0e930)
E/AndroidRuntime( 367): *** FATAL EXCEPTION IN SYSTEM PROCESS: UsbDebuggingHandler
E/AndroidRuntime( 367): java.lang.NullPointerException
E/AndroidRuntime( 367): at com.android.server.usb.UsbDebuggingManager.closeSocket(UsbDebuggingManager.java:125)
E/AndroidRuntime( 367): at com.android.server.usb.UsbDebuggingManager.access$200(UsbDebuggingManager.java:46)
E/AndroidRuntime( 367): at com.android.server.usb.UsbDebuggingManager$UsbDebuggingHandler.handleMessage(UsbDebuggingManager.java:177)
E/AndroidRuntime( 367): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime( 367): at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime( 367): at android.os.HandlerThread.run(HandlerThread.java:60)
Looks bad.
For looking at the android code I just use grep and ls with globbing for the c and config files and for the java part I imported it in eclipse via this method: http://source.android.com/source/using-eclipse.html
This is a build I haven't tested yet: http://w3studi.informatik.uni-stuttgart.de/~haagch/cm-10.1-20130820-UNOFFICIAL-streak7.zip
This is giveen's original nvflash that I am not sure I am allowed to put there as giveen has not put any license information in there: http://w3studi.informatik.uni-stuttgart.de/~haagch/JB_Beta2.1.zip But then it's all apache code and there are no notices in reagards to the apache license or changed files anyway. If not, you can just tell me and I'll remove it.
------------------------------------------------
So the call to connectLocal() that throws the exception has as parameters
fd: FileDescriptor[263]
address namespace: RESERVED with address name space id: 1 and address name: adbd
That doesn't help me much yet, but there are frequent calls with FileDescriptor[263] and namespace RESERVED, id 1, name rild (radio service) that don't throw an exception.
So it's a "valid" file descriptor... But I think the problem is still that adbd is not started by init...
The whole UsbDebuggingManager.run method is
Code:
public void run() {
while (mAdbEnabled) {
try {
listenToSocket();
} catch (Exception e) {
/* Don't loop too fast if adbd dies, before init restarts it */
SystemClock.sleep(1000);
}
}
}
where listeToSocket() is ultimately throwing the exception.
I have also read a bit about how adbd is supposed to work. Apparently in android 4.2.2 they introduced rsa encryption. It looks very similar to ssh. You have your authorized public keys on the device in /data/misc/adb/adb_keys (like ~/ssh/authorized_keys) and on your computer you have your public key in ~/.android/adbkey.pub
So I put my ~/.android/adbkey.pub in /data/misc/adb/adb_keys on the streak 7 and started adbd from the command line on the device. And indeed, when I connect with "adb connect <STREAK7-IP>" I get "<STREAK7-IP>:5555 device product:cm_streak7 model:Streak_7 device:streak7" with "adb devices -l" and adb shell works. It's a bit unrelated, but this applies: https://code.google.com/p/android/issues/detail?id=48126
But the actually important part, the "start adbd" still doesn't do anything.
It really must be somethin with /init.streak7.usb.rc. The stuff in /sys/class/android_usb/android0/ seem to be set all wrong...
------------------------------------------------
I'll just keep posting random things I discover that I find strange or interesting and if anyone knows anything about any of those, they can just chime in.
In /init.streak7.usb.rc there is the line
Code:
write /sys/class/android_usb/android0/iProduct $ro.product.model
"getprop ro.product.model" says "Streak 7" but /sys/class/android_usb/android0/iProduct apparently doesn't seem to be able to take a string with a space because "cat /sys/class/android_usb/android0/iProduct" returns "Streak". You can write directly to it with "cat "Streak 7" > /sys/class/android_usb/android0/iProduct" but it only saves up to the space. I don't think that's really a problem but strange anyway.
I have googled for another tegra 2 device and looked at its usb init rc: https://raw.github.com/CyanogenMod/android_device_samsung_p4-common/ics/init.p3.usb.rc
Adding a section with on property:sys.usb.config=adb did nothing and it seems I haven't been able to google what should be in /sys/class/android_usb/android0/idProduct for the streak 7.
I think I'll just look into how init on android works and how the triggers work. Then it shouldn't be too hard to figure out what exactly it is trying to do and why it is failing.
------------------------------------------------
I was trying to get my head around why "getprop sys.usb.config" would always return "none" and the system wouldn't respond to "setprop sys.usb.config adb,mtp" in any way. So I got to suspect that /init.streak7.usb.rc was not used at all. Then I compared the imports and found that /init.streak7.rc did use a relative path for /init.streak7.usb.rc while all the other init*.rc were using absolute paths.
So I'm not sure if it this is really the thing that fixed it, but it's the latest thing I tested and now init's 100% cpu and adb are fixed: https://github.com/ChristophHaag/an...mmit/eee0625e11cfafd510c3bada6ae67a133766c0f4
Edit: Wait, it happened again. Maybe not. :/
Hm, no, definitely not it. Can't even reproduce it. It worked after adb sideload and wiping the cache and the dalvik cache.
At least it's clear now that init's 100% cpu usage and adb not working and the dalvik crash when disabling debugging are all the same issue.

Good luck. I'll give you a hint as a parting gift. The USB issue is not kernel related.
I really dont care to licenses anything so you are free to do with as you will. Personally, I will continue to develop in private and if there are kernel changes, as per the GPL, I will make those updates available.

[moved to hidden section in first post]

[moved to hidden section in first post]

[moved to hidden section in first post]

If you really want to help, let me know. I'll let you in on my secret.

giveen said:
If you really want to help, let me know. I'll let you in on my secret.
Click to expand...
Click to collapse
Do I want to help? Does this thread look like I don't?
As I've said I'm new to the android code so I'm not really sure what I'm doing yet.
After rebooting with debugging enabled and adb sideloading an image it works for some reason (until you disable debugging in the developer settings, then it loops on sys.usb.config=none again) but it's all clearly not like intended by /init.streak7.usb.rc. /sys/class/android_usb/android0/idVendor is 18d1 and android_usb/android0/idProduct is d002 which is set in init.usb.rc for on property:sys.usb.config=adb...? I just don't get it yet. The init readme says declaring an action or service twice is an error but this is from upstream, so adb is supposed to always be 18d1:d002?
So if you know something I don't I would obviously greatly appreciate it if you told us. In fact you can directly push to the repository now if you wish to do so.

ccxxx said:
Do I want to help? Does this thread look like I don't?
As I've said I'm new to the android code so I'm not really sure what I'm doing yet.
After rebooting with debugging enabled and adb sideloading an image it works for some reason (until you disable debugging in the developer settings, then it loops on sys.usb.config=none again) but it's all clearly not like intended by /init.streak7.usb.rc. /sys/class/android_usb/android0/idVendor is 18d1 and android_usb/android0/idProduct is d002 which is set in init.usb.rc for on property:sys.usb.config=adb...? I just don't get it yet. The init readme says declaring an action or service twice is an error but this is from upstream, so adb is supposed to always be 18d1:d002?
So if you know something I don't I would obviously greatly appreciate it if you told us. In fact you can directly push to the repository now if you wish to do so.
Click to expand...
Click to collapse
The problem is CM.
I switched to AOKP which is close to Google's AOSP, and the problem solved itself. Something in the way USBManager is programmed in CM screwed things.

I got around to download aokp today.
The build system is slightly different, but easy enough to set up. I first just did an "update" to it, but the adb/init problem persisted, acore kept crashing (but deleting data for the contacts app "solved" that).
So I decided to finally make a factory reset. Not really sure what happens there, but that didn't delete the apps in /system/apps I think so I just wiped everything except sdcard etc. with twrp and installed the image again. This time it works better it seems. adb seems ok for now, cpu usage is okay.
The 4.2.2. google apps for that are these: http://goo.im/gapps/gapps-jb-20130812-signed.zip
Now I'm not sure: Would a factory reset/complete reinstall have helped with cyanogenmod too?
aokp is missing a few features cyanogenmod has, most notably the performance settings where you can overclock and set up zram with the gui.
Keyboard still crashes. Not really surprising that illegal instruction hasn't changed.
There doesn't seem to be recent apps when long pressing the home button. Strange.
Not sure how much I like it yet and whether I'd rather use cyanogenmod.
Here it is: http://w3studi.informatik.uni-stuttgart.de/~haagch/aokp_streak7_unofficial_2013-08-23.zip
Thanks, giveen.

No problem. AOSP keyboard burns RAM like nothing else. If you switch to an 3rd party keyboard , you will no longer crash. This problem is common on a lot of low memory devices. ZRAM doesn't really work. I have a script that I want to test out that DJ_Steve had originally wrote. Also, I will send you the sensor files you need to modify to get them to work.

google has this keyboard in the play store https://play.google.com/store/apps/details?id=com.google.android.inputmethod.latin and I got it from http://dl.androidnext.de/com.google.android.inputmethod.latin.apk. Works ok, but has issues like you can't disable the "ducking" blocking of "offensive" words...
The sensors changes you commited work well. Rotation/acceleration/magnet/light seem to react normally.
It's almost usable now.
For people building it from source: If you get a weird error like "ERROR: couldn't find <type 'property'> in build.prop" and can't find anything useful with google... I deleted out/* and did a complete rebuild and then it worked.
Plugging in a headset still doesn't turn off speakers but it seems only like a minor issue since it seems to be detected just fine:
Code:
V/WiredAccessoryManager( 374): Headset UEVENT: {SUBSYSTEM=switch, SWITCH_STATE=1, DEVPATH=/devices/virtual/switch/h2w, SEQNUM=2006, ACTION=change, SWITCH_NAME=h2w}
V/WiredAccessoryManager( 374): newName=h2w newState=1 headsetState=1 prev headsetState=0
W/AudioPolicyManagerBase( 103): checkOutputsForDevice(): No output available for device 0004
V/WiredAccessoryManager( 374): device h2w connected
Google tts is crashing like the keyboard (
Code:
F/libc ( 6525): Fatal signal 4 (SIGILL) at 0x5dc80738 (code=1), thread 6525 (gle.android.tts)
) but pico tts seems to work, at least with english.
A Google search gave me this:
http://stackoverflow.com/questions/7102606/sigill-in-android-ndk-code/7104177#7104177
And further this might be worth looking into: http://forum.xda-developers.com/showthread.php?t=2186251
Not sure whether it's simply neon instructions or register usage of 16+ since I haven't looked that close into the build system yet. But probably ILL_ILLOPC means it's a neon instruction.

So sensors work now? I've been at that for months and I wasn't sure if I got it right. If I got it right, that was months of work there that I wasn't even sure was going to work.
Headphones and microphones need to be adjusted in mixer_paths.xml

Months of untested work that just works? Impossible! :good:
I haven't done a really thorough test, but they all seem to be doing something. https://play.google.com/store/apps/details?id=imoblife.androidsensorbox seems to have a little problem with the directions with the rotated screen though. But in general it all does something that seems related to what I do to the device.

The AKM8973. is a chip that is normally found on qualcomm devices. So I had to track down the right HAL and then modify to work with Tegra sword ices. It's a terrible hack/slash, modify and pray it works job. I had Just finished. Does the screen rotate?

giveen said:
The AKM8973. is a chip that is normally found on qualcomm devices. So I had to track down the right HAL and then modify to work with Tegra sword ices. It's a terrible hack/slash, modify and pray it works job. I had Just finished. Does the screen rotate?
Click to expand...
Click to collapse
Yes, the screen rotates. And even more impressively, it rotates correctly!

Good. Now i can focus my energy on the camera.

Hm, having difficulty with my compiles booting. Chris, if you compile and upload the zip, I can give you my goo.im information and you can push it as an auto-update. Don't forget to include your name in there somewhere for credit as well as you are now part of the team.

giveen said:
Hm, having difficulty with my compiles booting. Chris, if you compile and upload the zip, I can give you my goo.im information and you can push it as an auto-update.
Click to expand...
Click to collapse
I have edited my first post.
http://w3studi.informatik.uni-stuttgart.de/~haagch/aokp_streak7_unofficial_2013-08-25.zip
http://w3studi.informatik.uni-stuttgart.de/~haagch/aokp_streak7-ota-eng.c-builder.zip
giveen said:
Don't forget to include your name in there somewhere for credit as well as you are now part of the team.
Click to expand...
Click to collapse
Yea, maybe if I contribute something substantial instead of cosmetic changes.

OH yeah, bluetooth keyboard, I see that as one of your issues. I'll upload a bunch of idc files that should at least address that issue, not sure though.

Are you missing any commits? I noticed your update has sensor working but my build does not.

Related

[Q] GLESv3 Errors

I'm not sure if this belonged more in development because that's what its about or more here because it involves a problem with development more then the release of something new.
I'm trying to write an application using the Android NDK and GLESv3. However it appears the library file my S4 active uses is invalid.
Compiling the GLESv3 sample provided with the NDK version 9c produces the following error:
Code:
FATAL EXCEPTION: GLThread 33090
java.lang.UnsatisfiedLinkError: dlopen failed: could not load library "libGLESv3.so" needed by "libgles3jni.so"; caused by empty/missing DT_HASH in "libGLESv3.so" (built with --hash-style=gnu?)
at java.lang.Runtime.loadLibrary(Runtime.java:362)
at java.lang.System.loadLibrary(System.java.525)
at com.android.gles3jni.GLES3JNILib.<clinit>(GLES3JNILib.java:24)
at com.android.gles3jni.GLES3JINView$Render.onSurfaceCreated(GLES3JNIView.java:56)
It seems to be claiming the libGLESv3.so on my phone was compiled incorrectly.
I have an S4 Active, I537
Android 4.3
Any help would be greatly appreciated. I reported this on qualcomm's forms but besides telling me that they have excellent Quality Assurance so I must be the one in the wrong, (which is impossible since it's google's sample) have done nothing.

[Q] Xposed module with sqlCipher

Hello,
I'm having a problem to load sqlCipher libs in my module.
I'm hooking PackageManagerService, so I'm under systemService context and in my DB Class CTOR i'm trying to execute: SQLiteDatabase.loadLibs(context);
I've all the necessary libs under libs directory and the needed zip file under assets
but i'm getting exception that the libs could not be found .
I've added them to the build path.
I also tried the same configuration with regular android application and it works there...
How can i add sqlCipher to my xposed model?
Thanks,
Hooked code runs as the hooked app. From the way you're loading sqlCipher (I'm not familiar with SQL libraries) that might be the problem.
GermainZ said:
Hooked code runs as the hooked app. From the way you're loading sqlCipher (I'm not familiar with SQL libraries) that might be the problem.
Click to expand...
Click to collapse
From my testing the first exception i get is when sqlCipher runs System.loadLibrary("stlport_shared");
the exception i get is:
*** FATAL EXCEPTION IN SYSTEM PROCESS: Thread-89
E/AndroidRuntime(22675): java.lang.UnsatisfiedLinkError: Couldn't load stlport_shared from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.myapp-1.apk"],nativeLibraryDirectories=[/system/lib]]]: findLibrary returned null
E/AndroidRuntime(22675): at java.lang.Runtime.loadLibrary(Runtime.java:355)
E/AndroidRuntime(22675): at java.lang.System.loadLibrary(System.java:525)
shnapsi said:
From my testing the first exception i get is when sqlCipher runs System.loadLibrary("stlport_shared");
the exception i get is:
*** FATAL EXCEPTION IN SYSTEM PROCESS: Thread-89
E/AndroidRuntime(22675): java.lang.UnsatisfiedLinkError: Couldn't load stlport_shared from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.myapp-1.apk"],nativeLibraryDirectories=[/system/lib]]]: findLibrary returned null
E/AndroidRuntime(22675): at java.lang.Runtime.loadLibrary(Runtime.java:355)
E/AndroidRuntime(22675): at java.lang.System.loadLibrary(System.java:525)
Click to expand...
Click to collapse
Well the Context you get in the hooked code isn't your app's but the system's context. Hooked code really is completely unrelated to your app – forget you're using Xposed and assume the modification is directly happening in the APK you're hooking. You can't access your app's resources/files/… normally.
So with all that in mind, I don't know if there's a way to directly load the library.
You could try getting your app's context from an existing context (see Context.createApplicationContext(…)). Alternatively, you might have to do the modification from your app instead (by e.g. sending a broadcast from the hooked app to your normal app when necessary).
Of course, maybe there's a way I don't know about.

Proguard, Minify, and stacktrace

I am getting an "Unfortunately Has Stopped" message in my release version that does not occur in the debug version. This happens both on my S4 mini and on the Samsung RTL devices. The debug version works on all of these devices plus on the Genymotion emulators. The error occurs using Jsoup when i tap my menu choice which activates Jsoup.connect.
So far i have determined that the problem is most likely caused by ProGuard, in the minify process. The release program does run if i set minifyEnabled to false but i would prefer to un-apply it just where necessary. So i need to know a few things ...
1. what is the syntax for the proguard statement to eliminate org.jsoup.* from being minified
2. which file is this statement to be added to, proguard-android.txt or proguard-rules.pro
3. how do i initiate a stack trace? It must be simple but my searches have not turned up a step by step procedure for this. I believe that with a stack trace i could identify which specific Jsoup modules need to be eliminated from minify rather than minifying the complete lib
It seems that these are very basic questions. Virtually every post that i have read on these subjects assumes that you know these things. Hope you can help.
Mick
OK, making a little progress.
Found this example -keep class org.joda.time. { ; }** so I substituted jsoup in place of joda, put it into the proguard-rules.pro file and my release build now runs
I found the -s or --stacktrace option and where to set it in the IDE. However I am lost about where to find the actual stacktrace when I run the program. I would appreciate any help i can get on how to get a stack trace, especially while running a release version of the program

[ROM][LINK] Sailfish OS Droid 4 maserati

I DID NOT MAKE THIS ROM!!!!!! - A developer by the name of TheKit made this rom, so do not give me any credit for this rom, give it all to them.
I am simply linking it because I love this phone, I love Sailfish OS on it, and I think a lot of people would enjoy Sailfish OS on it as well and just don't know it is available.
Q: "What is Sailfish OS and why should I use it?"
A: Sailfish OS is a great OS for many reasons. Having used multiple android roms I can attest to the fact that:
1. It has MUCH better battery life (however it has a weird battery read bug, see issues below)
2. It is MUCH faster and generally more stable when it comes to the things that work (your calls won't drop, your system won't lock up due to lack of ram, etc.)
3. It has a great gesture driven UI that is a joy to use and very gorgeous to look at. No more of this all white bull**** Google has been forcing down our throats since 2014
Q: "How good is the battery life?
A: After a day of playing cave story at work and reading discord and listening to music, I am at about 30-40% end of day (I start at 8:30AM, stop at 4:00PM)
Okay now that the Q/A segment is over, lets get to the real meat
ISSUES
1. Battery Read is wonky, it only goes in 10% increments until it reaches 20%, then it starts going in 5% increments
2. If you use the 2.1.3.7 build keyboard backlight is broken, but it works fine on the 2.1.0.11 build
3. Bluetooth is wonky, I was able to play audio through speakers in the 2.1.3.7 build...
4. FM Radio is broken too
5. As the maemo-talk thread says, CDMA is untested, and like on Photon Q, most likely does not work. GSM works great though! :good:
6. The old 2.1.0.11 build has a slew of issues compared to the new 2.1.3.7 build. These include data not working out of box, wifi requiring a reboot to work, and auto rotation not working in a majority of apps by default. Consult this thread and the maemo talk thread for more help, and if you want rotation anywhere, install patchmanager 2.0 and auto rotate anywhere from warehouse for sailfish os.
Alien Dalvik install tutorial
I did not make this and do not know who did. the developer claims someone threw a brick at them with an sd card attached. The sdcard contained links to these files in the form of a text file names "monkeyAIDS.txt"
https://drive.google.com/file/d/1mS6di1jYfVeDoFBjcANS6SmfkhGyEKoa/view - AD Jolla C (different from the Turing phone rpm, this is built for 3.1.x kernels)
http://sfos.scanf.su/maserati/alien-patched.tar.gz
So extract both files to your ~/ (home) directory and type in the following:
devel-su
[insert root password you set in settings]
zypper in [alien dalvik rpm]
rsync -a /home/nemo/alien/ /opt/alien/
ln -s /vendor /opt/alien/system/vendor
reboot
OPTIONAL: fix for the default 320PPI value
devel-su
[insert root password]
vim /opt/alien/system/build.prop
change ro.sf.lcd.density to the value of your choosing (Droid 4 is 256)
Keyboard Backlight Fix, works on 2.1.0.11, don't know about 2.1.3.7 -- Thank you @moodroid for this legendary patch!
On <2.1.3.7, I got the keyboard backlight to work by creating an /etc/mce/20backlight.ini with:
[KeyPad]
BrightnessDirectory=/sys/class/leds/keyboard-backlight
Then do 'pkcon install mce' and 'systemctl restart mce'.
Download Links
Here is the thread with the Download Link to the 2.1.0.11 build
https://talk.maemo.org/showthread.php?t=99031&page=9
If you don't mind a lack of keyboard backlight and want a more up to date build, grab the new and fabulous leaked 2.1.3.7 Build:
https://drive.google.com/file/d/1k3MOCrMvbFb114Omf0MzSvnQ7wBkTiWH/view?usp=sharing
Basically if you are fed up with how ****ty the latest Lineage OS builds are and just want to try something new, give this a try. Why not? What have you got to lose. All in all great work by TheKit and I am very happy with the port as it is and I think you will be too.
Hi,
On <2.1.3.7, I got the keyboard backlight to work by creating an /etc/mce/20backlight.ini with:
[KeyPad]
BrightnessDirectory=/sys/class/leds/keyboard-backlight
Then doing 'pkcon install mce' and 'systemctl restart mce'.
Hope you get the OK to share your AD success!
Thanks
moodroid said:
Hi,
On 2.1.3.7, I got the keyboard backlight to work by creating an /etc/mce/20backlight.ini with:
[KeyPad]
BrightnessDirectory=/sys/class/leds/keyboard-backlight
Then doing 'pkcon install mce' and 'systemctl restart mce'.
Hope you get the OK to share your AD success!
Thanks
Click to expand...
Click to collapse
dude you are a legend!
I would add that to the OP but you are first comment so anyone viewing the op will see this. I will definitely tell TheKit about this (then again, he gave you the 2.1.3.7 build so you can just tell them yourself)
Greetings,
I've been playing around with SailfishOS on my Droid 4 in the past few days, and I have a few questions about the whole thing. TheKit publicly shared a 2.1.3.7 build for the Droid 4 on his thread at Maemo, is that the one you are talking about or is it a different build? As someone mentioned this specific build seems to have issues with wifi, and I have the same problem. I can't post links, but the download link to the build I mentioned is on page 12.
The 2.1.0.11 build seems to work fairly well, however I wasn't able to install Alien Dalvik. After the installation the "Android Support" button does show up in the settings app, however nothing happens when I click the start button. I also attempted installing an apk both via the GUI (by clicking on it in the downloads) and via the command line by using "apkd-install", but it doesn't seem to work. Full log of the installation process attached.
I talked with TheKit, and the 2.1.3.7 build I mentioned (the one at page 12) is indeed outdated. He just updated the OP at Maemo and added the latest 2.1.3.7 build, which I just flashed and it's working great. Also installed Alien Dalvik following the instructions in the OP and it seems to be working fine as well! However I wasn't successful with the backlight fix method yet.
For anyone wondering how I flashed the latest build I went CM11 --> SailfishOS 2.1.0.11 --> SailfishOS 2.1.3.7 (rel2).
NIKKOS said:
I talked with TheKit, and the 2.1.3.7 build I mentioned (the one at page 12) is indeed outdated. He just updated the OP at Maemo and added the latest 2.1.3.7 build, which I just flashed and it's working great. Also installed Alien Dalvik following the instructions in the OP and it seems to be working fine as well! However I wasn't successful with the backlight fix method yet.
For anyone wondering how I flashed the latest build I went CM11 --> SailfishOS 2.1.0.11 --> SailfishOS 2.1.3.7 (rel2).
Click to expand...
Click to collapse
Hi Nikkos,
Sorry - that was me that posted the backlight fix, and I agree that it doesn't work on 2.1.3.7-rel2. It'd worked on every other version I tried, and I've now edited my post above. Glad everything is working.
Sorry again
moodroid said:
Hi Nikkos,
Sorry - that was me that posted the backlight fix, and I agree that it doesn't work on 2.1.3.7-rel2. It'd worked on every other version I tried, and I've now edited my post above. Glad everything is working.
Sorry again
Click to expand...
Click to collapse
No worries.
If anyone is wondering how to change the SailfishOS UI scale (I find the default one to be way too big) here's how I did it via the terminal:
Code:
devel-su
rm /etc/dconf/db/vendor.d/locks/silica-configs.txt
dconf write /desktop/sailfish/silica/theme_pixel_ratio value
I believe the default value should be around 1.1; you can also reset the value to stock with:
Code:
dconf reset /desktop/sailfish/silica/theme_pixel_ratio
or read the value with:
Code:
dconf read /desktop/sailfish/silica/theme_pixel_ratio
Not exactly droid 4 related, but thought I'd share.
Okay, I got the backlight to turn on!
Type the following in the terminal:
Code:
devel-su
echo 255 >/sys/class/leds/keyboard-backlight/brightness
It seems to properly react to some triggers like standby after being turned on but not to others like sliding the keyboard in and out (which means it will always stay on if the screen is on, regardless if it's been slided in or out). My assumption is that the keyboard sliding trigger got broken in some way, as I believe that's the way the backlight is being turned on. The events which trigger the backlight seem to be stored in the file /sys/class/leds/keyboard-backlight/trigger, so I assume that would be a good starting point to attempt fixing this.
The keyboard backlight intensity can also be changed, just change the 255 to a different value (it goes from 0 to 255).
Note: this change is not permanent, it will need to be applied again at reboot. Writing a script which executes the above commands at boot should be trivial though, and I will include instructions when I get it done myself.
EDIT:
Here's how to make the change permanent. Following these instructions you will create a Systemd service which will turn the backlight on when active and off when inactive; it will automatically run at boot and it can also be controlled like any other Systemd service (i.e. using systemctl via the terminal)
Type the following commands through the terminal:
Code:
devel-su
cd /etc/systemd/system
touch keyboard-backlight.service
chmod 744 keyboard-backlight.service
You will now need to edit the keyboard-backlight.service file with a text editor (either vim or nano will do, vim comes preinstalled, nano does not). Depending on your preferred text editor, type the following:
Code:
vim keyboard-backlight.service
or
Code:
nano keyboard-backlight.service
Now write the following to the file and save it:
Code:
[Unit]
Description=XT894 keyboard backlight service
[Service]
Type=oneshot
ExecStart=/bin/sh -c "echo 255 >/sys/class/leds/keyboard-backlight/brightness"
ExecStop=/bin/sh -c "echo 0 >/sys/class/leds/keyboard-backlight/brightness"
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
Now type the following to enable the service:
Code:
systemctl enable keyboard-backlight.service
That's it. You can now control the service by using the following:
Code:
systemctl start keyboard-backlight //This will turn the backlight on
systemctl stop keyboard-backlight //This will turn the backlight off
systemctl status keyboard-backlight //This will display the service status
Can anyone share the google drive file from the first post? Is there an alternative link available? Or could you PM me a google drive link? Thanks!
Can anyone suggest the best/correct ROM-slot size for TWRP?
Is it still like for CM/LOS:
800MB for system
10MB for cache
and rest for data as one likes?

Bluetooth Stops working after first reboot?

I recently downgraded my rog phone 3 from android 12 to android 11 while rooting it with twrp and magisk. After I did this, everything worked fine on my system (besides mms for a moment), once it is flashed, the first reboot afterwards completely stops bluetooth from functioning. No startup, nothing. The drivers are just nonfunctional I guess. Anyone else have this issue/ know how to solve? Not very fluent in this and just looking to fix this asap.
Also here is a logcat error that shows itself when I try to enable bluetooth.
FATAL EXCEPTION: BluetoothDatabaseManager
Process: com.android.bluetooth, PID: 2430
android.database.sqlite.SQLiteCantOpenDatabaseException: Cannot open database '/data/user_de/0/com.android.bluetooth/databases/bluetooth_db': Directory /data/user_de/0/com.android.bluetooth/databases doesn't exist
at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:252)
at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:205)
at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:505)
at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:206)
at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:198)
at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:918)
at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:898)
at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:762)
at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:751)
at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:373)
at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:316)
at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.getWritableSupportDatabase(FrameworkSQLiteOpenHelper.java:145)
at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper.getWritableDatabase(FrameworkSQLiteOpenHelper.java:106)
at androidx.room.RoomDatabase.inTransaction(RoomDatabase.java:476)
at androidx.room.RoomDatabase.assertNotSuspendingTransaction(RoomDatabase.java:281)
at com.android.bluetooth.btservice.storage.MetadataDao_Impl.load(MetadataDao_Impl.java:258)
at com.android.bluetooth.btservice.storage.MetadataDatabase.load(MetadataDatabase.java:95)
at com.android.bluetooth.btservice.storage.DatabaseManager$DatabaseHandler.handleMessage(DatabaseManager.java:124)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:248)
at android.os.HandlerThread.run(HandlerThread.java:67)
Caused by: android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14 SQLITE_CANTOPEN): Could not open database
at android.database.sqlite.SQLiteConnection.nativeOpen(Native Method)
at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:224)
... 20 more
I really need help with this if anyone could spare the time.
I have dumped the same stock rom I installed and I have noticed it is missing the bluetooth APEX file. Is it even possible to install an APEX file without reinstalling an entire system? I know the format is similar to APK and i have read/write access to my system partition, so is it possible to do?
Try setting selinux to permissive (from a root command line, run "setenforce 0"). I have a similar issue (messed up permissions when downgrading and I'm trying to debug it now. I'm trying to figure out how to fix those permissions without disabling selinux entirely, as disabling it is a massive security hole.

Categories

Resources