[Xposed Framework Modules] BehindTheMath:
This module enables the use of other SMS apps to send and receive messages through Google Voice. When this module is activated, any SMS messages sent will be rerouted through Google Voice, and any messages that are received by the Google Voice app will be displayed in SMS apps.

Setup:

Download the APK and install.

Open the app, enable it, and select the account you want to use.

Open Xposed, activate the module, then soft reboot.

You will get a notification to sign in to authorizing the app to access your account. Tap the notification, then tap allow. For some reason the notification is not dismissed automatically; you can dismiss it manually.

If the module does not work at this point, try soft-rebooting again.

Known issues:

This module will only work with the old Google Voice app, version 0.4.7.10 or lower. If you already updated to a newer version, you must uninstall it and sideload the old version. You can find the latest working version here. Once you've downgraded, open the Play Store and set the app not to auto-update, so you won't run into the same issue later. This is fixed as of v3.1.2.

When I had the default SMS app is set to the AOSP Messaging app (com.android.mms, not to be confused with Google Messenger), the module would not work for outgoing messages. On one device, incoming messages did not work either. I was using version 5.1.1-720affab4e. I'm still not sure what causes it.

On my S3 test device, I sometimes experienced a crash of the system process on boot. This did not seem to affect the functionality of the module.

There is a known issue with Xposed reading SharedPreferences in certain situations, due to file permissions issues. With this module, this would cause that disabling the module from within its own settings would not help, and the only option would be to deactivate the module from inside Xposed Settings and soft-rebooting. I added some code to work around this, however it's possible that it could still occur. This is fixed (hopefully) as of v3.1.2.

Old issues:

Many of the old bugs present in the original XVoice+ are still in this version. These include:

Emojis may cause issues. (This issue should be fixed for incoming messages as of v3.2.0).

There is no support for MMS

Occasionally, messages may show up with the wrong timestamp, there may be duplicate messages, or there may be a delay before the messages appear.

Google Voice 5.0+

As mentioned above, the module will not work with the new updates to Google Voice. This is because they completely rewrote the code for the app, which would require XVoice++ to be rewritten as well to properly hook it. This is further complicated by the fact that Google obfuscated the code, making it much harder to figure out what is going on. Additionally, it is probable that with every update the code will be obfuscated diferently, requiring XVoice++ to be patched every time to support the new update. Since the whole point of this module is to replace the functionality of the Google Voice app, and it is functional with the old version, I will not be working on supporting the new versions of the app at this time. This is fixed as of v3.1.2.

Devices tested on:

Verizon LG G3 (vs985) running a custom build of CM 12.1

Sprint Samsung Galaxy S3 (d2spr) running CM 13.0 (11/17/2016 nightly) without phone service

Acknowledgements:

Koush

CM team

@runnirr

@B2OJustin

@iHelp101

Jake Hamby (a former engineer at Google, who helped maintain the internal SMS processing code for Android) for providing a lot of information about PDU structure and processing, and patiently answering my questions.

Xposed Repo

XDA:DevDB Information

XVoice++, Xposed for all devices (see above for details)

Contributors

BehindTheMath, @runnirr, @B2OJustin, @iHelp101

Source Code: https://github.com/BehindTheMath/XVoicePlus

Xposed Package Name: io.behindthemath.xvoiceplus

Version Information

Status: Stable

Current Stable Version: 3.2.1

Stable Release Date: 2017-05-08

Created 2017-02-15

Last Updated 2017-05-08