Closed litetex closed 2 years ago
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'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: Sources:
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://www.statista.com/statistics/921152/mobile-android-version-share-worldwide/ 5.x: 3% 6: 4.6%
https://gs.statcounter.com/os-version-market-share/android/mobile-tablet/worldwide 5.1: 2% 6: 3%
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 I created a (draft) PR that set's the minimal required Android version to Android 5. You may check it out :)
There are still enough Android 4.4 devices with quite sufficient performance to run NewPipe flawlessly ...
Where do you have this information from?
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.
Yes. These few devices run a nearly 9 year old OS which didn't get patches for >4 years. Don't tell me that they had not enough time to update or buy a new device.
There are still apps that support Android 2.2+ so why drop 4.4.
Also showing warnings for custom ROM users might upset them, they will already have understood the risks when flashing.
Our bugtracker tells other stories #7599
@mhmdanas @opusforlife2 I created a (draft) PR that set's the minimal required Android version to Android 5. You may check it out :)
There are still enough Android 4.4 devices with quite sufficient performance to run NewPipe flawlessly ...
Where do you have this information from? I own a few
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.
Yes. These few devices run a nearly 9 year old OS which didn't get patches for >4 years. Don't tell me that they had not enough time to update or buy a new device.
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.
There are still apps that support Android 2.2+ so why drop 4.4.
- Do these apps have the same features as our app? Following apps: Setedit SDK11 Airtime rewards SDK16 Anydesk SDK19 BinaryEye SDK level 9! Clicksnap SDK 16. They are a variety of apps.
- Read what I have written above
Also showing warnings for custom ROM users might upset them, they will already have understood the risks when flashing.
Our bugtracker tells other stories #7599
Don't tell me that they had not enough time to update or buy a new device.
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.
Where do you have this information from?
I own a few
I'm pretty sure that this is not representative.
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. 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. 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.
- Do these apps have the same features as our app?
Following apps: ...
These apps are not based around streaming like NewPipe is and therefore not very much comparable. It's like saying "The calculator app works on all Android versions why doesn't NewPipe" well because NewPipe has to do some remote communication with e.g. YT servers and is a bit more complex than a calculator app.
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.
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.
Sony Z3 Compact
According to GSMArena this is upgradeable to Android 6 so I see no problem here in the first place.
Don't tell me this is "ancient" stuff if it does all what's required from.
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.
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
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. As soon as, you in the future, demand Android 9+, one basically commands that everyone uses a 5-inch+ device, most devices that still allowed to be put snugly into ones pants (≤ 5-inch devices) were created and shipped with up to Android 6 and upgradable to max. Android 8.0... (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...)
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/:
The OkHttp 3.12.x branch supports Android 2.3+ (API level 9+) and Java 7+. These platforms lack support for TLS 1.2 and should not be used. But because upgrading is difficult, we will backport critical fixes to the 3.12.x branch through December 31, 2021.
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".
RedReader connects to the internet as a Reddit client and has an API min of 16.
@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.
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!
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: @.***>
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?
@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.
@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).
....
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. 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).
Where do you have this information from?
...
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.
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 https://github.com/TeamNewPipe/NewPipe/issues/1871 and https://github.com/TeamNewPipe/NewPipe/issues/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. ——— As for the idea of setting the minSDK version to Android 7.0 Nougat (API Level 24), among other changes, one of its most defining ones is the formal deprecation of the Apache Harmony library in favor of an OpenJDK implementation. This is also a fundamental change, but could be held off on for now.
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.
Don't tell me that they had not enough time to update or buy a new device.
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.
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
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.
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.
Not everyone thinks from the position of mindless consumerism with an endless change of devices or clothes, even if they CAN do it.
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.
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.
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.
There are still apps that support Android 2.2+ so why drop 4.4.
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.
Android 5.1.1 Newpipe user here. Due to circumstances I will not go into, my self and a small community users (about 500) are stuck with a5.1.1 devices with no foreseeable upgrade forthcoming. Newpipe is the only youtube client that works on our devices that I can find. Newpipe has become an important tool on these devices that would be sad to lose. My two cents from a user perspective. Thanks for the all hard work keeping this project going.
This would be perfect to run on the old Electronic Objects Picture Frames E01 and E02 and they run 4.4 I am not saying to necro an old thread but there are plenty of old devices with life that will go to e-waste with this mindset.
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?
Call requires API level X (current min is 19): ...
-warnings2.15+
requires Android API 21+~ OkHttp https://github.com/TeamNewPipe/NewPipe/blob/ee19ea66b3f4f182f78634c2d791dab6cab77257/app/build.gradle#L233-L234For comparison: Android <4.4 support drop issue