NoMore201 / googleplay-api

Google Play Unofficial Python API
Other
413 stars 208 forks source link

The new Dynamic Delivery and split APKs #53

Open archon810 opened 6 years ago

archon810 commented 6 years ago

https://developer.android.com/guide/app-bundle/configure#split_apks

This is a huge problem for us, I really hope there's a flag to ask Google Play for the most complete APK somehow.

Now not only will Google Play start serving variants/splits based on the usual dpi/minapi/arch but also now based on locale/language. And further, much worse, there are now dynamic feature apks coming.

So one app on the same device can be comprised of several APKs - base, configuration, and feature APKs.

And the number of permutations is now huge.

How do we overcome this? What I'm really hoping for is a flag of some sort for the API that would instruct it to serve the fullest APK available - the app bundle itself - instead of the split APKs, but I'm not optimistic.

@NoMore201 @matlink @SeBsZ

archon810 commented 6 years ago

https://developer.android.com/platform/technology/app-bundle/

archon810 commented 6 years ago

https://android-developers.googleblog.com/2018/05/io-2018-everything-new-in-google-play.html

matlink commented 6 years ago

I guess you'll have to downloads all of required apks and install them. I guess they have different package names so that wouldn't be so dramatic.

archon810 commented 6 years ago

@matlink I need to see examples, but I don't think they have different pnames. You're only talking about dynamic feature modules here though.

But there are also now so many possible slices (hundreds or thousands of apk variants per release) that it becomes potentially very hard to manage. I mean the API will continue to work in this regard, it'll just pull a super specific slim APK.

matlink commented 6 years ago

Maybe we should ask @yeriomin from YalpStore.

NoMore201 commented 6 years ago

IMO if we keep using user agent for old Play Store version, we shouldn't encounter this problem.

For example, if I update the user agent with a more recent Play Store version like I did here

https://github.com/NoMore201/googleplay-api/commit/78113555b5f054f40bc614a2d22f73d812032755

you can notice that some API slightly changes: this could mean that newer API are available only with newer Play Store versions. I'm not 100% sure though.

In case I'm wrong, we could try to implement this, maybe joining efforts with @yeriomin since most of device related stuff here is taken from play-store-api.

archon810 commented 6 years ago

@NoMore201 That'd be a pretty awesome requirement which we'd need to verify, but Google told me all these new features are already supported by 99% of devices because split APKs have been supported since Lollipop. Except almost nobody used them, but now they're pushing these new improvements to them hard, so adoption may be higher this time.

IRGC commented 5 years ago

@archon810 is not anyway to merge all split response files into single apk ? i saw for some apps google play giving extra files beside an apk + armv7a.config + xdpi.config + config.en something like that. :confused:

archon810 commented 5 years ago

There isn't because you wont be able to sign it with the developer's key.

IRGC commented 5 years ago

https://github.com/yeriomin/YalpStore/blob/master/app/src/main/java/com/github/yeriomin/yalpstore/install/InstallerRoot.java#L172

is this the offical way to install split apks?

archon810 commented 5 years ago

I don't know about official, but it uses root, so it's not really a good solution for everyone.

IRGC commented 5 years ago

I don't know about official, but it uses root, so it's not really a good solution for everyone.

not just root but as system app. com.android.vending is play store which is a system app :confused:

IRGC commented 5 years ago

Tinder and many other apps are no longer available as single apk :( can install only on device that support split apk.
is there any work around?