-
-
Notifications
You must be signed in to change notification settings - Fork 3.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Drop support for Android 4.4 / Require Android 5 / API 21 #7602
Comments
I'm on board with dropping Android 4.4 due to the problems it's causing, but I'm strongly opposed to also dropping support for either 5 or both 5 and 6:
|
I proposed dropping everything < Android 7 because these versions will likely be no longer relevant by the end of 2022 if we have a look at the past numbers:
Version 5x and 6 roughly lose half of their users per year. Since the data inside Android Studio was updated around October and we now have nearly 2022, I predict that these version will have roughly 5% by September 2021. Btw other sites that show the Android version market-share report even lower numbers: https://gs.statcounter.com/os-version-market-share/android/mobile-tablet/worldwide However I'm also fine if we just drop 4.4. |
That's a little more convincing, but as long as it's not causing us much trouble I think it's better if we stick to supporting them. |
@litetex Are there any specific major advantages to dropping APIs higher than 4.4? Like, do we get rid of a big annoyance or make way for a really cool feature if we drop support for versions 6 or 7? If there is no such substantial gain, then I don't think it's worth it to ignore users still on those versions (most of them would be stuck on old versions due to circumstance, not by choice). |
As a user, I totally disagree. The "benefits" obtained from this are incommensurable with the sacrifices incurred from this. There are still enough Android 4.4 devices with quite sufficient performance to run NewPipe flawlessly, and at the moment it is the ONLY working YouTube client on this OS. In fact, you are proposing to throw these devices and all their users out in the street just for the sake of slightly facilitating development. |
There are still apps that support Android 2.2+ so why drop 4.4. I have devices with 4.2, 5, 6, 7, 8, 10 Android versions. Also showing warnings for custom ROM users might upset them, they will already have understood the risks when flashing |
@mhmdanas @opusforlife2
Where do you have this information from?
Yes.
Our bugtracker tells other stories #7599 |
Yes they can but there are variable reasons why people won't. Some are reluctant to change or find change traumatic. People are happy to use older devices for environmental and financial reasons.
|
Don't tell me they SHOULD to do this only because of your app. Old devices are quite good to be used as a media center, book readers, organizers, dialers, retro-gaming station etc. Not everyone thinks from the position of mindless consumerism with an endless change of devices or clothes, even if they CAN do it. Also I know enough people that prefer classical 3D interfaces versus that cloying flat "material" thing everywhere. And that's the reason to use old OSes too. My "Sony Z3 Compact" device with A4.4 runs fast everything I need, including heavy modern apps like Spotify (which even support 4.1 despite of all, btw) or Firefox, because 4-core of 2.5 Ghz and 2 Gb or RAM is still quite enough for most of them. Don't tell me this is "ancient" stuff if it does all what's required from. |
I'm pretty sure that this is not representative.
Don't get me wrong I understand some of these points (environmental and financial) but that's not a reason to use outdated software.
These apps are not based around streaming like NewPipe is and therefore not very much comparable.
Well you have a choice: Either not use the app, update your device or buy a new one which is up-to-date and supported.
Old devices may be quite good as long as they have up-to-date software or are completely offline.
According to GSMArena this is upgradeable to Android 6 so I see no problem here in the first place.
It's not primarily about the device. It's about your OS: It's is unpatched against serve security flaws and marked by the manufacturer as discontinued. |
You are proposing to have other people spend (waste) time on outdated devices that are insecure anyway. It's not the fault of NewPipe that those devices do not receive updates any more. The developers' time is much better spent on useful things which the majority of users benefit from. |
Just to throw in another perspective since I've just last month gone through all my old devices and even recycled one. |
Agreed. My Samsung galaxy core prime would miss out.
I'm wondering about the legacy version of NP keeping it's low requirement
…On 4 January 2022 11:00:13 Plugdemholes-Imeanpatchdembugs ***@***.***> wrote:
Just to throw in another perspective since I've just last month gone
through all my old devices and even recycled one.
As soon as, you in the future, demand Android 9+, one basically commands
that everyone uses a 5-inch+ device, most devices that allowed to be put
snugly into onces pants were created and shipped with Android 6 and
upgradable to Android 8...
(though my devices with sub-Android 5 aren't in regular use anymore, since
those for me are mostly devices that come with 512MB of RAM in my case and
are anyways getting harder and harder to find apps that are ok with
sub-Android 5 versions I'd urge to not set the minimum requirments higher
than Android 5 or 5.1...)—
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.
You are receiving this because you commented.Message ID:
***@***.***>
|
There is some confusion and irrelevant discussion in this issue. We're not dropping Kitkat support just for the heck of it. Newpipe depends on the OkHttp library to make HTTP connections. Quoting from https://square.github.io/okhttp/:
It is now 2022. Happy new year. Since there is no question of us using an unpatched library (especially the one that connects Newpipe to the Internet), we are bumping the minimum version to Lollipop so that we can use a newer version of OkHttp. The rest of the stuff stated in the OP is "oh well, since we're being forced to do this, let's look at the positives". |
This comment has been minimized.
This comment has been minimized.
@lawson85 whataboutism has no place in this issue. We don't care about other apps. We cannot evaluate whether your app is secure, it might be using old, vulnerable libraries. I will hide your comment as off-topic. |
Well, he's speaking up for himself. Nevertheless, according to the cumulative distribution you posted, there are 1.4% devices with Android 4.4 (99.4%-98%). 1.4% of 3+ billion devices is quite a few.
Yes it is. Why wouldn't it?
You can "simply update", but then things may not work -> You cannot "simply update". You can take the risk and update, but then things may be worse than before. The latest Custom ROM existing for my old Android 4.0.4 device does not support its mini-HDMI output. Bad luck. Also, regarding "simply install a custom ROM": I can explain to my parents how to install NewPipe. But I can't explain them how to install a custom ROM. It's not that "simple".
It is not the app developer's responsible to fix it - of course not. But the fact that Android is what it is should not be ignored in the decision about an app that is developed for Android. (...)
But then again you cannot simply update, see above. Thus you are softly forcing people like @Psycho-A to buy a new device, as one more app won't work for their old ones.
Unless you don't have it on that phone. I have a very old phone, which I use only as a podcast player for my son. It's great for just that. No need for credit card info or any other sensitive information. (...) I am definitely not opposed to dropping support for old APIs if it is burdening developers and slowing down progress or impacting the security of the app as stated by @opusforlife2. But there is a real cost to it to some users and that shouldn't be dismissed with hand-waving arguments. I am not sure if this is an option, but I guess the most important changes to keep NewPipe alive for older phones would be that updates in the NewPipeExtractor are still usable with the old NewPipe version. Would it be feasible to keep the Extractor backwards-compatible, so the last Android 4.4 NewPipe version can be built with the latest Extractor? By the way, awesome app, love using it (on Android 7.1), thanks to the devs! |
Also not everybody can do custom ROM. Some are not technically minded and
some device disallow bootloader unlock meaning it can't support a custom
ROM. Also there may just be no ROM for the device
…On 7 January 2022 23:11:38 Felix Endres ***@***.***> wrote:
Where do you have this information from?
I own a few
I'm pretty sure that this is not representative.
Well, he's speaking up for himself. Nevertheless, according to the
cumulative distribution you posted, there are 1.4% devices with Android 4.4
(99.4%-98%). 1.4% of 3+ billion devices is quite a few.
Yes they can but there are variable reasons why people won't. Some are
reluctant to change or find change traumatic. People are happy to use older
devices for environmental and financial reasons.
Don't get me wrong I understand some of these points (environmental and
financial) but that's not a reason to use outdated software.
Yes it is. Why wouldn't it?
If you really want to use your phone with apps that require Android 5+ then
you can simply install a Custom ROM that is based on Android 5+. However I
can give no guarantee that the app then works e.g. if things like hardware
decoding are missing.
You can "simply update", but then things may not work -> You cannot "simply
update". You can take the risk and update, but then things may be worse
than before. The latest Custom ROM existing for my old Android 4.0.4 device
does not support its mini-HDMI output. Bad luck.
Also, regarding "simply install a custom ROM": I can explain to my parents
how to install NewPipe. But I can't explain them how to install a custom
ROM. It's not that "simple".
The problem is the OS. If Android would behave like a desktop OS (Win,
Linux, etc) - which it does not because every manufacturer builds his own
variant and supports it for a limited time - we wouldn't have such
problems. However that's not our area of responsibility - that's Google &
Co's.
It is not the app developer's responsible to fix it - of course not. But
the fact that Android is what it is should not be ignored in the decision
about an app that is developed for Android.
(...)
Don't tell me they SHOULD to do this only because of your app.
Well you have a choice: Either not use the app, update your device or buy a
new one which is up-to-date and supported. I never said that i force the
user to buy a new one.
But then again you cannot simply update, see above. Thus you are softly
forcing people like @Psycho-A to buy a new device, as one more app won't
work for their old ones.
Old devices are quite good...
Old devices may be quite good as long as they have up-to-date software or
are completely offline. Example: Your 10 year old wallet usually doesn't
steal your credit card information, but your 10 year old unpatched phone
might allow this to happen.
Unless you don't have it on that phone. I have a very old phone, which I
use only as a podcast player for my son. It's great for just that. No need
for credit card info or any other sensitive information.
(...)
I am definitely not opposed to dropping support for old APIs if it is
burdening developers and slowing down progress or impacting the security of
the app as stated by @opusforlife2. But there is a real cost to it to some
users and that shouldn't be dismissed with hand-waving arguments.
I am not sure if this is an option, but I guess the most important changes
to keep NewPipe alive for older phones would be that updates in the
NewPipeExtractor are still usable with the old NewPipe version. Would it be
feasible to keep the Extractor backwards-compatible, so the last Android
4.4 NewPipe version can be built with the latest Extractor?
By the way, awesome app, love using it (on Android 7.1), thanks to the devs!
—
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
@felixendres Someone from the community will need to volunteer to keep the Newpipe legacy code updated so that it keeps working with every new version of the Extractor. Some Extractor changes don't require any corresponding change in Newpipe, but some do. |
I'm done with discussing here because the points WHY we drop support have been clearly stated above, I don't see any further benefit and this would go on forever. Btw about "Security"
Some people - maybe also device manufacturers - will learn what security means in hard ways. https://en.wikipedia.org/wiki/SQL_Slammer
https://en.wikipedia.org/wiki/WannaCry_ransomware_attack
|
Greetings, all of you. It seems that once again, an Android API version deprecation post has created a firestorm thread over compatibility versus modernizing and streamlining, much as it did when I previously vouched for it in #1871 and #2259 . This is to be expected, but oh well. To answer Opusforlife's initial question about if there is some glaring security issue with Android 5, 5.1, and 6 that may warrant deprecation of those API levels, there may be one depending on if and how exactly Android's SSLSocket class is implemented. According to https://developer.android.com/reference/javax/net/ssl/SSLSocket , in Android 6.0 Marshmallow (API Level 23), a multitude of available ciphers that were deemed old, weak, broken, or otherwise insecure and unneeded were deprecated. Now, this may not affect the app's exposure of said ciphers to newer devices considering both Google and Youtube never use them alongside most other sites, but on older devices, these ciphers are exposed and can be negotiated should the site support it. Most of them have de facto deprecation in Chromium and in the site backend, but it may be wise to harden the app a bit more by removing all ability for it to even consider using such ciphers, at the cost of dropping more OS versions in compatibility. Regards for the time being. |
There is also one other incentive to deprecate that is much more pertinent to the average end user of NewPipe. F-Droid itself has ended support for a number of legacy Android versions as of version 1.13, with 1.13.1 and currently 1.14 ensuring that those users will never receive updates to the source app store NewPipe is hosted on now. F-Droid currently has a minSDK version of Android 5.1 Lollipop, API Level 22. As most devices that could have updated to 5.1 Lollipop bar a few—Tesco Hudl 2 tablets are one I can think of off the top of my head, but those are Intel Atom devices, so not very well supported anyway—were able to update to Android 6.0 and API Level 23, it may be realistic to move up to that version here. |
Hang on a second. While I can understand Spotify being supported due to one of its versions having a vague Android version support listing in its play.google.com entry, Firefox is listed as requiring Android 5.0 and up. When was the last time you updated Firefox from the Play Store, and for that matter, are you sure it is not updated to a newer Android version? The Sony Xperia Z3 Compact had support for up to Android 6.0 with the stock OEM devices. |
I have read this thread over numerous times, and I would like to give my interpretation on this matter. I don't mean to state this interpretation as fact, this is just what I personally see. While @litetex was at times a bit blunt / abrasive with his explanations for dropping support, his reasoning is absolutely spot on. So is @TheAssassin. There seems to be a certain attitude with some of the people demanding continued support that we owe it to them to continue doing so. Of course, we've inevitably seen this before. What I think those people fail to recognize is that when we see such statements as
I feel it really "hand-waves" just how much extra bend-over-backwards effort the NewPipe team has exerted over the years to be able to maintain outdated OS version support in spite of painful amounts of troubleshooting and stupid platform bugs that had been fixed long ago in newer Android versions. While it certainly comes across as scathing, please remember that the NewPipe team doesn't owe you anything. Even if I weren't on the NewPipe team, I would still hold this stance. NewPipe is not managed by a company. We do not make profit from this project. We are not financially bound to providing a service to paying customers (like Spotify is, for example). There are no shareholders to please. This project is maintained entirely by people volunteering their spare time. Indeed, everyone that contributes to this app does so in a community-driven effort to improve it in some manner, purely because they wish to do so. Dropping support has never been (as far as I'm aware) something that was taken lightly. Anyone familiar with the history of Android development likely knows that Android Lollipop was one of the biggest upgrades - both inside and out - that Android has ever gotten. Consequently, making it our new minimum comes with quite a few internal design benefits for NewPipe as well. And of course, there's also the multiple points that @litetex brought up in the thread with OkHttp and whatnot. I'd like to address a few points.
Unfortunately, OEMs do. Google, AOSP's primary developer, thinks so as well. Trust me, I very much wish that Google didn't think Android needed to have a new major release every year. I wish they would slow down a little and realize that they don't need to move so fast to keep Android relevant, that they don't need to make change for the sake of change. But that's not the world we live in.
We are not forcing anyone to upgrade to newer Android devices. They are free to continue using outdated devices if they so please, just as we are free to drop support for said devices.
Why HootanParsa (for example) decides to continue support for low APIs like 8 for MiXplorer, I have no clue. More power to them. But we are not HootanParsa, nor are we any other developer that chooses to support low Android versions. Like @TheAssassin said, we do not need to care about what developers of unrelated projects have decided to do. This decision simply comes from the team's collective agreement (and cost-benefit analysis) that continued support is no longer worth the cost, both mentally and time-wise. Yes, for those of you where it's literally financially unfeasible, it sucks that NewPipe will no longer support your device. It sucks that you're economically unable to upgrade the device you have to something newer. I think I can speak for the whole team when I say that we sincerely hope that one day you're able to do so. However, no, developers (and likewise for any other app of this caliber) are not obligated to spend many additional man-hours trying to work around bugs to continue to support a now insecure OS version so very few people use anymore. The beauty of open-source is that you have the ability to fork and forge your own path, and that can include continuing support for outdated OS versions that were dropped from upstream. I'm sure there's someone out there willing to do so, but we as a team have decided we won't. That's all I really have to say. Thank you all for your input. |
At this point, I would simply choose to get on with it and push the pull request to a new release version. Perhaps a version 22.0 or something. After that, see how many actually proceed to complain about it on Github or other circles, rather than in advance of it. |
READ THIS FIRST
Checklist
What feature do you want?
Set the required Android version to 5 aka Android API 21 aka Android "Lollipop" or higher.
When creating a new project Android Studio currently recommends Android 6 / API 23.
I personally would drop support for everything that doesn't runs Android 7 / API 24, because nearly 90% (← keep in mind that this number will only increase) of all devices run Android 7+.
Btw: I think it would also be nice to declare/state somewhere that phones - which are using a newer Android version than provided by the original manufacturer - are not (officially) supported by us.
Example: The OnePlus One was originally updateable to Android 6 until the manufacturer dropped support for this phone. However if a user now installs a Custom ROM e.g. Android 11 and nothing works because the Hardware doesn't support some features which NewPipe (or ExoPlayer) requires and opens issues we are off the hook.
Why do you want this feature?
Some examples:
NewPipe/app/src/main/java/org/schabi/newpipe/MainActivity.java
Lines 134 to 137 in ee19ea6
Call requires API level X (current min is 19): ...
-warningsExoPlayer asOkHttp2.15+
requires Android API 21+NewPipe/app/build.gradle
Lines 233 to 234 in ee19ea6
For comparison: Android <4.4 support drop issue
The text was updated successfully, but these errors were encountered: