Welcome to XDA

Search to go directly to your device's forum

Register an account

Unlock full posting privileges

Ask a question

No registration required
Thread Closed

[EXPERIMENTAL] Enable Mirroring from any device

OP r3pwn

11th July 2014, 03:15 AM   |  #1  
r3pwn's Avatar
OP Recognized Contributor
Thanks Meter: 1,472
 
1,304 posts
Join Date:Joined: Jul 2012
Donate to Me
More
Hello, fellow XDA members!
Some of you may have heard of me before, and for the ones that haven't, let this be a warm introduction.
After hearing of the new Chromecast app with Beta support for mirroring, I decided to see if it's possible to enable for all devices. Apparently it is!
I assumed that some devices just wouldn't stream well, so I decided to mark this as [EXPERIMENTAL]. Please note that I did not make the feature, just the method to enable it.
Please alsenote that you need the latest version of the Chromecast companion app and root access on your device (not your chromecast) for this to work properly. The mirroring functionality requires KitKat 4.4.2 or higher.

Please note that under certain circumstances, some Samsung tabs may bootloop due to this modification. To be safe, do not enable the second option unless you ABSOLUTELY need to.

If this worked for you and you want to send some money my way (Keep in mind that I didn't make the mirroring, only the hack to enable it), feel free to visit my PayPal donation link in my signature.


For those STILL having issues,
Check /system/lib/hw directory for the file "audio.r_submix.default.so".
If it doesn't exist, ask your device maintainer to add audio.r_submix.default to
the product_packages in the device.mk file. (You may not know what it means, but they will.)
EXAMPLE (Thanks, @runandhide05!):
http://review.teameos.org/#/c/389/

(Thanks, @hwong96.)

What exactly is required for this to work?
(This is the technical aspect of getting mirroring to work)

(Straight from Google)
* The WiFi radio must support WiFi P2P.
* The WiFi radio must support concurrent connections to the WiFi display and to an access point.
* The Audio Flinger audio_policy.conf file must specify a rule for the "r_submix" remote submix module. This module is used to record and stream system audio output to the WiFi display encoder in the media server.
* The remote submix module "audio.r_submix.default" must be installed on the device.
* The device must be provisioned with HDCP keys (for protected content).


LINK: (v7)
https://www.androidfilehost.com/?fid=95784891001616583

Here are all of the previous releases: http://www.androidfilehost.com/?a=sh...les&flid=16506

Changelog:

v7
- Lollipop support
- Bug fixes
- This modification now works on ALL devices KitKat and up. (Including x86, hopefully)
- Mirroring might work better on Lollipop. We only learn by testing, right?

v6
- Bug fix with sqlite3

v5
- Added PurpleHoloLight Theme!
- Added an audio remote submix file check.

v4
- Fixed critical bugs

v3
- Added fix that may work for some
- Added " QuickSettings Mirror Tile" option

v2
- Added preinstalled sqlite3 binaries
- Fixed critical bugs

v1
- Initial release



Please note that I tried to provide a safe, universal fix, but unfortunately, this may STILL not work on some devices. If it does not work for you, let me know and I will try to fix it (again).
Please note that this has the potential to mess up audio on your device, but it creates a backup that you can restore from by "Disabling" the fix.


For the paranoid:
Source can be found here: https://github.com/r3pwn/MirrorEnabler

Tested Working:

(Aside from the officially supported devices)
Amazon Kindle Fire HD 8.9"
Amazon Kindle Fire HD 7" (BeanStalk ROM only)
ASUS PadFone X
ASUS PadFone 2
Nook HD+ (as of v4) (ROM MUST HAVE APPLIED FIX, CHECK ABOVE)
Droid RAZR MAXX HD
Droid RAZR M
Sony Xperia Z
Sony Xperia Z Ultra
Sony Xperia Z1
Sony Xperia Z1 Tablet
Sony Xperia Z1 Compact
Sony Xperia Z2
Sony Xperia Z2 Tablet
Sony Xperia ZL
Huawei Honor 3C
HTC One M8 (Including GPE)
HTC Droid DNA (as of v4) (ROM MUST HAVE APPLIED FIX, CHECK ABOVE IN RED)
Motorola Moto X
Motorola Moto X (2014)
Motorola Moto G
Motorola Moto G (2014)
Samsung Galaxy S II (as of v4) (ROM MUST HAVE APPLIED FIX, CHECK ABOVE)
Samsung Galaxy S III (as of v4) (ROM MUST HAVE APPLIED FIX, CHECK ABOVE)
Samsung Galaxy S IV Mini
Samsung Galaxy Note II (as of v4) (ROM MUST HAVE APPLIED FIX, CHECK ABOVE IN RED)
Samsung Note 8 Tab
Samsung Note 10.1 Tab
Samsung Note Pro 12.2 Tab
Samsung Galaxy Tab 2 (as of v4) (ROM MUST HAVE APPLIED FIX, CHECK ABOVE)
Samsung Galaxy Tab Pro 8.4
Samsung Galaxy Tab S 10.5
Samsung Galaxy Tab 4
Nexus 7 2012
Galaxy Nexus (as of v4) (ROM MUST HAVE APPLIED FIX, CHECK ABOVE IN RED)
Oppo Find 7
Oppo Find 7a
OnePlus One
LG GPad 8.3 (ONLY ON V6)
LG G2 Mini (ONLY ON V6)
LG Optimus G (ONLY ON V6)
LG G Flex (ONLY ON V6)
Xiaomi Mi2
Sero 7 Pro (as of v4) (ROM MUST HAVE APPLIED FIX, CHECK ABOVE)
And possibly your smartphone/tablet! Test it out and let me know!


Tested Not Working:

HTC EVO 3D
Droid 4
Samsung Galaxy S I
Most older devices
Devices with a Tegra SoC (not sure why)


TO THOSE WITH PLAY SERVICES FORCE CLOSE:
A fix is out (v4). Thank these guys:
@alex3305
@pabx
@mattgyver83

ROMs that allow Screen Mirroring


To enable Chromecast Mirroring on a TouchWiz ROM, follow the guide below:
(For SAMSUNG Devices ONLY!)
Quote:
Originally Posted by ¿Will-it-Blend?

Go to system/etc/wfdconfig.xml
Find the following lines:*

Code:
1*(Change this 1 to a 0 and reboot)
WFD_HDCP_2_1 
6789
0 


0



For those with audio issues after applying the Force-Close Fix:

DISABLE THE SECOND OPTION IN MIRRORENABLER FIRST!
Quote:
Originally Posted by hwong96

I'll explain it in a way so you can edit the audio_policy.conf file yourself. The audio_policy.conf file is unique to each model in a manufacturer's lineup and between manufacturers. That is due to the different audio hardware installed on the device. It is more prevalent in older devices, not so much in newer devices. The force close fix option #2 in MirrorEnabler is more of a generic fix.

If you are up to the challenge, here are the steps to edit your own audio_policy.conf file-
1. If you applied option #2 in MirrorEnabler, de-select and reboot device to reset the manufacturer audio_policy.conf file.
2. Make a backup of the manufacturer's audio_policy.conf file in the event you need to restore it.
3. Open your audio_policy.conf file.
4. Open the this pdf file and copy the red highlighted words from the global configuration section. Paste into your global configuration section as shown. Make sure to include the pipe.
5. Copy the r_submix section highlighted in red and paste into your file as shown. You should have 4 }s at the end. Sampling rate should be 48000.
6. Save your file.
7. Reboot.

Use MirrorEnabler without selecting option #2. You no longer need it if you edit your own audio_policy.conf file.

You now have your device manufacturer's audio_policy.conf file with the audio.r_submix module added. You still need to make sure the audio.r_submix.default.so is baked into the rom. Look in /system/lib/hw. On newer devices look in /system/lib for libaudio.r_submix.default.so.

Not much more I can say.

Last edited by r3pwn; 2nd December 2014 at 10:55 PM.
The Following 482 Users Say Thank You to r3pwn For This Useful Post: [ View ]
11th July 2014, 03:26 AM   |  #2  
Senior Member
Thanks Meter: 50
 
619 posts
Join Date:Joined: Jul 2007
Works!
The Following 5 Users Say Thank You to Lolento For This Useful Post: [ View ]
11th July 2014, 03:28 AM   |  #3  
r3pwn's Avatar
OP Recognized Contributor
Thanks Meter: 1,472
 
1,304 posts
Join Date:Joined: Jul 2012
Donate to Me
More
Quote:
Originally Posted by Lolento

Works!

Can you stream properly? If so, please be sure to hit that thanks button and tell all of your buddies!
The Following 17 Users Say Thank You to r3pwn For This Useful Post: [ View ]
11th July 2014, 03:56 AM   |  #4  
Member
Flag Zanesville Ohio
Thanks Meter: 13
 
61 posts
Join Date:Joined: Dec 2010
More
My S3 running quantum makes the attempt but then it said "Google services has stopped" then just says disconnecting.

AT&T Samsung Galaxy S III
The Following 2 Users Say Thank You to ksd316 For This Useful Post: [ View ]
11th July 2014, 03:59 AM   |  #5  
Senior Member
Thanks Meter: 6
 
200 posts
Join Date:Joined: Nov 2012
Does it still have to be running at least 4.4.1?


Sent from my iPhone using Tapatalk
11th July 2014, 04:05 AM   |  #6  
r3pwn's Avatar
OP Recognized Contributor
Thanks Meter: 1,472
 
1,304 posts
Join Date:Joined: Jul 2012
Donate to Me
More
Quote:
Originally Posted by ksd316

My S3 running quantum makes the attempt but then it said "Google services has stopped" then just says disconnecting.

AT&T Samsung Galaxy S III

Sounds like it *might* be a hardware limitation. I don't know how to help, sorry.
Quote:
Originally Posted by cnotes2019

Does it still have to be running at least 4.4.1?


Sent from my iPhone using Tapatalk

I have honestly no idea. All of my android devices are running KitKat, so I wouldn't even be able to test. My guess is probably, but you can feel free to go ahead and give it a shot.
The Following 4 Users Say Thank You to r3pwn For This Useful Post: [ View ]
11th July 2014, 04:06 AM   |  #7  
Member
Flag Zanesville Ohio
Thanks Meter: 13
 
61 posts
Join Date:Joined: Dec 2010
More
No worries, glad to provide a test.

Sent from my SAMSUNG-SGH-I747
The Following 2 Users Say Thank You to ksd316 For This Useful Post: [ View ]
11th July 2014, 04:12 AM   |  #8  
dsEVOlve's Avatar
Senior Member
Thanks Meter: 103
 
354 posts
Join Date:Joined: Sep 2010
Just tested on Verizon M8 running Skyfall ROM (almost stock) and works pretty well. There was a little lag in places but not bad for an "experimental" workaround.

Thanks!
The Following User Says Thank You to dsEVOlve For This Useful Post: [ View ]
11th July 2014, 04:13 AM   |  #9  
r3pwn's Avatar
OP Recognized Contributor
Thanks Meter: 1,472
 
1,304 posts
Join Date:Joined: Jul 2012
Donate to Me
More
I started setting up a list, as they come in, of devices that this does/doesn't work with. Please, as you test this, leave what device you are testing it on, ROM, and whether or not it worked.
The Following 5 Users Say Thank You to r3pwn For This Useful Post: [ View ]
11th July 2014, 04:15 AM   |  #10  
Member
Flag Wisconsin
Thanks Meter: 79
 
91 posts
Join Date:Joined: Feb 2011
More
You are a god
HEY MAN YOU JUST MADE MY YEAR. I have been stuck on terrible TouchWiz Stock Roms on my Galaxy Note 2 for the past 1.5 years because I use my screen mirroring with allshare cast dongle a lot. I have been trying EVERYTHING to get screen mirroring or cast screen to work on this device for over a year. When I heard it worked on the CCast I pulled out my Nexus 7 2013 and it instantly work perfectly. I was so bummed when I saw the Note 2 was not on the list of supported devices. I just installed your app then the sqlite binary from the playstore and used that to install the binary. Then enabled your app, launched chromecast and am now mirroring my screen FLAWLESSLY on my US Cellular SCH-R950 t0lteusc Note 2 using stock rooted deodexed 4.4.2 TW rom and latest agni-kernel. YOU ARE THE MAN. Seriously, thank you so much. Seriously. You have freed me from the samsung prison.

The Following 6 Users Say Thank You to bjcoenen For This Useful Post: [ View ]
Thread Closed Subscribe to Thread
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes