Why wouldn't Project Treble work on Android phones that weren't originally shipped with Oreo once updated to 8.0?


Question

I saw a couple of references discussing Project Treble which all seem to agree that only phones which ship with Android 8.0 "Oreo" would be able to take advantage of Project Treble. The ones that did not won't be able to - not even when the non-8-shipping phones are themselves upgraded to Oreo.


Why is that the case for phones that will get Oreo 8 upgrades?


What's missing from those phones that the Oreo updates for them wouldn't support Project Treble? I was under impression that it was purely a software architecture, not some dedicated hardware.


In other words, why wouldn't releasing Oreo based firmware for the phone automatically make it into a Treble phone?



The Pixel and Pixel XL are the only existing phones that will be able to use Project Treble's features, but phones shipping with Android 8.0 or later will have full access. We hope they take advantage of it! (AndroidCentral)


Oxygen OS on the OnePlus 3 and OnePlus 3T was upgraded to Android 8.0 Oreo the other day, and both the OnePlus 5 and OnePlus 5T are due for an update in early 2018. That’s mostly good news, but sadly, none of OnePlus’s phones will support one of Oreo’s headlining features: Project Treble. In an AMA on the OnePlus forums, OnePlus confirmed that the OnePlus 3, OnePlus 3T, OnePlus 5 and OnePlus 5T won’t get Project Treble support (XDA)



Answer

Yes, project treble is a software architecture update but there are few things to consider.



Q. What is the real reason for Android fragmentation?



A. One word answer is silicon vendor's kernel source.



They start developing the hardware almost 2 years before the commercial launch so the source is based on an Old Linux kernel version. As the silicon company is interested in developing new chips instead of supporting 2-year-old chips, they do not update the source for new Android release. Hence no device OEM can update it to the new version.



Google has done many efforts to resolve this issue. One is extended long-term support releases of Linux kernel (6 years instead of 2). Another effort is to provide silicon manufacturers a Vendor Test Suite (VTS) similar to CTS(Compatibility Test Suite). Now silicon vendors only have to develop source once which is compatible with VTS guidelines and Google will ensure that it will work with further updates. So vendors will not update previous chips according to VTS but upcoming all of the chips will be treble supported (hopefully).



So fragmentation is solved this way?



Wrong. Because this is only one of the cause of fragmentation. There is one more that is modifications done by device OEM and carriers. Treble is not a solution for these problems. The only solution is to stick to a pure stock android but no OEM is doing so. OEMs are not interested in porting their changes to every device because it needs a lot of work so they only work for their flagship devices. In the case of one plus, Snapdragon 835 is treble supported but I think they lack the workforce to port oxygen OS to next releases for old devices.



In a nutshell, Google has done the part to fight fragmentation now it depends on device OEMS.



I hope the answer helps.



EDIT(One Plus):



For One Plus refer this post




However, because partitions were not required of Android N and previous versions of Android, all of our current devices do not feature a partition. According to our tests, if we were to modify the partition layout via OTA there is a risk that devices will brick during the partitioning.




In a nutshell, The main problem for one plus is that project treble requires different partitions for modularity of OS which was not the case before Oreo. As One Plus 5 as well as 5T were originally shipped with Nougat, they are not partitioned according to treble. Partitioning via OTA update can brick the device so they are not doing it.



Normal users want all the apps and data saved while updating which is very risky while partitioning via incremental update. You can do it with clean wipe but no OEM will do this as average user does not want treble at the expense of losing all the saved apps and data.



TL;DR



Phones shipped with nougat has only one partition i.e. system but for treble, vendor partition must be different from system and partitioning from ota update is not a good idea for companies.


Topics


2D Engines   3D Engines   9-Patch   Action Bars   Activities   ADB   Advertisements   Analytics   Animations   ANR   AOP   API   APK   APT   Architecture   Audio   Autocomplete   Background Processing   Backward Compatibility   Badges   Bar Codes   Benchmarking   Bitmaps   Bluetooth   Blur Effects   Bread Crumbs   BRMS   Browser Extensions   Build Systems   Bundles   Buttons   Caching   Camera   Canvas   Cards   Carousels   Changelog   Checkboxes   Cloud Storages   Color Analysis   Color Pickers   Colors   Comet/Push   Compass Sensors   Conferences   Content Providers   Continuous Integration   Crash Reports   Credit Cards   Credits   CSV   Curl/Flip   Data Binding   Data Generators   Data Structures   Database   Database Browsers   Date &   Debugging   Decompilers   Deep Links   Dependency Injections   Design   Design Patterns   Dex   Dialogs   Distributed Computing   Distribution Platforms   Download Managers   Drawables   Emoji   Emulators   EPUB   Equalizers &   Event Buses   Exception Handling   Face Recognition   Feedback &   File System   File/Directory   Fingerprint   Floating Action   Fonts   Forms   Fragments   FRP   FSM   Functional Programming   Gamepads   Games   Geocaching   Gestures   GIF   Glow Pad   Gradle Plugins   Graphics   Grid Views   Highlighting   HTML   HTTP Mocking   Icons   IDE   IDE Plugins   Image Croppers   Image Loaders   Image Pickers   Image Processing   Image Views   Instrumentation   Intents   Job Schedulers   JSON   Keyboard   Kotlin   Layouts   Library Demos   List View   List Views   Localization   Location   Lock Patterns   Logcat   Logging   Mails   Maps   Markdown   Mathematics   Maven Plugins   MBaaS   Media   Menus   Messaging   MIME   Mobile Web   Native Image   Navigation   NDK   Networking   NFC   NoSQL   Number Pickers   OAuth   Object Mocking   OCR Engines   OpenGL   ORM   Other Pickers   Parallax List   Parcelables   Particle Systems   Password Inputs   PDF   Permissions   Physics Engines   Platforms   Plugin Frameworks   Preferences   Progress Indicators   ProGuard   Properties   Protocol Buffer   Pull To   Purchases   Push/Pull   QR Codes   Quick Return   Radio Buttons   Range Bars   Ratings   Recycler Views   Resources   REST   Ripple Effects   RSS   Screenshots   Scripting   Scroll Views   SDK   Search Inputs   Security   Sensors   Services   Showcase Views   Signatures   Sliding Panels   Snackbars   SOAP   Social Networks   Spannable   Spinners   Splash Screens   SSH   Static Analysis   Status Bars   Styling   SVG   System   Tags   Task Managers   TDD &   Template Engines   Testing   Testing Tools   Text Formatting   Text Views   Text Watchers   Text-to   Toasts   Toolkits For   Tools   Tooltips   Trainings   TV   Twitter   Updaters   USB   User Stories   Utils   Validation   Video   View Adapters   View Pagers   Views   Watch Face   Wearable Data   Wearables   Weather   Web Tools   Web Views   WebRTC   WebSockets   Wheel Widgets   Wi-Fi   Widgets   Windows   Wizards   XML   XMPP   YAML   ZIP Codes