Comments (2)
from platform-quectel.
Apparently it is EC20 as reverse engineered here:
https://penthertz.com/blog/mobile-iot-modules-FOTA-backdooring-at-scale.html
and described here: https://osmocom.org/projects/quectel-modems/wiki/EC20_DFOTA
But you are supposed use the DFOTA diff generation service. See Quectel_BC66&BC66-NA-OpenCPU_DFOTA_Tool_User_Guide_V1.0.pdf
This is a webservice which creates the delta for your APP update.
Haven't checked Georgi's bc66.py
makeFota()
functionality yet. Looks simple enough though.
def makeFotaInfo(dst, offset, start, size):
dst.write( struct.pack('<i', offset) ) # m_bin_offset
dst.write( struct.pack('<i', 0x08292000) ) # m_bin_start_addr
dst.write( struct.pack('<i', size) ) # m_bin_length
dst.write( struct.pack('<i', 0x000BF000) ) # m_partition_length
dst.write( struct.pack('<i', 0x00000000) ) # m_sig_offset
dst.write( struct.pack('<i', 0x00000000) ) # m_sig_length
dst.write( struct.pack('<i', 0x00000000) ) # m_is_compressed
for i in range(16):
dst.write( struct.pack('<i', i) ) # m_version_info[16]
dst.write( struct.pack('<i', 0x00000000) ) # m_bin_type
dst.write( struct.pack('<i', 0x00000000) ) # m_bin_reserved[4]
def makeFota(src):
print( "FOTA SRC:", src )
#print( "FOTA DIR:", os.path.dirname(src) )
binfile = "FOTA_" + os.path.basename(src)
print( "FOTA BIN:", binfile )
print( "FOTA SIZ:", os.path.getsize(src) )
binSize = os.path.getsize(src)
dst = open(os.path.dirname(src) + "/" + binfile, "wb")
arr = [0x4D,0x4D,0x4D,0x00, 0x01,0x00,0x00,0x00,] # m_magic_ver, m_bin_num, m_bin_info[4]
data = bytearray(arr)
dst.write(data)
makeFotaInfo(dst, 0x6C, 0x08292000, binSize)
bin = open(src, "rb")
dst.write( bin.read() )
bin.close()
dst.close()
from platform-quectel.
Related Issues (20)
- EC21 OpenLinux Build Error HOT 2
- ADB HOT 4
- Issue in advanced platform installation HOT 4
- f HOT 1
- Debug Output HOT 24
- How far off is a BG77 framework? HOT 4
- BG95 compilation error HOT 8
- MC60 upload error HOT 13
- EG95-E Support HOT 1
- Run framework on M26 HOT 4
- platformio VScode quectel MC60 upload error HOT 2
- BC66-NA Cyclic reboot HOT 1
- Arduino MC60 status HOT 1
- support for EC200U
- Could not install platform HOT 1
- QuecOpen support HOT 1
- BG77 SPI with EVB (Evaluation Board) HOT 2
- manifest.json unavailable HOT 1
- Error installing in PlatformIO HOT 2
- Quectel BG95, flashing code directly? HOT 2
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 platform-quectel.