[EXPERIMENTAL] Enable Mirroring from any device

Status
Not open for further replies.
Search This thread

ThorasTech

Member
Oct 22, 2014
7
0
26
Viborg
www.youtube.com
Dosn't work on Android 5.0 Lollipop

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! :D
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=show&w=files&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!)


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

DISABLE THE SECOND OPTION IN MIRRORENABLER FIRST!

This app works flawless on the Carbon ROM (LG G3 D855), but dosn't work at all on the newest Paranoid Android 5.0 ROM. It's probably because MirrorEnabler dosn't support Android L yet, and therefore it would be awesome if it could be! :)
 

iamhcg

Senior Member
Mar 26, 2011
233
38
OK, I am posting an update after post#2360

My device is Asus fonepad note 6. Somehow the "cast screen" option is in my Chromecast app. But after I pressed it, my device said it was connected but my tv screen was still black. I don't know what to do next. Any help? thanks.
 

urphonesux

Senior Member
Jun 24, 2008
572
78
Captiva
OK, I am posting an update after post#2360

My device is Asus fonepad note 6. Somehow the "cast screen" option is in my Chromecast app. But after I pressed it, my device said it was connected but my tv screen was still black. I don't know what to do next. Any help? thanks.

On my Galaxy tab 3 10.1 I have to wait for mirror enabler to "warm up". I get the black screen at first but after a few minutes the image comes in. I do however get sound immediately
 
  • Like
Reactions: iamhcg

BillReed

Member
May 4, 2009
43
3
On Galaxy Note 1 (N7000) its not working:

1 Click the tile, it sees Chromecast
2 Enable Mirror, select Chromecast
3 TV recognizes connection then it halts
4 Error Casting has stoped apears

Gear: Galaxy Note N-7000
Rom: CM11 Nightlies (07/12/14)
 
  • Like
Reactions: r3pwn

r3pwn

Inactive Recognized Developer
Jul 11, 2012
1,749
2,052
r3pwn.com
On Galaxy Note 1 (N7000) its not working:

1 Click the tile, it sees Chromecast
2 Enable Mirror, select Chromecast
3 TV recognizes connection then it halts
4 Error Casting has stoped apears

Gear: Galaxy Note N-7000
Rom: CM11 Nightlies (07/12/14)
Let me know if this works, try adding:
wlan.wfd.hdcp=disable
To your build.prop. Be sure to set permissions and have a backup in case something goes wrong.
 
  • Like
Reactions: BillReed

BillReed

Member
May 4, 2009
43
3
Let me know if this works, try adding:
wlan.wfd.hdcp=disable
To your build.prop. Be sure to set permissions and have a backup in case something goes wrong.

Hey man, thanks in advance for the help :)

Did just that, but now it takes a little more time between selecting chromecast and displaying the error. The error still stands. :|
 

iamhcg

Senior Member
Mar 26, 2011
233
38
On my Galaxy tab 3 10.1 I have to wait for mirror enabler to "warm up". I get the black screen at first but after a few minutes the image comes in. I do however get sound immediately

Thanks for the tip.
So I turned on my device and left it on the table. Eventually, it did come through.
It took really long time, like 10 mins or more, but it came through.

===

By the way, I downloaded the V.7 from the link in main post, but after installing, it says it is V.6. I don't know why, but it works, only very slow.

===
**Updated:**

I just turned it on again to measure how long it actually takes. It's been 20 mins now and still haven't come through. Is it normal to take so long?
 
Last edited:

pheel

Senior Member
Mar 7, 2011
488
95
Sydney
I get an FC on my xperia z1 even when I have ticked the 2nd box and rebooted and everything.
Any ideas? Will you need a logcat?
 

r3pwn

Inactive Recognized Developer
Jul 11, 2012
1,749
2,052
r3pwn.com
I get an FC on my xperia z1 even when I have ticked the 2nd box and rebooted and everything.
Any ideas? Will you need a logcat?
Yeah, that would help. Try turning the second option off then reboot to fix everything then go ahead and grab a logcat.

On my i9100 and cm11 build 6/12/2014 not work!! Solution??

Please elaborate. What is the issue? Is the cast screen option not showing up? Is the screen going black when you try to cast screen? Does it just disconnect immediately?
 
  • Like
Reactions: amey2606

nand.96

Senior Member
Jun 26, 2014
355
117
Chittagong
@r3pwn I have Sony Bravia TV,which have Built in Screen Mirroring! My Galaxy Core doesnt Support Mirroring & i don't have a chromecast also! If i enable this mod will it work directly with bravia tv? Version..Jelly bean 4.1.2
 

r3pwn

Inactive Recognized Developer
Jul 11, 2012
1,749
2,052
r3pwn.com
NOOOOO!!!!!!!! Well, anyways, it was fun! It was good getting to meet and help each and every one of you! Happy Holidays! In order to preserve the research that everyone contributed and in order to end this thread on a happy note, I declare this thread locked. Sweet dreams, #MirrorEnabler. May you rest in peace. :)
 
Status
Not open for further replies.

Top Liked Posts

  • There are no posts matching your filters.
  • 505
    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! :D
    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=show&w=files&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!)
    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!
    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.
    77
    NOOOOO!!!!!!!! Well, anyways, it was fun! It was good getting to meet and help each and every one of you! Happy Holidays! In order to preserve the research that everyone contributed and in order to end this thread on a happy note, I declare this thread locked. Sweet dreams, #MirrorEnabler. May you rest in peace. :)
    21
    Can you stream properly? If so, please be sure to hit that thanks button and tell all of your buddies!
    10
    For the curious: a fix is incoming soon(v3), it will not work on the HTC One M8 on stock (it will work on CM). It fixes the Google Play Services Force Close issues once and for all!
    Oh, it might also have a little surprise. :) Stay tuned.
    8
    Unfortunately, it seems, even after all of the logcats and testers (thank you, by the way), fixing the Play Services force-close is beyond my current knowledge. To those with the Play Services force-close, I apologize for the inconvenience and hope you all get it resolved. :)