[DEV] Android 4.0.1 Audio problems - HD2 Android Q&A, Help & Troubleshooting and Genera

HD2 audio dev.
Good news - Nexus1:
<rapmv78> I got audio partially working on nexus one
<cruonit> @rapmv78 how did you do it... outline
<cruonit> need it for hd2 :|
<rapmv78> The issue seems to be that the audio legacymode driver which we have does not expect multiple threads of audiopolicy services especially when there is request from each thread to set format/channels/sampling rate etc. There is code in openOutputStream in AudioHardware.cpp, which seems to be the issue. I have a hack which just ignores different set requests. Only first one sticks. The following code modification seems to
<rapmv78> if (mOutput) { if (status) { if (0) { *status = INVALID_OPERATION; } else { LOGD("Output stream already exists, using existing channels and format"); *status = NO_ERROR; } } return mOutput; }
<rapmv78> I tried it with the music app and was able to play mp3s. However there is a small issue with the audio switching from speaker to headset randomly. There are still some issues.
<rapmv78> just build audio.primary.qsd8k.so with the hack and drop it in /system/lib/hw and restart android
other discussion references:
http://forum.xda-developers.com/showthread.php?t=1348670&page=6
http://forum.xda-developers.com/showthread.php?t=1348479&page=3
already started topics:
http://forum.xda-developers.com/showthread.php?t=793353

now does this hack work as far as the incall audio, voice output and, Phone sounds ECT.? Or just for what you have stated?

some ringtones work some not :|

Cruonit said:
HD2 audio dev.
Good news - Nexus1:
<rapmv78> I got audio partially working on nexus one
<cruonit> @rapmv78 how did you do it... outline
<cruonit> need it for hd2 :|
<rapmv78> The issue seems to be that the audio legacymode driver which we have does not expect multiple threads of audiopolicy services especially when there is request from each thread to set format/channels/sampling rate etc. There is code in openOutputStream in AudioHardware.cpp, which seems to be the issue. I have a hack which just ignores different set requests. Only first one sticks. The following code modification seems to
<rapmv78> if (mOutput) { if (status) { if (0) { *status = INVALID_OPERATION; } else { LOGD("Output stream already exists, using existing channels and format"); *status = NO_ERROR; } } return mOutput; }
<rapmv78> I tried it with the music app and was able to play mp3s. However there is a small issue with the audio switching from speaker to headset randomly. There are still some issues.
<rapmv78> just build audio.primary.qsd8k.so with the hack and drop it in /system/lib/hw and restart android
other discussion references:
http://forum.xda-developers.com/showthread.php?t=1348670&page=6
http://forum.xda-developers.com/showthread.php?t=1348479&page=3
already started topics:
http://forum.xda-developers.com/showthread.php?t=793353
Click to expand...
Click to collapse
Post this in the Dev section I think, this is definitely worthy of more attention. Note that Tytung has thanked your post

Related

[APP] StegDroid Alpha v 0.75

Hi guys/gals
I'm working on this app for my final year dissertation. It performs Echo Steganography on wave files. My app uses this to encode short text messages in an audio file, then share it. I've just got the Steg side of things working, so I wanted to get some early feedback on whether it works for other people (and if it's awfully slow - it uses a lot of Fourier Transforms etc...).
This is very early days, so the app isn't anything like ready for primetime yet, but the basics are in place. I'd really appreciate it if you could download it and:
* Have a go at embedding some text in a recording and seeing if it correctly extracts it again.
* Run the tests available in the menu
* Email me one of your recordings (tfmw2 [at] cam [dot] ac [dot] uk) to see if I can extract the data on my phone.
* Supports encryption with a shared key
* Transcodes audio files to ogg format for sharing
Updates (0.75)
* Added Multicasting of messages to contact groups
* Fixed bug with sharing files in paranoid mode
* Better memory management, should work more reliably with longer messages
* Reduced error rate (less garbled messages)
* Reduced file size by 33%
* Other bug fixes
Any problems let me know!
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Cheers
I'm not sure what this does =\
The app records a file from the microphone and embeds a secret message into it. You can send that file to someone, and if they've got the same app they can extract the secret message from the audio file. Anyone listening to the audio file wouldn't be able to tell that it's got a message hidden in it, as the difference is hard to distinguish with the human ear.
I've uploaded a new version, it's a bit more stable and a bit easier to use!
Interesting, maybe we can team up this will be an interesting feature for my project
Works pretty well, cool idea too!
I was able to make it fail though by using a long jumble of letters (I screenshotted before and after to compare) but it still only got about 5 wrong (little diamond with a ? In the middle).
Nice work!
Sent from my Nexus One using XDA App
Thanks Meltus
Could you let me know the length of the string. Were the wrong characters at the end or distributed throughout? What kind of audio input were you testing with (voice message, background noise, music etc.)?
Update
Now supports basic crypto. Run tests from the menu before you start to check the crypto test passes (if it doesn't, let me know!).
fredley said:
Thanks Meltus
Could you let me know the length of the string. Were the wrong characters at the end or distributed throughout? What kind of audio input were you testing with (voice message, background noise, music etc.)?
Click to expand...
Click to collapse
Length of the string was about 30 characters, the wrong characters were distributed and were just regular letters.
As for the audio it was just me tapping on the mic for about 20 secs.
I've been doing more tests too and it only seems to occur when you have a few repeating characters. I typed out the keyboard lines and it got it correct, until i started repeating every other character a few times, then it started to get a few wrong.
Meltus said:
Length of the string was about 30 characters, the wrong characters were distributed and were just regular letters.
As for the audio it was just me tapping on the mic for about 20 secs.
I've been doing more tests too and it only seems to occur when you have a few repeating characters. I typed out the keyboard lines and it got it correct, until i started repeating every other character a few times, then it started to get a few wrong.
Click to expand...
Click to collapse
That's strange! The embedding works bit-by-bit, rather than byte-by-byte, so it's very strange that repeated chars should cause an issue. I'll look into it though. Did you try the same test with continuous sound, such as music? I'll see if I can replicate it here. What hardware/android version are you using?
Are you using a set algorithm to code messages and decode them? Or does it shift from how long the coded message is to the non-coded message? This is an interesting app that could serve a lot of uses, excellent idea! Hopefully this is seen all the way through to "perfection", its a keeper.
I will be watching this blog closely and will test the app. Cant wait until its totally complete.
--CueSA
fredley said:
That's strange! The embedding works bit-by-bit, rather than byte-by-byte, so it's very strange that repeated chars should cause an issue. I'll look into it though. Did you try the same test with continuous sound, such as music? I'll see if I can replicate it here. What hardware/android version are you using?
Click to expand...
Click to collapse
I'm using a Nexus One with 2.3.
I didn't try it with other types of sound so it's not the most accurate of tests, but i'll have another go today.
I've had some issues with occasional chars being wrong, I may put in some kind of CRC, but I don't think it's that serious. It may have something to do with various microphones and their sensitivity.
In other news, now upgraded to version 0.4, which converts encoded files to ogg format, and can extract messages from ogg files too! (would be a bit silly if it didn't). Files are ~90% smaller as a result!
I could see an RDS type implementation or advertising uses that would let you encode whatever data you wanted in the audio if the mobile app did something like SoundHound where you could have it listen for the message. If you could create a background app that listened for any messages and alerted when heard, without totally draining the battery, I could see implementations with nielsen ratings showing accurately what you saw and when.
ledridge said:
I could see an RDS type implementation or advertising uses that would let you encode whatever data you wanted in the audio if the mobile app did something like SoundHound where you could have it listen for the message. If you could create a background app that listened for any messages and alerted when heard, without totally draining the battery, I could see implementations with nielsen ratings showing accurately what you saw and when.
Click to expand...
Click to collapse
I believe this tech (or at least, steganography in general) is already used to watermark copyrighted material, in some cases uniquely. Authorities can then look at an illegally shared file and trace its origin or something like that. Certainly it's possible.
Just updated the version on the market, now integrates much better with email apps/file managers. Let me know if you can't launch StegDroid from your favourite app!
Make sure that your app stays your app. Many universities are after students' apps.
posted via the xda app with my Evo
Ha, it's ok, I signed away any rights I had to this app when I joined this course 3 years ago. It'll remain free and be properly open-sourced though.
you're famous OP
http://mobilitydigest.com/is-that-a-txt-in-your-ogg/
Thanks for finding that!

[ROM] cyano + stock

First i'd like to say thanks (sorry but the list will not be complete)
nadlabak
Mioze7ae
fjfalcon
Second: I prefer not to start new thread, but this way it will be easier to track the feedbacks.
My point of view is that this thread will be temporary (till feedbacks are collected)
Ok after this introduction let's go...
As i was playing about hdmi stuff, some side effects occur
so some "technical" stuff.
in VideoPlayerMoto.apk is defined hdmi_status (so extdispservice seems to load ok)
then i decide to include MediaGallery.apk, which requires Gestures..so far so good...
btw,MediaGallery crashes (suspect thumbnail cache), but before that it tries hard to make me happy (e.g. turn the media leds on).
Then thing get the wrong direction .
I brute forced the stock framework and discover that in framework-res.apk there is (after smali) com/motorola/hardware/LED.*
so i just renamed it and put it in the system...,which is wrong!!
the right way is to pick the smali and incorporate it in framework/base (which will generate framework-res.apk)
other not so wrong way is from selected smali's to generate small and different framework apk...
but as i said i did it wrong (brute)
Ok now about the feedbacks.
If you have enough space on the system (the linked file is about 5Mb larger than usual) you can test from:
https://github.com/peshovec/playground/downloads
test-feedback-it-please.zip — for testing purposes, please feedback it
removed
it is expected to have all the features from the last test build + media key working almost as in the stock roms
p.s. for the MediaGallery.apk to install you have to add
Code:
<library name="com.motorola.aui"
file="/system/framework/com.motorola.aui.jar"/>
in /system/etc/permissions/platform.xml
should look like that
Code:
snip........
<library name="javax.obex"
file="/system/framework/javax.obex.jar"/>
<library name="com.motorola.aui"
file="/system/framework/com.motorola.aui.jar"/>
</permissions>
(will have to figure out how to include it)
Again do your backup, and if you want to give some of your spare time, install it (after making backup), test it and give feedback please
add info...
Proof Of Concept hdmi out works just played a little with a realhdmi and a hdmi-dvi adapter.... the plan is to implement the stock behavior too (that;s why MediaGalery is introduced)
updates
1. sound dosen't work,because of duplicating frameworks-res, the sound-fix.zip should fix that (apply via updates)
2. sound-fix.zip no more needed, use update-cm-7.1.0-MilestoneXT720-beta-25012012-signed.zip — testing, stock hdmi out need feedbacks
stock hdmi out works (hdmi-dvi to a dvi monitor), please test and share feedback
3. overclock:
Thanks to vlad-it, i took a look at it (honestly, i do not overclock at least for now)
so you have to insert symsearch.ko before overclock.ko
e.g in /system/etc/rootfs//init.mapphone_umts.rc
Code:
#insmod /system/lib/modules/symsearch.ko
#insmod /system/lib/modules/cpufreq_conservative.ko
#insmod /system/lib/modules/cpufreq_interactive.ko
#insmod /system/lib/modules/cpufreq_smartass.ko
#insmod /system/lib/modules/overclock.ko
should be atleast
Code:
insmod /system/lib/modules/symsearch.ko
#insmod /system/lib/modules/cpufreq_conservative.ko
#insmod /system/lib/modules/cpufreq_interactive.ko
#insmod /system/lib/modules/cpufreq_smartass.ko
insmod /system/lib/modules/overclock.ko
as you can see here http://forum.xda-developers.com/showpost.php?p=22305986&postcount=3 all the addresses are discovered
it should be possible to pass directly to insmod overclock all the necessary parameters (the bug in insmod, which takes into the account just the first parameter is marked fixed some time ago) e.g. frequency and voltage
*remark actually the bug was in init,which doesn't pass all parameters to insmod
4. media key (playalka.zip):
If screen is locked, pressing media key will start the music (like the headset button). If you enable in cyanomod settings camera key, you will be able to "blind" use the phone as a player, with headphones which doesn't have button (hence the code name playalka, pronounced плейялка [pleɪjɑlka] )
e.g. media key to start the music
camera key to play/pause
volume up/down holding to go to next/previous song
5. lcd density
I prepare 3 scripts, which will allow to change "Resolution" inside OpenRecovery
https://github.com/CyanogenModXT720...mmit/2bd1b18d666f73a5d0307ad0875f598656fa21b9
you can grab them and put in /sdcard/OpenRecovery/scripts then you can use them.
Please make a backup of Your /system/build.prop before that
6. update-cm-7.1.0-MilestoneXT720-beta-20022012-signed.zip — md5sum b01d4f8aa960932c8b05662e23210d6e
noticeable: more stable MediaGalery , and under-hoods modifications
Please if you are able test hdmi with video and observe if (and where) there is a sound
7. update-cm-7.1.0-MilestoneXT720-beta-09032012-signed.zip — md5: 073153033a4d8e543e4ed65341f71557 underhood optimizations, sync to upstream, picked (not merged yet) features, need testers about hdmi and ui cloning (defaults are safe, has to be enabled in build.prop)
if You are able to test hdmi please:
get the openrecovery scripts from here https://github.com/CyanogenModXT720/openrecovery_xt720/tree/master/OpenRecovery/scripts (namely: the on/off ones)
execute all the on scripts. (they will uncomment some entries in the build.prop
com.ti.have_hdmi=1 this will turn on some hdmi intents in the framework
com.ti.omap_enhancement=1 will turn on additional hdmi calls (mostly to omapmmlibrary)
tv.hdmi.uicloning.enable=1 is self explainable
then observe for bugs
run some usage test and scenarios involving connecting/disconnecting hdmi device during:
playing with still media (e.g. pictures)
playing with video
playing with just music​​will appreciate feedbacks
8. 04.04.2012 (md5sum c684a341721d0b59deb6fa507a70cf8e), memory tester.
Mostly memory related changes. Visible change: jpeg-turbo instead of jpeg
9. update-cm-7.1.0-MilestoneXT720-beta-17042012-signed.zip — md5: f30f35d0c22349a1f34d5aef873dc511 Synced, mms and dockaudio in systemui, cron enabled (default 4am /cdrom/4am.sh), toggable via CMParts
+again try for fine memory tweak
usage of the crond is for example to kill once a daily several application ot once, helping (or at least hope to help) with memory fragmentation
my testing seems good
by default cron will run at 4 am the script in /cdrom/4am.sh
my current one is very simple
#!/system/xbin/ash
pkill "zeam|systemui|phone|gapps|dockau|mediaser"
Click to expand...
Click to collapse
killing the phone, will make the phone to reregister to the network. During this time (few seconds), you can not use it as phone, no incoming/outgoing calls, no messages, no data too although this is just few seconds.. be warned. You can choose what to "restart" once per day observing processes with procrank
Of course that just an example usage You can use it for what you want/need.
I will repeat:
by default crond is enabled
can be disabled in CMParts->application
by default will execute in 4am the script in /cdrom/4am.sh
cron configuration is at /system/etc/cron.d/crontabs/root file​
mms application is now part of the systemui. You will not see it under running applications, if you rely (as me for credit card notifications) on the messaging subsystem, just make sure it will work for you (just big fat warning, problems with the messaging are not expected, e.g. it has to be locked if it is supposed to be)​
https://github.com/peshovec/playground/downloads
I'm very happy to see this new thread.
I do use xt720mod.
Still trying to get 3g to work.
I really like your cm7 builds.
Thanks.
Sent from my XT720 using xda premium
The LED control in MediaGallery seems pretty simple so we should be able to reverse-engineer it. It seems to just call:
invoke-static {*,*}, Lmotorola/android/hardware/MotoLED;->led_set(II)I
in the onPause(), onResume() methods of
com/motorola/gallery/ImageGallery.smali
com/motorola/gallery/ViewImage.smali
com/motorola/gallery/AlbumsNavigator.smali
And it seems to be a simple two arguements, #1 identifying the led, and #2 setting on or off.
These are all the hits for "MotoLED" (except for the implementation of MotoLED itself) in the fully decompiled Korean 2.2:
./framework/services/com/android/server/am/ActivityManagerService.smali: invoke-static {v6, v7}, Lmotorola/android/hardware/MotoLED;->led_set(II)I
./framework/services/com/android/server/am/ActivityManagerService.smali: invoke-static {v6, v7}, Lmotorola/android/hardware/MotoLED;->led_set(II)I
./framework/services/com/android/server/am/ActivityManagerService.smali: invoke-static {v6, v7}, Lmotorola/android/hardware/MotoLED;->led_set(II)I
./framework/android.policy/com/android/internal/policy/impl/PhoneWindowManager.smali: invoke-static {}, Lmotorola/android/hardware/MotoLED;->leds_disable_all()I
./app/MediaGallery/smali/com/motorola/gallery/ImageGallery.smali: invoke-static {v2, v0}, Lmotorola/android/hardware/MotoLED;->led_set(II)I
./app/MediaGallery/smali/com/motorola/gallery/ImageGallery.smali: invoke-static {v6, v6}, Lmotorola/android/hardware/MotoLED;->led_set(II)I
./app/MediaGallery/smali/com/motorola/gallery/ViewImage.smali: invoke-static {v7, v6}, Lmotorola/android/hardware/MotoLED;->led_set(II)I
./app/MediaGallery/smali/com/motorola/gallery/ViewImage.smali: invoke-static {v6, v6}, Lmotorola/android/hardware/MotoLED;->led_set(II)I
./app/MediaGallery/smali/com/motorola/gallery/AlbumsNavigator.smali: invoke-static {v0, v1}, Lmotorola/android/hardware/MotoLED;->led_set(II)I
./app/MediaGallery/smali/com/motorola/gallery/AlbumsNavigator.smali: invoke-static {v3, v3}, Lmotorola/android/hardware/MotoLED;->led_set(II)I
./app/TvoutNotice/smali/com/motorola/android/tvoutnotice/TvoutNoticeActivity$HandlerStop.smali: invoke-static {}, Lmotorola/android/hardware/MotoLED;->leds_disable_all()I
./app/TvoutNotice/smali/com/motorola/android/tvoutnotice/TvoutNoticeService$2.smali: invoke-static {}, Lmotorola/android/hardware/MotoLED;->leds_disable_all()I
./app/CameraMoto/smali/com/motorola/Camera/Camera.smali: invoke-static {}, Lmotorola/android/hardware/MotoLED;->leds_disable_all()I
./app/CameraMoto/smali/com/motorola/Camera/CameraGlobalTools.smali: invoke-static {}, Lmotorola/android/hardware/MotoLED;->leds_disable_all()I
./app/CameraMoto/smali/com/motorola/Camera/CameraGlobalTools.smali: invoke-static {p1, v0}, Lmotorola/android/hardware/MotoLED;->led_set(II)I
Mio,
as i am starting to think that i start to figure things out
Can you take a look at
https://github.com/CyanogenModXT720...blob/pesh-modif/proprietary/framework/led.jar
if i am on the right way (will test it later, but don't know when...) i am planing to search and implement the same way about the gallery key press...
later (like long roadmaps hdmi settings part etc....
p.s. using both (cyano and stock) framework is not good i lost my sound (ringing and music), deleting /system/framework/mot-frame-res.apk solved the sound, did not test through hdmi now...
mchlbenner said:
I'm very happy to see this new thread.
I do use xt720mod.
Still trying to get 3g to work.
I really like your cm7 builds.
Thanks.
Sent from my XT720 using xda premium
Click to expand...
Click to collapse
can you try to comment "mount /cust" entry either in /system/etc/rootfs/init.rc ot init,maphone_umts.rc
peshovec said:
Can you take a look at
https://github.com/CyanogenModXT720...blob/pesh-modif/proprietary/framework/led.jar
Click to expand...
Click to collapse
My instincts say that approach won't work because the interface to the MotoLEDs is by function calls not by broadcasts. So, you'll be able to stick the code in the ROM using led.jar, but nothing will be able to use it because they won't know about it at compile time. That's what my gut's telling me anyway.
i am planing to search and implement the same way about the gallery key press...
Click to expand...
Click to collapse
As noted by brianlili, it looks like the gallery button behaviour is controlled entirely by :
./app/CameraMoto/smali/com/motorola/Camera/ModeButtonIntentReceiver.smali
I think this code registers to listen for the gallery key and then keeps state and decides who to launch.
People, you forgot that i already kinda make something about this way?
Here some source code..
https://github.com/CyanogenModXT720...oid/camera/MediaModeButtonIntentReceiver.java
Code:
[[email protected] camera]$ cat MediaModeButtonIntentReceiver.java
/*
* Copyright (C) 2007 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.camera;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.app.ActivityManager;
import android.util.Log;
import java.util.List;
/**
* {@code MediaModeButtonIntentReceiver} is invoked when the media mode button is
* pressed.
*
* It is declared in {@code AndroidManifest.xml} to receive the
* {@code android.intent.action.MEDIA_MODE_BUTTON} intent.
*
* After making sure we can use the camera hardware, it starts the camera
* activity.
* In next version i will add switcher.
*/
public class MediaModeButtonIntentReceiver extends BroadcastReceiver {
private final String cameraApp = "com.android.camera.Camera";
private final String videoCameraApp = "com.android.camera.VideoCamera";
private final String galleryApp = "com.cooliris.media.Gallery";
private void startGallery(Context paramContext)
{
Intent i = new Intent(Intent.ACTION_GET_CONTENT);
i.setType("image/*");
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
paramContext.startActivity(i);
}
private void startCamera(Context paramContext)
{
Intent i = new Intent(Intent.ACTION_MAIN);
i.setClass(paramContext, Camera.class);
i.addCategory(Intent.CATEGORY_LAUNCHER);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
paramContext.startActivity(i);
}
private void startVideoCamera(Context paramContext)
{
Intent i = new Intent(Intent.ACTION_MAIN);
i.setClass(paramContext, VideoCamera.class);
i.addCategory(Intent.CATEGORY_LAUNCHER);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
paramContext.startActivity(i);
}
private String getCurrentTopActivity(Context context) {
ActivityManager mActivityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> RunningTask = mActivityManager.getRunningTasks(1);
ActivityManager.RunningTaskInfo ar = RunningTask.get(0);
return ar.topActivity.getClassName().toString();
}
@Override
public void onReceive(Context context, Intent intent) {
// Log.i("MediaButtonReceiver","event recieved");
// Try to get the camera hardware
//CameraHolder holder = CameraHolder.instance();
//ComboPreferences pref = new ComboPreferences(context);
//int cameraId = CameraSettings.readPreferredCameraId(pref);
//if (holder.tryOpen(cameraId) == null) return;
// We are going to launch the camera, so hold the camera for later use
//holder.keep();
//holder.release();
//Intent i = new Intent(Intent.ACTION_MAIN);
//i.setClass(context, Camera.class);
//i.addCategory(Intent.CATEGORY_LAUNCHER);
//i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
// | Intent.FLAG_ACTIVITY_CLEAR_TOP);
//context.startActivity(i);
//startGallery(context);
// List activies = (ActivityManager) context.getSystemService("activity").getRunningTasks(10); // i need more study about
// if (activies.get(0).equals(appName))
// {
// // TODO: Check camera app, and set camera or videocamera.
// }
// startGallery(context);
String activity = getCurrentTopActivity(context);
Log.i("MediaModeButtonReceiver", "Current activity: " + activity);
if (activity.equals(cameraApp))
{
startVideoCamera(context);
}
else if (activity.equals(videoCameraApp))
{
startGallery(context);
}
else if (activity.equals(galleryApp)) {
startCamera(context);
}
else startGallery(context);
}
}
[[email protected] camera]$
fjfalcon said:
People, you forgot that i already kinda make something about this way?
Here some source code..
https://github.com/CyanogenModXT720...oid/camera/MediaModeButtonIntentReceiver.java
Click to expand...
Click to collapse
Aha! Nice work! I see that github's news feed misses things...
peshovec said:
can you try to comment "mount /cust" entry either in /system/etc/rootfs/init.rc ot init,maphone_umts.rc
Click to expand...
Click to collapse
Hi
Keep one thing in mind the things I'm trying is by mobile only labtop dead.
I tried what said with no luck.
I will later again for know out of ideas.
Sent from my XT720 using xda premium
MediaGallery works
Ok, have figured it out
the MediaGallery.apk (and VideoPlayer) from the stock finally are working.
about external jar, still search how to integrate them with framework.jar the right way....
But for now thing are so:
in the AndroidManifest.xml in MediaGallery.apk there is:
Code:
<uses-library
android:name="com.motorola.aui"
>
</uses-library>
so i just insert into com.motorola.aui.jar additional led and mediastorage
after editing platform.xml
Code:
<library name="com.motorola.aui"
file="/system/framework/com.motorola.aui.jar"/>
MediaGallery works (the option Display on Tv is available and is starting to search the hdmi device, same applies to the VideoPlayer
will try to figure out how to make the change in platform.xml persistent (e.g. without need for modifying it later) and will replace the test build
update:
ok new test build
update-cm-7.1.0-MilestoneXT720-beta-25012012-signed.zip — testing, stock hdmi out need feedbacks
tv out from mediagallery works (hdmi cable via hdmi-dvi to advi monitor)
please test and report (also in this build i forgot to remote gallery launch service, so media key will work somehow...)
no additional changes to platform.xml are needed anymore
peshovec said:
Ok, have figured it out
the MediaGallery.apk (and VideoPlayer) from the stock finally are working.
about external jar, still search how to integrate them with framework.jar the right way....
But for now thing are so:
in the AndroidManifest.xml in MediaGallery.apk there is:
Code:
<uses-library
android:name="com.motorola.aui"
>
</uses-library>
so i just insert into com.motorola.aui.jar additional led and mediastorage
after editing platform.xml
Code:
<library name="com.motorola.aui"
file="/system/framework/com.motorola.aui.jar"/>
MediaGallery works (the option Display on Tv is available and is starting to search the hdmi device, same applies to the VideoPlayer
will try to figure out how to make the change in platform.xml persistent (e.g. without need for modifying it later) and will replace the test build
Click to expand...
Click to collapse
That is great. Is that means both fjfalcon's build and yours update the same time? Please ask fjfalcon to make the change, which means let media key activete mediagallery instead of gallery3d. After this, this part works exactally as in stock's rom! Great improvement.
And hope Mioze7Ae compiling all this to his CM6 build.
brianlili said:
That is great. Is that means both fjfalcon's build and yours update the same time? Please ask fjfalcon to make the change, which means let media key activete mediagallery instead of gallery3d. After this, this part works exactally as in stock's rom! Great improvement.
And hope Mioze7Ae compiling all this to his CM6 build.
Click to expand...
Click to collapse
there is something i still have no time to dig into it and to figure it out...
I don't use excellent fjfalcon`s mediabutton receiver... but media key works (rotate between gallery 3d, image and video capture)
when the new test build is ready will test it and will give feedback again
editing:
oups somehow i missed to disable the launchgallery service that explains the above strange behaivor
peshovec said:
there is something i still have no time to dig into it and to figure it out...
I don't use excellent fjfalcon`s mediabutton receiver... but media key works (rotate between gallery 3d, image and video capture)
when the new test build is ready will test it and will give feedback again
Click to expand...
Click to collapse
Yeah, I think mediagallery suits for xt720 better than gallery3d, and, more important thing is, you make motovideoplayer working on CM7, that is wonderful.
peshovec said:
I don't use excellent fjfalcon`s mediabutton receiver...
Click to expand...
Click to collapse
Well all we have to do then is get MotoCamera working because that's where the mediabutton reciever is I'll get your changes into CM6. Great work!
Mioze7Ae said:
As noted by brianlili, it looks like the gallery button behaviour is controlled entirely by :
./app/CameraMoto/smali/com/motorola/Camera/ModeButtonIntentReceiver.smali
I think this code registers to listen for the gallery key and then keeps state and decides who to launch.
Click to expand...
Click to collapse
Ok, i decide to go for that, so finally installed CameraMoto.apk (some fighting was needed, also it crash because of libpanorama_jni.so , but...)
pressing the mode key does nothing, but,
pressing down camera key and holding does:
launch cyano camera (as expected)
and launch motostock camera (which still crashes, but...)
so is it possible this ModeButtonIntentReceiver.smali to be just for launching cameraMoto, when holding down the camera key?
update:
placeholder to remember
Code:
~/android/stockframe/out$ vim ./com/android/server/am/ActivityManagerService.smali
grep -E -i "(camera|gallery|led_set)" ./com/android/server/am/ActivityManagerService.smali
const-string v8, "com.motorola.gallery"
invoke-static {v7, v8}, Lcom/motorola/hardware/LED;->led_set(II)I
const-string v8, "com.motorola.Camera"
invoke-static {v7, v8}, Lcom/motorola/hardware/LED;->led_set(II)I
invoke-static {v7, v8}, Lcom/motorola/hardware/LED;->led_set(II)I
and
Code:
frameworks/base$ vim ./services/java/com/android/server/am/ActivityManagerService.java
grep -E -i "(camera|gallery|led_set)" ./services/java/com/android/server/am/ActivityManagerService.java
mSuppressHomeLock = "com.android.camera".equals(app.processName);
Hmm. I tried getting mediagallery on CM6, but I get random app crashes. Also when I plug in hdmi cord MediaGallery crashes. I must have missed something. Ah, I get VideoPlayer to show up from 3D Gallery and that does have the display on TV option, but I get "hdmi cable not detected" after a while even when HDMI cable is attached. Still, it's a good start!
Edit: yup, missing some stuff libhdmi.so, ExtDispService.apk etc.... those don't sound important, do they
it is not so straightforward you have to have libdispext.so and extdispservice.apk (and com.motorola.aui.jar and etc...)
take a deep look at the logcat...
when trying to detect hdmi, you should be able to see, 5V put on the hdmi etc...
anyway i am not able to test on real hdmi device..
anyway it the whole is still in testing stage (i have mediagallery force close when rotate in landscape and if i am in preview)
also please see that i have added some info in my post, basically media button is working, because i somehow missed to disable launchgaleery service
edit: hihi we both edited at the same time
Ok, it looks like for HDMI out all that's needed is:
/system/app/ExtDispService.apk
/system/app/VideoPlayerMoto.apk
/system/lib/libextdisp.so
/system/lib/libhdmi.so
The aui, leds etc are needed for MediaGallery, but I can't get that to not crash all the time yet. So I've pushed the hdmi support only part to CM6 (tested).
https://github.com/CyanogenModXT720...mmit/949414f5efa85ce7e379ae08c66c6d02c7c94a82
I've tested this on my computer display and video works. I don't know if audio is supposed to go out too because I've never tried hdmi out before in stock and also I wouldn't know if it was working or not because my monitor doesn't have speakers anyway.
It looks like the main CM7 was only missing ExtDispService.apk and VideoPlayerMoto.apk, so I've pushed those there too to get hdmi support (but not tested yet)
https://github.com/CyanogenModXT720...mmit/18308c73c3fa560504f627b9bd055e7e6d0b274f
Edit: doesn't work in CM7. Some library clash, I think:
E/extdisp ( 2012): tvout_init : dlopen error!
E/extdisp ( 2012): tvout_init error!
tvout errors are ok
hdmi out has to be good
took me some time to make it (partially)work in the test build,
just to remind (took me some time in the past), the apks and the jars has to be signed for the platform (test build is using keys from nadlabak ...)
MediaGallery crash if started in landscape (it is written in the logcat which display orientation is detected), or when rotate from portrait to landscape, but only in thumbnail preview. If picture sliding is in use, dosen't crash regardless of orientation
Also the MediaGallery search for it's intents in the framework and in com.motorola.aui.jar, thats why i put leds and MediaStorage smalis in aui one.
So crashes are avoided (except some landscape rotating)
What I mean by the hdmi part doesn't work on CM7 is that every thing links and runs, but when you actually connect an hdmi display and try to send video, no video goes to the display and VideoPlayer exits or decides to continue playing on the phone instead. The logcat isn't very informative unfortunately. The next time you try videoplayer doesn't go the whole hdmi connection thing asking if you want to ignore incoming calls. You have to reboot to get another chance at that part. Anyway this "just works" on CM6 and I assumed it would be the same on CM7, but I'm wrong so I've backed out that commit. I think it's probably related to froyo->gingerbread changes in the media libraries/infrastructure, so probably we need to scrounge gingerbread-compatible ones from defy or droid2. You're right -- I think the tvout stuff is harmless about missing libtvout.so (for tv on the headphone jack, I assume). Anyway you don't see the problems until you actually connect a display.

[ROM][4.4.4]VanirAOSP[OFFICIAL][Galaxy Exhibit-SGH-T599X]

{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Smooth like Butta
Follow on G+: Team Vanir
Vanir Team:
NuclearMistake
Sonicxml
DHO
PrimeDirective
Not all features are available yet.
Features:
Welcome to VanirAOSP. Our mission is to deliver a clean optimized version of Android with subtly improved versions of the features you love to as many devices as possible. we've tried to incorporate and improve our features in a way that makes them more cohesive to improve the overall user experience while correcting any performance regressions and improving functionality..
What to expect:
- This is not a McCopy ROM. What goes into our build is well thought-out and not a bunch of stuff duck taped together because we could.
- maximum optimization. We do our research. We test hard. We build -fstrict -O3 globally and include a massive array of code optimizations and memory leak fixes that we write ourselves and eventually submit to AOSP or Linaro.
- originality in our source. We generate a lot of new commits being features or general code improvements. We are open source to share and improve the community but we also try to make sure we offer a unique experience.
- aesthetics.. hopefully in your opinion
General features:
stock mode - ability revert to stock AOSP code with the exception of a few custom features we chose to keep active
enhanced performance.. longer uptime with less slowdown
custom written CRON and init.d.
UI and graphics improvements
custom navbar, navring, and hardware key features
improved notification handling (active display & halo are in review also)
usability improvements like power reboot menu and sound
animation control
Improved Vanir keyboard
CM's profiles & quicksettings
additional quicksetting tiles
immersive mode
statusbar mods
clock & battery mods
lockscreen blur and other mods
soon to come -> quick cam and flash notifications
busybox, embedded root, init.d, cron etc
yatta yatta yatta
more to come when i feel like updating the op
Changelog:
**Vanir Open Status
**Vanir Merged Status
Vanir Downloads (nuclearmistake):
**Nightlies
Recovery Downloads:
**TWRP 2.7
**CWM
Vanir Github:
**VanirAOSP Git
Gapps:
**4.4.2 PA Gapps
Installation Instructions
Make sure your using twrp above it's required
Full wipe
Install ROM
Install Gapps
Thanks
TeamVanir
Meticulus
Everyone here for keeping me inspired
Too many to thank. You know who you are who stood by since day 1
Reserved

			
				
Awesome Job Unjustified Dev! Another New Great ROM to add to the list. It's definitely smooth like butter! Thank you!
Sent from my SGH-T599X using XDA Premium 4 mobile app
Thanks for this ROM which someone can fix the BT audio in call but thanks I will use this one I like thanks again
Sent from my SGH-T599N using xda app-developers app
Tethering
Nice to see a few ROMs for the T599! I am testing on the T599 T-Mobile variant.
Maybe there is an issue with Bluetooth.
Bluetooth tethering is not working.
But, WiFi tethering is working fine. :good:
Installed smoothly once I updated CWM. Will post on how it goes from here.
ps That's a bad ass boot image lol
Edit: Not a fan of how you put Vanir over the space bar, but I guess it doesn't matter because I'm not going to be using the stock keyboard anyway.
Edit2: Phone seemed to turn off randomly in the middle of the night, other than that it's working great so far.
Edit3: The music app combined with DSP Manager is pretty neat. If the music is distorting, the music app will pause to avoid damaging your system.
Edit4: Screen recording completely freezes the phone.
Kennehisftw said:
Installed smoothly once I updated CWM. Will post on how it goes from here.
ps That's a bad ass boot image lol
Edit: Not a fan of how you put Vanir over the space bar, but I guess it doesn't matter because I'm not going to be using the stock keyboard anyway.
Edit2: Phone seemed to turn off randomly in the middle of the night, other than that it's working great so far.
Edit3: The music app combined with DSP Manager is pretty neat. If the music is distorting, the music app will pause to avoid damaging your system.
Edit4: Screen recording completely freezes the phone.
Click to expand...
Click to collapse
Screen recording doesn't work on these devices. I am removing the option that shows that to prevent device freezing.
I've redone the device tree and device is now codinalte. I made this change so that the assert checks won't allow flashing of older recoveries which would lead to device bootloops if used with the new j4fs and param setup.
Make sure you see the new instructions.
Changelog
-Used gcc 4.8 instead of 4.7 now that it's been tested.
-Removed all device asserts to prevent use of older recoveries.
-Disabled the use of screen record
-Switched device name to codinalte to cause less confusion with ace 2 users
-Upstream Vanir changes
-Philz cwm , cwm , and twrp now available for codinalte enabled builds only
Excellent ROM
Sent from my SGH-T599N using XDA Premium 4 mobile app
To everyone wondering this is the initial release of codinalte. I made this change to ensure everyone would be on the correct recovery and if you are on an older one it wouldn't let you install it . It would cause a bootloop due to the mismatch of j4fs and param module. This is the only way I can think of to ensure everyone is safe.
Unjustified Dev said:
To everyone wondering this is the initial release of codinalte. I made this change to ensure everyone would be on the correct recovery and if you are on an older one it wouldn't let you install it . It would cause a bootloop due to the mismatch of j4fs and param module. This is the only way I can think of to ensure everyone is safe.
Click to expand...
Click to collapse
What bugs does this have other than the Bluetooth audio? Same as Omni Rom?
Cogra147 said:
What bugs does this have other than the Bluetooth audio? Same as Omni Rom?
Click to expand...
Click to collapse
Yes , we should all have the same bugs. The only ones that will make a difference are rom specific issues.
Unjustified Dev said:
Yes , we should all have the same bugs. The only ones that will make a difference are rom specific issues.
Click to expand...
Click to collapse
Here are some bugs I'd experienced recently with VanirAOSP ROM latest build.
1. Last night I had set my alarm clock to wake up this morning but the alarm didn't go off because I found my phone shutdown or powered off. Apparently the randomly shutdown in the middle of the night.
2. Yesterday I had two occasions where my Network was lost completely. I had to reboot the phone to get it back.
3. I noticed that when I receive a call or make a call the volume sounds like is half way down. I always have my volume set all the way up. When someone calls me I have to hit the volume down one or twice and then back up to fix the loudness of the call. Something is not right.
4. I noticed that when ever I play and embedded YouTube Video whether in a Browser of any kind or an RSS Reader it FCs the application before the video starts. All the time. Here is an example. I recorder this LogCat for you....https://www.dropbox.com/s/aaf7wgywrf66b7a/2014-03-17-14-15-24.txt I try playing a YouTube video on this website.. http://sploid.gizmodo.com/here-are-7-facts-about-superheroes-you-probably-didnt-1541767101 on the AOSP Browser and same thing happens with other Browsers and apps with YouTube Video embedded in them.
Sent from my SGH-T599N using XDA Premium 4 mobile app
DJVargas said:
Here are some bugs I'd experienced recently with VanirAOSP ROM latest build.
1. Last night I had set my alarm clock to wake up this morning but the alarm didn't go off because I found my phone shutdown or powered off. Apparently the randomly shutdown in the middle of the night.
2. Yesterday I had two occasions where my Network was lost completely. I had to reboot the phone to get it back.
3. I noticed that when I receive a call or make a call the volume sounds like is half way down. I always have my volume set all the way up. When someone calls me I have to hit the volume down one or twice and then back up to fix the loudness of the call. Something is not right.
4. I noticed that when ever I play and embedded YouTube Video whether in a Browser of any kind or an RSS Reader it FCs the application before the video starts. All the time. Here is an example. I recorder this LogCat for you....https://www.dropbox.com/s/aaf7wgywrf66b7a/2014-03-17-14-15-24.txt I try playing a YouTube video on this website.. http://sploid.gizmodo.com/here-are-7-facts-about-superheroes-you-probably-didnt-1541767101 on the AOSP Browser and same thing happens with other Browsers and apps with YouTube Video embedded in them.
Sent from my SGH-T599N using XDA Premium 4 mobile app
Click to expand...
Click to collapse
You could try this for low call fix http://forum.xda-developers.com/showthread.php?t=2676518
Use the onlyincallfix.apk it should work to fix volume please confirm this.
The video problem is due to the patches we used not supporting a certain function required for the video playing. The phone randomly dying is something i know nothing about as of yet.
Does it work on the international version and does it have random reboots like in the latest CM11?
LMH1998 said:
Does it work on the international version and does it have random reboots like in the latest CM11?
Click to expand...
Click to collapse
This is not for s3 mini. Please wait some time for me do a test build. I don't have the s3 mini but it's a similar device. If you want I can send you a pm of the test build. Please continue this conversation in a private message.
Phone died overnight even though on charger. I believe its the performance function. Installed voltage control. Still testing. Will post results.
Sent From DWil's Magic Carpet t599n
wilbigdaddy2000 said:
Phone died overnight even though on charger. I believe its the performance function. Installed voltage control. Still testing. Will post results.
Sent From DWil's Magic Carpet t599n
Click to expand...
Click to collapse
I am looking into it. I haven't noticed why it did that yet. I can add back dvfs limit if you think it's the voltage. Basically you won't be able to use performance control it will stay at 0 for min and max.
Unjustified Dev said:
I am looking into it. I haven't noticed why it did that yet. I can add back dvfs limit if you think it's the voltage. Basically you won't be able to use performance control it will stay at 0 for min and max.
Click to expand...
Click to collapse
wilbigdaddy2000 said:
Phone died overnight even though on charger. I believe its the performance function. Installed voltage control. Still testing. Will post results.
Sent From DWil's Magic Carpet t599n
Click to expand...
Click to collapse
The same thing happened to me, but while running Beanstalk. I have been running Vanir for the past few days and I have not seen any issues with FC or reboot yet. Battery life appears to be excellent, lasting 48 + hours with light use.
I am running the T-Mobile variant.

[KB-Article] Troubleshooting Bluetooth Issues on LineageOS 14 devices

Note: This post summarizes the experiences I had when fixing Bluetooth on the sltexx device.
Even though parts of the following are device specific some fixes may also be ported to other device overlays after testing.
Also the shared audio HAL in android_harware_samsung might be used by other devices.
Please do not use this thread to report any issues you are having on your device. This is an advisory for fellow developers only!!
Short description of known Bug Reports:
1) Some BT features are not working, such as: Receiving files, Bluetooth tethering, OBEX, etc.
Reported as: BUGBASH-653
Affects: Bluetooth.apk
Devices: Possibly all, but caused by a rare condition, port to your device if neccesary​2) The phone does not connect to cars / bt-headsets using the hands-free profile for calling
Reported as: BUGBASH-308
Affects: Bluetooth.default.so
Devices: Possibly all Devices with WBS=off in combination with bt-device relying on WBS​3) The phone connects, media working, but in-call sound is completely garbled or muted on both ends
Reported as: BUGBASH-302 / BUGBASH-264
Affects: build.prop, libbt-vendor.so, Bluetooth.default.so, audio.primary.universal5430.so
Devices:
a) Samsung devices using qualcomm HAL msm8974 (klte)
b) Samsung devices using android_hardware_samsung audio HAL (sltexx, and devices with: TARGET_AUDIOHAL_VARIANT := samsung, see list in 3rd post)
c) Samsung devices using qualcomm HAL msm89** (jfltexx)​
4) While connected to bt-headset systems sound such as volume change and ringtone are played on speaker and headset simultaneously.
Reported as: none, fixed internally
Affects: mixer_paths_0.xml
Devices: sltexx specific, maybe other Samsung behave similar​
Detailed background description and fixes in next post….
1) Description: https://jira.lineageos.org/browse/BUGBASH-653
Background: The registration of the "EMAIL Message Access" Service seems to be faulty.
The MAP: MSE MAS Email Instance Support was added to CM14.1 but not CM13!
https://github.com/LineageOS/androi...mmit/819847bb7f72a69a7d7fc662bcd37625247fceec
There is also a switch to disable all new non-aosp bt data features:
https://github.com/LineageOS/androi...mmit/96a55efb0edac3c2af523f938b338dd16d4f8ac4
However it might be useful to fix the originating issue which I assume is the SDP registration of those features: -> No one has checked this until now..
Fix: https://review.lineageos.org/#/c/177998/
2) Description: https://jira.lineageos.org/browse/BUGBASH-308
Background: The BMWs (and probably other cars also) check the available codecs first:
Code:
BTA_AG_AT_BAC_EVT /* avablable codec */
and expect the wide-band speech [WBS] profile. Because that is not enabled on compile level the BMW sends a BTA_AG_CLOSE_EVT.
The connection is terminated and phone_state_change tries to continue with an invalid idx because the SLC connection is already down.
If you look at the logcat of the motog closely, you can find the following:
Code:
bt_btif : btif_hf_upstreams_evt: event=BTA_AG_WBS_EVT
audio_hw_primary: adev_set_parameters: enter: bt_wbs=on
Therefore the build must have been compiled with: BTM_WBS_INCLUDED
Code:
#if (BTM_WBS_INCLUDED == TRUE )
#define BTA_AG_WBS_EVT 31 /* SCO codec info */
#endif
Fix: https://review.lineageos.org/#/c/177996/
NOTE: If you are experiencing mute calls or garbled incall sound after this, continue with 3a/3b depending on your device
3a) Description: Garbled /mute incall sounds on bluetooth (msm8974)
Background:
The sample rate for calls is usually 8k, however for wide-band speech it is 16k. It seems that some devices cannot handle this sample rate and will only work on WBS with 8k.
This behavior was confirmed on the klte. The fix might be ported to other devices:
Fix: https://review.lineageos.org/#/c/178371/
3b) Description: Garbled /mute incall sounds (Universal HAL)
Background: Unlike the klte, many Exynos devices have a shared audio HAL that supports 16k WBS however there was a small misuse of the sample rate constant resulting in garbled sound.
The usage of audio_hal.force_voice_config = (wide or narrow) is usually not required (add if needed)
If the fix from 3a has been applied or was previously set, remove any definitions of SCO_WBS_SAMPLERATE in the vendor config.
Fix: https://review.lineageos.org/#/c/182054/
Right now this in in testing. We are looking for more affected devices that are using android_hardware_samsung as audio HAL.
Update: See the detailed list of possible affected devices below, as far as I see all of them have not yet enabled WBS yet.
3c) Description: Garbled /mute incall sounds on bluetooth (msm89** / jfltexx)
 @jorgemiguel4 Found out what fixes the mute calls: Thanks to you!
#define BTM_WBS_INCLUDED TRUE
#define BTIF_HF_WBS_PREFERRED FALSE //With this set to TRUE there is no sound on my side.
Click to expand...
Click to collapse
This will enable WBS (for the car support) but it will use the default codec instead which does not have the WBS samplerate issue.
Therefore audio quality might not be perfect but at least it works.
4) Description: Ringer & notification sounds through headset and speaker
Background:
When pressing volume up/down buttons or on incoming calls the sound is played on both headset and speaker which seems to be an odd behaviour. This is not only for bluetooth, also for wired headsets and headphones. The issue seems to be quite old and some might say it works as designed: https://forum.xda-developers.com/showthread.php?t=2320446
However as this is a custom firmware we can change the corresponding audio routes!
Fix: https://github.com/Harinus/android_...mmit/f104a3d9775e6c6cfdfbb6e61f16b036d207c18b (will need modification for other devices)
Wrote this with my best knowledge and belief. If there is any incorrect information, please let me know.
Special thanks to @akk29, @side and everyone on webchat, gerrit and jira who provided help/logs
Collection of all TARGET_AUDIOHAL_VARIANT := samsung Devices I could find on github!
sltexx ...........Samsung Galaxy Alpha / SM-G850F....... [exynos5430]
#LineageOS/
noblelte-common ..Samsung Galaxy Note 5................. [exynos7420]
zero-common ......Samsung Galaxy S6..................... [exynos7420]
k3gxx ............Samsung Galaxy S5 / SM-G900H.......... [exynos5422]
hero-common ......Samsung Galaxy S7 Edge................ [exynos8890]
gts2-common ......Samsung Galaxy Tab S2................. [exynos5433]
#others/
klimtlte .........Samsung Galaxy Tab S 8.4 / SM-T705.... [exynos5420]
ja3gxx ...........Samsung Galaxy S4 Exynos / GT-I9500... [exynos5410]
lt033g ...........Samsung Galaxy Note 10.1 3g / SM-P601. [exynos5420]
on5xelte .........Samsung Galaxy J5 Prime....... ....... [exynos7570]
zenlte-common ....Samsung Galaxy S6 Edge +.............. [exynos7420]
chagalllte .......Samsung Galaxy Tab S 10.5 / SM-T805... [exynos5420]
chagallltetmo ....Samsung Galaxy Tab S 10.5 / SM-T807T.. [exynos5420]
j7elte ...........Samsung Galaxy J7 / SM-J700........... [exynos7580]
. The usage of audio_hal.force_voice_config = (wide or narrow) is usually not required (add if needed)
If the fix from 3a has been applied or was previously set, remove any definitions of SCO_WBS_SAMPLERATE in the vendor config.
Click to expand...
Click to collapse
On code review I read ur the discussion with shevt regarding using "audio_half.force_voice_config". So using this line in build.prop will always force hal to use wideband or narrow whichever specified OR
But removing this line I believe will allow audio hal to decide wide band or narrow based on network. I may be wrong.
When shevt removed force.voice.config I assume audio hal may be using "pcm_config_voice_sco" and not "pcm_config_voice_sco_wb" in which has been defined .rate 8000 which may be causing the problem for shevt.
I just want to understand. I have seen in pcm_config_voice_sco_wb rate defined as "SCO_WB_SAMPLING_RATE". what is value passed when you define this. Is it .rate=16000 or .rate=0?
@Harinus hope you can help me
i have same issue on BUGBASH-96 but WPS didn't fix it
i have this lines on logcat :
Code:
08-12 13:40:24.866 6824 6861 D bt_btif : A2DP-CTRL-CHANNEL EVENT UIPC_RX_DATA_READY_EVT
08-12 13:40:24.866 6824 6861 D bt_btif : a2dp-ctrl-cmd : A2DP_CTRL_CMD_START
08-12 13:40:24.866 6824 6861 W bt_btif : btif_recv_ctrl_data: A2DP command A2DP_CTRL_CMD_START while AV stream is not ready
08-12 13:40:24.866 6824 6861 D bt_btif : ## a2dp ack : A2DP_CTRL_CMD_START, status 1 ##
08-12 13:40:24.866 6824 6861 D bt_btif : a2dp-ctrl-cmd : A2DP_CTRL_CMD_START DONE
08-12 13:40:24.866 371 6892 I bt_a2dp_hw: a2dp_command: A2DP COMMAND A2DP_CTRL_CMD_START DONE STATUS 1
08-12 13:40:24.866 371 6892 E bt_a2dp_hw: a2dp_command: A2DP COMMAND A2DP_CTRL_CMD_START error 1
08-12 13:40:24.866 371 6892 E bt_a2dp_hw: start_audio_datapath: Audiopath start failed (status -1)
08-12 13:40:24.877 371 6892 I bt_a2dp_hw: start_audio_datapath: state 3
08-12 13:40:24.878 371 6892 I bt_a2dp_hw: start_audio_datapath: state AUDIO_A2DP_STATE_STOPPED
08-12 13:40:24.878 371 6892 I bt_a2dp_hw: a2dp_command: A2DP COMMAND A2DP_CTRL_CMD_START
my device tree links : https://github.com/LG-K10
@macs18max
You basically got it right.
The HAL consists of 2 parts:
android_hardware_samsung (1, audio HAL)
android_hardware_broadcom_libbt (2, bluetooth RIL)
Both must handle the sampling rate of the incoming and outgoing audio streams.
For the WBS codec both 8k and 16k are valid by specification. Other codecs may use only 8k.
1) PCM Config / force_voice_config
The audio HAL (pcm config) uses 16k for WBS (after my fix) and 8k for the other codecs.
It decides which sample rate based on the wb_amr_type that it gets from the RIL.
When setting "audio_hal.force_voice_config" it overrides the wb_amr_type and therefore the samplerate of the pcm config.
(pcm_config_voice_sco_wb or pcm_config_voice_sco)
voice_session_init registers a RIL callback for WB. That wont be registered when "audio_hal.force_voice_config" is set at all. https://github.com/LineageOS/android_hardware_samsung/blob/cm-14.1/audio/voice.c#L444
2) SCO_WBS_SAMPLE_RATE
The value is used in hw_sco_i2spcm_config https://github.com/LineageOS/android_hardware_broadcom_libbt/blob/cm-14.1/src/hardware.c#L1516 and defines the sample rate on hw layer.
The values 0 and 1 are used. -> SCO_WBS_SAMPLE_RATE is a macro, documented here: https://github.com/LineageOS/androi...bt/blob/cm-14.1/include/bt_vendor_brcm.h#L262
3) Conclusion.
From what I experienced both values on RIL and HAL must be equal. Otherwise the audio will be garbled.
However some HALs (e.g. klte) seem to not support 16k, so we force 8k there.
Maybe it does not work for @ShevT without the line in build.prop because the wb-amr callback is not working properly on that device.
Can not answer that without a device for testing.
@erfanoabdi
The issue looks like something not related to WBS. Do you have a full log?
Harinus said:
@erfanoabdi
The issue looks like something not related to WBS. Do you have a full log?
Click to expand...
Click to collapse
tnx for reply
yeah, logcat attached
interested thing is i can see this error is passed by using prebuilt audio hals but still no sound :
Code:
A2DP COMMAND A2DP_CTRL_CMD_START DONE STATUS 0
i don't want to use prebuilt hals, need to find way for fixing this.
erfanoabdi said:
tnx for reply
yeah, logcat attached
interested thing is i can see this error is passed by using prebuilt audio hals but still no sound :
Code:
A2DP COMMAND A2DP_CTRL_CMD_START DONE STATUS 0
i don't want to use prebuilt hals, need to find way for fixing this.
Click to expand...
Click to collapse
The origin of the error is: https://github.com/LineageOS/android_system_bt/blob/cm-14.1/audio_a2dp_hw/audio_a2dp_hw.c#L569. android_hardware_bt is the bluetooth stack that has changed quite a lot for the last versions of android.
Your build config of the stack(https://github.com/LG-K10/android_device_lge_m216/blob/cm-14.1/bluetooth/bdroid_buildcfg.h) is using definitions that seem to be obsolete since Android M (and also Nougat)
Check the related motorola https://github.com/LineageOS/androi...mmit/69feab615584f2b8bf7f51c0fd12817181453e02 repository!
Some parameters were renamed:
Code:
BLUETOOTH_QCOM_SW -> BLUETOOTH_QTI_SW
BTC_INCLUDED -> BLE_VND_INCLUDED
The currently missing "BLE_VND_INCLUDED" enables several CTRL feature callbacks that seem to be related to: "A2DP_CTRL_CMD_START"
I suggest porting the current version from motorola with all its defines:
Code:
#define BLUETOOTH_QTI_SW TRUE
#define MAX_ACL_CONNECTIONS 7
#define MAX_L2CAP_CHANNELS 16
#define BLE_VND_INCLUDED TRUE
#define BT_CLEAN_TURN_ON_DISABLED TRUE
plus the WBS enabling..
Code:
#define BTM_WBS_INCLUDED TRUE /* Enable WBS */
#define BTIF_HF_WBS_PREFERRED TRUE /* Use WBS */
I can not guarantee that this will fix the issue, but it is surely a good idea to fix the parameters.
I posted a AOSP Bluetooth patch to the jira bugtracker under issue
https://jira.lineageos.org/browse/BUGBASH-717
And here is the xda thread where the dev built this patch...
https://forum.xda-developers.com/go...m-dark-rom-t3492150/post73199372#post73199372
...maybe helpful !?!
lulli1 said:
I posted a AOSP Bluetooth patch to the jira bugtracker under issue
https://jira.lineageos.org/browse/BUGBASH-717
And here is the xda thread where the dev built this patch...
https://forum.xda-developers.com/go...m-dark-rom-t3492150/post73199372#post73199372
...maybe helpful !?!
Click to expand...
Click to collapse
See my comment on jira.. For axon7 its clearly the WBS issue that has been described above.
On jfltexx got it working in my car with the following, hope it helps somebody
#define BTM_WBS_INCLUDED TRUE
#define BTIF_HF_WBS_PREFERRED FALSE //With this set to TRUE there is no sound on my side.
and
SCO_WBS_SAMPLE_RATE = 0 or SCO_WBS_SAMPLE_RATE = 1 //worked fine with both. 0=8Hhz and 1=16kHz
Harinus said:
See my comment on jira.. For axon7 its clearly the WBS issue that has been described above.
Click to expand...
Click to collapse
Yes you were right. Thanks a lot. We solved the issue on the Nexus 5 by setting
BTIF_HF_WBS_PREFERRED to FALSE
Using HFP several users of the herolte got distorted sound when calling. See regression 1194. The problem occurred after enabling WBS in LOS nightly. What has to be done to apply a workaround? Is it sufficient to change the build.prop? Issue is really annoying.
nostromo12 said:
Using HFP several users of the herolte got distorted sound when calling. See regression 1194. The problem occurred after enabling WBS in LOS nightly. What has to be done to apply a workaround? Is it sufficient to change the build.prop? Issue is really annoying.
Click to expand...
Click to collapse
LOS Version: lineage-14.1-20171018-nightly-herolte-signed
Baseband: G930FXXU1DQF1
Kernel version: 3.18.14-gadb2bc5
I have Samsung Galaxy S7 G930F running latest nightly and have the voice distortion issue.
audio_hal.force_voice_config = wide [This is default, I didn't change this]
---------- Post added at 01:30 PM ---------- Previous post was at 12:33 PM ----------
padraigdoran said:
LOS Version: lineage-14.1-20171018-nightly-herolte-signed
Baseband: G930FXXU1DQF1
Kernel version: 3.18.14-gadb2bc5
I have Samsung Galaxy S7 G930F running latest nightly and have the voice distortion issue.
audio_hal.force_voice_config = wide [This is default, I didn't change this]
Click to expand...
Click to collapse
I got it working on my S7 by changing to the following:
audio_hal.force_voice_config = narrow
The audio person on the other end says they can hear me fine, but I think the audio quality of the incoming voice isn't that great. The voice is very understandable, just not super clear.
I tested
audio_hal.force_voice_config = narrow
on herolte with same nightly , but older baseband G930FXXU1BPJG. But it did not work. There is absolutely silence. No dial tone. No partner voice. Nothing. I have sadly to go back to nightly 20170919.
I've got a problem with Bluetooth on my Note 4 with Lineage OS 14.1. I've paired my android wear watch with my phone and can receive notifications and data from apps on the phone, but the watch can't access the internet through the Bluetooth connection. It worked fine on my old Touchwiz ROM. Is this related to problem 1 or something else?
none of these are the problem I have, my problem is that bluetooth doesn't even turn on
@Harinus
I have got issues with Call Audio on zerofltexx (S6). We are using the common audio HAL. Well the issue is I have got a pair of Beats Solo 3 Wireless Headphones which require WBS for Calls. Media audio works great. However there is no call audio whatsoever. Now I have tried many of the fixes you mentioned in your previous posts and non have solved this issue. I have tried the prebuilt audio HAL on LineageOS and it works fine with these headphones. Even the one by @macs18max for the same device works. I will attach a log when making a call. I have BT WBS as ON but PREFERRED to FALSE when this log was taken.
LG G6
this is what bluetooth does on my LG G6: The phone connects, media working, but in-call sound is completely garbled or muted on the other end
No idea on how to fix this. Phone is rooted and has the nightly from 20180206 with the microG-Patch. Same issue with previous versions.
any help would be appreciated
thnx lemonskater
I have this exact problem...
I'm now looking for the "How To" push code or config changes to my device? In the thread, there are a couple of fixes to try, and some files... but I don't have a single clue about what to do with them, how to "install" those fixes on my LOS 15.1 Galaxy S7. Im guessing I need an app on my phone to run and apply the changes... but I didn't find exactly how to.
I'm an experienced Windows sys admin, but I'm a total N00b as when it comes to Android. I want to learn to exploit the maximum of my phone, but I gotta start by making it work normal again. Can you help me with this? I'm totally lost as how I can solve my Bluetooth problem with the thread linked a little earlier!
Thank you SOOOOO much for every bit of help you could provide me.

[ROM][12.1][LAUREL_SPROUT] PixelPlusUI [OFFICIAL] [Twelve][AOSP]

{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Code:
* Your warranty is now void.
* We are not responsible for anything that may happen to your phone by installing any custom ROMs and/or kernels.
* You do it at your own risk and take the responsibility upon yourself and you are not to blame us or XDA and its respected developers.
"This is a user-friendly thread, all your suggestions, and proper bug reports are important to us but don't be disrespectful to anyone here. Your suggestions and proper bug reports will be taken into consideration.."
PixelPlusUI is another aftermarket AOSP ROM Minimal UI & close to Stock Android ROM. What differentiates us from the rest, you ask? LET'S FIND OUT. It has additional localized and personalized functionality while preserving the stock Android look by adhering to Material Design guidelines. Unlike OEMs' slow and untimely updates, we closely follow Google to bring the latest updates to our users, and even prolonging support to devices that have been declared obsolete by OEMs. Our ROMs' source code is open-source, secure, stable, and outstanding. Your experience using PixelPlusUI will be butter smooth with added convenience and features. The main aim of this form is to give the user a better experience without compromising the quality of the Android experience so that no one struggles with any kind of difficulties while using their device. PixelPlusUI brings a better UI/UX to Android with a seamless experience coupled with customizations and user security. In short, it's perfectly balanced between Great Performance, Security, Stability, Minimal UI & Awesome features including pixel goodies But this doesn't mean we aim to provide all the customization available on the planet. So do not hesitate anymore, join us now and start enjoying the beauty of stock Android. Download and enjoy PixelPlusUI on your respective devices!
- Kostya Maslennikov - Founder
- Saurav - Co-Founder & Co-lead
- Hamza - Core Developer & Team
- Abhishek - Support Team
- And Also Our Hardworking Maintainers
// Checkout the latest changes you get //
Latest Changelog: https://ppui.site/changelog
// A screenshot is worth of thousand words //
Latest Screenshots : https://ppui.site/gallery
NOTE : Well here you get all the useful features and with updating source every month it's hard to keep all the threads updated everytime everywhere so kindly visit our website for latest changes and screenshots.
--------- Official Download Server ! ---------
Note: You can check our Website for more details, guides , changelog etc related to build !
-- DEVICE UPDATE TELEGRAM CHANNEL --
-- SUPPORT/DISCUSSION TELEGRAM GROUP --
-- Visit our OFFICIAL Website
-- OUR OFFICIAL TWITTER HANDLE --
NOTE: It is STRONGLY recommended to fully wipe your device before flashing and please avoid restoring system apps and system data with Titanium Backup (or with any backup/restore app) as this can cause stability issues that are very hard to debug, restoring regular apps is fine.
If you believe you know what you're doing - then fine, go ahead, but please don't complain if you experience any strange behavior.
CLEAN FLASH :
- Download the latest build
- Take a backup, using Swift Backup
- Reboot to recovery.
- Format Data
- Flash the latest build
- Flash Recovery LineageOS by Magicxavi
- Reboot to recovery
- Reboot
DIRTY FLASH :
- Download the latest build
- Take a backup, using Swift Backup
- Reboot to recovery
- Flash the latest build
- Flash Recovery LineageOS by Magicxavi
- Reboot to recovery
- Reboot
What works?
Wifi | RIL | Mobile data | GPS | Camera
Flashlight | Camcorder | Bluetooth | Fingerprint reader | Lights | Sound | vibration
Almost everything
What doesn't work?
Nothing yet
You tell me!
BUG REPORT !!
As soon as the problem occurs, take a logcat and please inform us via Telegram or XDA.
for more READ THIS
- Android Open-Source Project
- Pixel Experience
- LineageOS
- Proton-AOSP
- AOSPA
- Others, I forgot to mention
PixelPlusUI XDA Templates credit goes to
- GOUSAL TONI
- Android OS version: 12.1
- Security patch: August 2022
- Build author/Device Maintainer : <VitorSSSouzaBR>
- DEVICE: <Xiaomi Mi A3>
- DEVICE CODENAME: <laurel_sprout>
Sources and Documentation
- ROM Source Code
- Kernel Source
- OFFICIAL DEVICES
// Giving little CAN HELP A LOT //
- As you know build is free but building ROM needs a server. And Maintaining source and device stuff needs a server and it's pretty expensive for a student.
- Do consider donating on Patreon for sustainable support and rewards or buying me a coffee if you want to appriciate our work.
- Thank you for your support !
​
I installed this ROM and currently only have one complaint. Vibration is off for Gboard, the virtual navigation buttons, the fingerprint scanner, and pattern unlock. This is regardless of what I set under Settings > Sound & Vibration.
Vibration is working fine for notifications and calls. It's just the haptics that aren't working for me.
incidentally, is there a Gcam version recommended for this ROM?
i've been using this rom for like 3 days and i love it !
it has all the features i'd expect from ppui.
one feature i kinda missed is disabling annoying notifications (meaning making all notifications silent while screen is on)
also can i use a custom kernel on top of this ?
Hello, does it work with android auto (phone call with car speaker, navigation and so on)?
Edited
The ROM works great! It's currently the best one for our phone.
[BUG]
Your rom does not work with AndroidAuto, i cannot answer/make call because when the call starts i cannot listen from the car, i can listen from the phone speaker, the menù on the car display says bluetooth but the phone use its own speaker.
The bluetooth remain connected in the phonr when i turn off the car, after several time the phone "think" that is connected to the car, and i cannot do calls, until i turn manually off the bluetooth.
Is there something to do/try?
Thanks
Rom is great. Only thing that is annoying 8s that usual random a12 bug where I can't here the other person on apps like Viber or whatsapp
Zergrinch said:
I installed this ROM and currently only have one complaint. Vibration is off for Gboard, the virtual navigation buttons, the fingerprint scanner, and pattern unlock. This is regardless of what I set under Settings > Sound & Vibration.
Vibration is working fine for notifications and calls. It's just the haptics that aren't working for me.
incidentally, is there a Gcam version recommended for this ROM?
Click to expand...
Click to collapse
For me it is working perfectly, I recommend you to join the device support group
mjdmjd86 said:
i've been using this rom for like 3 days and i love it !
it has all the features i'd expect from ppui.
one feature i kinda missed is disabling annoying notifications (meaning making all notifications silent while screen is on)
also can i use a custom kernel on top of this ?
Click to expand...
Click to collapse
Yes, but if there is a bug after installing a custom kernel, don't look for me to report bugs
lospo said:
Hello, does it work with android auto (phone call with car speaker, navigation and so on)?
Click to expand...
Click to collapse
I don't have a car so try and let me know
lospo said:
[BUG]
Your rom does not work with AndroidAuto, i cannot answer/make call because when the call starts i cannot listen from the car, i can listen from the phone speaker, the menù on the car display says bluetooth but the phone use its own speaker.
The bluetooth remain connected in the phonr when i turn off the car, after several time the phone "think" that is connected to the car, and i cannot do calls, until i turn manually off the bluetooth.
Is there something to do/try?
Thanks
Click to expand...
Click to collapse
I recommend joining the support group and sending the bug along with the log
sotmax said:
Rom is great. Only thing that is annoying 8s that usual random a12 bug where I can't here the other person on apps like Viber or whatsapp
Click to expand...
Click to collapse
I'm working on fixing it, it's a really annoying bug
VitorSSSouzaBR said:
I recommend joining the support group and sending the bug along with the log
Click to expand...
Click to collapse
Ok, i just send the log (MatLog with root privileges) and the bug to the gruoup.
Thank you so much!
VitorSSSouzaBR said:
I'm working on fixing it, it's a really annoying bug
Click to expand...
Click to collapse
To help you a little bit with app behaviour.
On Viber video call they can hear me but i can't. On normal Viber call all working ok. If I connect my earbuds all working ok even on video call. If I swap output from bt to speaker during call with Bluetooth, then speaker working great. On some previous builds I manage to just press speaker off and on and working.
To my knowledge vider and all other VoIP apps can't detect speaker at all unless you have one more source(bt, cable earpiece etc).
Also in volte calls I can't hear anything from earpiece at all. I have to disable volte if I want to have normal calls but this is a wide spread bug but is from system if has something to do. In general VoIP calls are misbehaving .
Hope that helps
Hi bro,
Really i love this rom a lot but i have something annoying me that the mic sensitivity is to high that make the sound on my ear too loud can i decrease it ?
guys if you facing internet calls problems try to disable this flag under developer options to see if it's fixed. I think this flag is causing the issue where you can't hear the other person and its for choosing audio output .
Give some feedback to see if it's ok for you as for me seems fixed now
There is a bug on locksreen clock, it freezes during the sleep.
Is this ROM still under development? For me it's the best one for our phone, only locksreen clock is the problem. If that can be fixed it would be perfect.
Hi,
This ROM is really awesome, really good Today is the 8th day I'm using this ROM, so far it's running smoothly, there are only a few problems with the camera and banking applications, but the camera can be tricked by using Parrot's GCam, but I haven't found the Bank application yet. Can you tell me how to use the Bank App, the bank app always closes automatically.
Thanks a lot

Categories

Resources