wanam / YouTubeAdAway

Xposed module to block YouTube ads on the official YouTube Android App
GNU General Public License v3.0
697 stars 56 forks source link

Enable Background Playback no longer works on YouTube v18.27.32+ #155

Closed badbeing closed 1 year ago

badbeing commented 1 year ago

Since v18.27.32, when a user turns off their phone screen the video will automatically stop playing. Device: Pixel 7 Pro

LSPosed logs: LSPosed_2023-07-07T18_17_35.316819.zip

thingo73 commented 1 year ago

That's right. I also have the same problem on Xiaomi 11. Hope the developer will fix it soon

badbeing commented 1 year ago

There are perhaps some code changes from YouTube's side to make the feature unavailable, not sure. I downgraded the app version to v18.25.38 and it works.

wanam commented 1 year ago

@badbeing according to your logs, the background patch seems to hook the correct class but the wrong method, unfortunately, I cannot help in the meanwhile, I won't be near my PC for the upcoming 4 weeks I will take a look at it when I come back from vacation...

badbeing commented 1 year ago

No worries, I've downgraded to a slightly older version since the module works perfectly fine there. Enjoy your vacation! 😄

AllenChangMusic commented 1 year ago

FYI, it started working for me again on version 18.28.33! Not sure if they unintentionally broke something and fixed it.

psychopathologist commented 1 year ago

@badbeing according to your logs, the background patch seems to hook the correct class but the wrong method, unfortunately, I cannot help in the meanwhile, I won't be near my PC for the upcoming 4 weeks I will take a look at it when I come back from vacation...

First, enjoy your vacation!

In your code, the findAndHookVideoBGP4C method is hooking on a wrong class (adun), the correct one would be acxn. I've messed around with this here for a while, and I've been able to verify that such class has always no declared fields, so adding one more check to the code (below) did the trick here. Ofc you'll check and write something more elegant to handle with that!

if (aClass.getDeclaredFields().length > 1) return false;

badbeing commented 1 year ago

I got tagged again by the previous comment lol. Anyway, just a small PSA that I have unrooted my device, so I no longer have access to any Xposed modules (especially the YouTube app is a system app on Pixels) and so I cannot perform any testing. 😔

wanam commented 1 year ago

I tried the module today, and it seems to work fine against the latest YouTube version 18.34.37 I see on the Play Store. Maybe it was related to some YouTube app changes that were discarded after 18.28.33 like @AllenChangMusic said in a previous comment https://github.com/wanam/YouTubeAdAway/issues/155#issuecomment-1637084919