Comments (7)
I experimented with the 6 series a while back and the file structure wasn't exact and I didn't have a 6/6T to work with, that's why I did a filter to explicitly reject it.
Is your 6T a daily driver, or something you'd be able to experiment with?
from firmware_oneplus.
It is may daily drive, But i need to update the firmware before the next upgrade.
So i would have some testing time. Otherwise i will not get any updates, but that is why i use LinageOS :-)
So with what can i start?
from firmware_oneplus.
It is very risky messing with a daily driver, but if it's important to you, here's a breakdown of how this works. If you are able to get this going without bricking your device, please submit a pull request!
- Grab a 3/5/5T download to browse with so you get a feel of the directory hierarchy of the script, first.
- This is originally extracted from official Oneplus zips (
META-INF/com/google/android/updater-script
) - though modified, so you aren't simply flashing Oxygen and only taking on the bits you need.
- The files we need (modem/firmware components) are all laid out in the Updater script referenced above. Note their paths in the updater script and the extract script.
- Now, take a look at the extract script
- First problem, the version check:
if [ "$(grep "\"OnePlus $VERSION\"" -R tmp/META-INF/com/google/android/ | wc -l)" == '0' ];
--META-INF/com/google/android/
does not exist in the Oneplus 6T OxygenOS zip. We could do a condition, though (if 6T was entered), to peek atMETA-INF/com/android/metadata
to grab the pre-device variable. So that's not necessarily a problem. - Next up:
unzip -q "$OXYGEN_PATH" firmware-update/* -d "tmp/"
unzip -jq "$OXYGEN_PATH" RADIO/* -d "tmp/firmware-update/"
RADIO/
doesn't exist in 6Tfirmware-update/
doesn't exist in 6T
So I'm not actually sure where the update is, it might be in a giant binary blob (presumably payload.bin?) which complicates extracting only the firmware & modems.
Another thing that throws me off (from official Lineage instructions):
In some cases slot b can be unpopulated or contain much older firmware than slot a, leading to various issues including a potential hard-brick. We can ensure none of that will happen by copying the contents of slot a to slot b.
6T is an A/B device, so that adds another layer of complexity.
I saw this posted on XDA, I'm not sure if it's using the same logic to extract or not, but it's worth a shot, too: https://f-droid.org/en/packages/fr.witchdoctors.c4ffein.oosfirmwareextractor/
from firmware_oneplus.
Ok, thanks, will have a look, bit bricking the device would not be that good.
from firmware_oneplus.
I have the same problem with my new Oneplus Nord. The firmware is like for the 6T a big payload.bin file. But this is no problem, you can slice it into the partition files with https://github.com/vm03/payload_dumper.git
But now you have a lot more partition files than I had on the OnePlus 5. I divided the files by name into 3 groups:
- files which come from LineageOS, so presumable not to flash:
boot.img
dtbo.img
odm.img
product.img
recovery.img
system.img
vbmeta.img
vbmeta_system.img
vendor.img
- Files known from OnePlus 5:
abl.img
devcfg.img
hyp.img
keymaster.img
logo.img
tz.img
xbl.img
- Files I don't know if needed to flash, but at least a few for sure, iike bluetooth or dsp
aop.img
bluetooth.img
dsp.img
featenabler.img
imagefv.img
modem.img
oem_stanvbk.img
qupfw.img
reserve.img
storsec.img
system_ext.img
uefisecapp.img
xbl_config.img
But then there is the other problem with A/B parts of the firmware. Does anybody know more how we can make a working firmware updater? I already asked at XDA: https://forum.xda-developers.com/t/rom-official-lineageos-17-1-oneplus-nord-avicii.4185373/page-12#post-84714269 but until now nobody answered.
Best
Tim
from firmware_oneplus.
Oneplus seem to be coming out with new phones every month!!
I don't have any of the new models to test with, but for most .img files, you can mount and browse it's contents:
If you're able to find the modem and radio files, someone willing to test with their device could give it a go and see if this script could work on the newer models with a few modifications.
from firmware_oneplus.
I assume by now you guys have found solutions, but referencing this in case not.
Payload dumper go might work if your firmwares are bundled in payloads.
from firmware_oneplus.
Related Issues (3)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from firmware_oneplus.