[Xposed Framework Modules] claytonjn:
I'm sorry this is a bit off topic. I hope the devs that follow this threat can help because they are obviously familiar with reverse engineering apps.

After thinking about my SMS syncing issue I talked about earlier I realized that I could probably get a working solution without an Xposed module. If I have Hangouts as my default SMS app and grant write permission to Verizon Messages with AppOps, then I should be able to run a script that would force Verizon Messages to sync, without actually opening the app. Then I could just set that up in Tasker to run whenever a SMS is received, or something of the sort.

Anyways, I'm having difficulty triggering the sync. The following is from the AndroidManifest.xml:

<service
android:name="com.vzw.vma.sync.service.VMASyncService">
<intent-filter>
<action
android:name="vzm.sync.START"/>
<action
android:name="vzm.msg.SEND"/>
<action
android:name="vzm.sync.STOP"/>
<action
android:name="vzm.mark.as.READ"/>
<action
android:name="vzm.msg.DELETED"/>
<action
android:name="vzm.xconv.DELETED"/>
<action
android:name="vzm.sync.APP_ON_FOREGROUND"/>
<action
android:name="vzm.sync.DELETE_OLD_MESSAGES"/>
<action
android:name="vzm.sync.RESTOREFROMSERVER"/>
</intent-filter>
</service>

If I run the command: am startservice -n com.verizon.messaging.vzmsgs/com.vzw.vma.sync.service.VMASyncService it appears to be successful, but the sync doesn't actually happen. I think I somehow need to trigger the vzm.sync.START action, but I don't know the correct syntax and have been unsuccessful searching online.

I've attached the entire AndroidManifest.xml, in case it's pertinent. Also, here's some relevant output from a logcat from the sync occuring from manually opening the app and from selecting sync from the menu:

W/01:31:30.361 ContextImpl(17830)
Implicit intents with startService are not safe: Intent { act=vzm.sync.START } android.content.ContextWrapper.startService:494 com.verizon.sync.SyncController.startVMASync:177 com.verizon.sync.SyncController.onAppStatusChanged:233
W/01:31:34.355 ContextImpl(17830)
Implicit intents with startService are not safe: Intent { act=vzm.sync.START (has extras) } android.content.ContextWrapper.startService:494 com.verizon.mms.ui.ConversationListFragment.onActionItemSelected:2513 com.rocketmobile.asimov.ConversationListActivity.onActionItemSelected:614

If anyone could give me any advice I'd greatly appreciate it. I apologize that this is off topic, although it may help if someone decides to make an Xposed module to handle this.

Thanks!

EDIT: I actually got the terminal command working by running this code: am startservice -n com.verizon.messaging.vzmsgs/com.vzw.vma.sync.service.VMASyncService -a vzw.sync.START

It still only syncs if Verizon Messages is the default SMS app, but at least I can trigget it to happen right away. I have a bit of a hack working...basically, it sets Verizon Messages as the default SMS app, runs the command, waits a few seconds, and sets Hangouts back again. It's triggered when an SMS is received, but doesn't execute until Hangouts is closed (so if it isn't open it executes immediately) which prevents things like archived SMS messages from becoming unarchived, etc.

I still think a more elegant solution would be better.