Releases: the-modem-distro/pinephone_modem_sdk
0.8.0 - Did you miss me?
CHANGELOG: 0.8.0
So... it's been a while. Sorry for that.
A couple of bug fixes since 0.7.4 to deal with Quectel, and updates to Yocto
New:
- Don't enable stuck SMS recovery with oFono
- Support for 20X branch of Quectel's firmware
- Update to Yocto 5
Compatibility:
- Pinephone
- Pinephone Pro
- Quectel EG25 based MiniPCIe cards (make sure you enable USB audio if you want to make a call) (Only for the 256MB version!)
Known issues
- SMS Timestamps will be wrong if the modem can't manage to sync the date from the carrier. If this happens all messages will have a date of 2022-01-01 (+- timezone offset)
- You tell me!
NOTES:
- Make sure to check out the Recommended settings to get the best experience
SHA512 Sum of the package file
SHA512: 2727d8d4c6847675a55517bfff681f41ac317ffa835b4220272afaf85b10a7767002cc3221061ecf36b0d3f48de08edae5a437b487fc0c5badc2912b8b38c629 package.tar.gz
Inside the compressed tar file there's a file containing the SHA sums for the files in it.
Installation instructions:
- Get required tools: you need adb and fastboot
- Run the
flashall
script bundled in the package as root. If something fails, flash manually
After you flashed everything, the modem should come back automatically after 14-18 seconds.
If you want to go back to stock, check the recovery repo
WARNING: Make sure you have a recent enough baseband version before installing the firmware, or some things won't work as expected. You can check your current ADSP firmware by sending the command AT+QGMR
when running stock, or AT+GETADSPVER
when using this firmware. Below you can find the latest ADSP firmware blobs we have found (all of them will work):
ADSP Firmware:
Depending on your carrier, some firmware versions will work better than others. You can check your current ADSP firmware version by sending the "AT+QGMR" AT command. If in doubt, version 01.002.01.002 is the default if you used the recovery repo. I've been using version 003 for months without issues (and improvements in data handling) but some users have reported problems making VoLTE calls with it, so pick whatever works best for you (or don't change it at all if it worked fine before)
- ADSP Version 01.002.01.002
- ADSP Version 01.003.01.003
- ADSP Version 30.004.30.004
- ADSP Version 30.006.30.006
- ADSP Version 30.007.30.007
- ADSP Version EG25GGBR07A08M2G_30.200.30.200
- ADSP Version EG25GGBR07A08M2G_30.202.30.202
Flashing it:
- Open a root terminal and run:
echo -ne "AT+QFASTBOOT\r" > /dev/ttyUSB2
to enter fastboot mode - Run
fastboot flash modem NON-HLOS.ubi && fastboot reboot
Something went wrong?
Feel free to check the troubleshooting section. If you don't manage to fix it, feel free to open an issue and I'll do my best to help you out
This release is a flashable package based on the following repos:
- LK2nd fork: https://github.com/Biktorgj/lk2nd/tree/quectel-eg25-timer
- Linux 3.18.140 Kernel: https://github.com/Biktorgj/quectel_eg25_kernel
- Forked meta-qcom layer: https://github.com/Biktorgj/meta-qcom/
- Yocto 4 based rootfs and recovery (https://www.yoctoproject.org/)
Have fun and stay safe everyone
0.7.4: Dirty Patching (let's try again...)
CHANGELOG: 0.7.4
Big, enormous thank you to all the people who participate in the development of this firmware, be it by contributing with code, documentation, donations or testing and reporting issues, this firmware gets better on each release thanks to your help and feedback!
Just a small bug fix release over 0.7.3 to remove the annoying SMS on boot and fix the help command (sorry for that!)
New:
- Allow QMI message debugging of specific services via chat (for some service, command names too)
- QMI message debugging now splits the message in parts for easier reading (somewhat similar to ModemManager)
- OpenQTI now has its own small internal QMI client to be able to do a bunch of cool things instead of sniffing through the usb port
- Internal WDS (Wireless Data Service) Client (in BETA!, expect problems)
- NOTE: This function may waste more battery
- Allows you to connect to the internet directly from the modem's userspace (only IPv4 for now, sorry!)
- Allows for always on networking in the modem no matter if your PinePhone is sleeping
- Allows for routed networking + firewall in the modem itself
- Control this feature with the chat (functionality, apn, username, password and auth mode):
enable internal net
: Enables internal networking support (reboot required)disable internal net
: Disables internal networking support (reboot required)ifup
: When internal networking is enabled, this will attempt to connect a data sessionifdown
: Will shutdown an active data sessionset internal network apn APN_NAME
: Configures the APNset internal network apn user USERNAME
: If the APN requires authenticationset internal network apn pass PASSWORD
: If the APN requires authenticationset internal network apn auth method [none|pap|chap|auto]
: If the APN requires authentication
- Be ready to fight your network connections on the Pinephone, as the host is probably not ready to have another network active
- Depending on your carrier, you might get away with having two simultaenous connections, one directly at the usb port managed through ModemManager, and another one from the modem itself. If it doesn't work (which was my case with both my carriers) try disabling networking in Phosh/ModemManager and try again
- Internal NAS (Network Access Service) Client
- Replaces the old and buggy network tracking code
- Support for tracking current and past connected cell IDs, location areas
- Supports OpenCellid Database integration
- Support for automatic baseband emergency shut down if the modem connects to an unknown cell ID or if the Cell ID doesn't match the expected Location Area Code (it will literally kill itself and will need a reboot to make it work again)*
- Support for exporting of all the available information about the network as CSV files
- Service capability change tracking (i.e. service downgrade from LTE to GSM)
- Choose what you want to know: Every cell change? Every new cell the modem connects to? Only when service is downgraded? Nothing except if the modem is going to shut down? Use the chat to configure it to your needs
- If your life depends on a feature like this, you're still safer not using a phone. It's not perfect and it will still need more work before it is reliable
- Chat controls:
enable tracking
: Turns the feature ondisable tracking
: Turns the feature offsignal tracking mode [0-3]
: 0: Standalone learning, 1: Standalone strict (auto poweroff), 2:Opencellid+standalone learning, 3:Opencellid+standalone strict (auto poweroff if cell is not in opencellid and wasn't previously connected)signal tracking cell notifications [none|new|all]
: Configure when to receive SMS notifications: Never, only when connected to previously unknown cells or everytime you change cells (will drain your battery faster because it will be waking up the Pinephone a lot)enable network downgrade notification
: Will send a SMS if the network goes from a service type to a lower one (i.e. LTE to WCDMA, or LTE to GSM, or WCDMA to GSM)disable network downgrade notification
: Will stop downgrade notification messages- If signal tracking is enabled, you will still receive a message when there's a capability change (For example, Call service is detached, data service is detached/reattached, or there's a change in the supported network types)
- Internal Voice Service client (not really used yet, we'll leave that one out for this version)
- Internal DMS (Device Management Service) client:
- Automatically retrieves firmware info and device status from the modem
- Controls SIM unlocking state to defer other service startup (time, network tracking, scheduler)
- Scheduler now periodically checks for available space and automatically cleans up if space is critically low (for those of you running the modem in debug mode all the time with persist disabled, this should prevent it from crashing due to no free RAM)
- Configuration support for the List All Messages bypass in ModemManager (stuck message recovery on boot)
- Added to recipes, but disabled from this build: Speech to text support. It doesn't really work that well and would only be useful for english speakers, but you can build it by setting some flags. Allows to automatically generate transcripts from recordings
- Updated Yocto to 4.0.8
- Want to run something at boot? Create a script called
.autostart
in/persist
, and it will run from init in next boot! - Find the easter egg :P
Fixes:
- Clear DND task after it has run
- Clear force-notify task after it has run
- Fixes mem leaks from unfreed buffers in different parts of openqti
- Internal call now sets the cpu to performance mode so TTS engine isn't slow as a dog converting text to speech, goes back to powersave on hangup
- Automatic fallback if user data partition doesn't exist (for modems without a user data partition)
- Automatic search of the modem partition in case the bootloader doesn't provide one
- Fix openqti crash when a 159 character message ended up overflowing when converted to GSM7 due to special characters
- 'help' command is now sorted by category instead of list order
- Fix modem not waking up the host correctly to a fake message
(*) OpenCellid: New signal tracking functionality has 5 operating modes:
- Off
- Learning mode using only the data it can gather from the network itself
- Strict mode using the data it collected in previous mode
- Learning mode using the data it can get from the network + the OpenCellid database
- Strict mode using only the previously collected data and the OpenCellid database.
When running in strict mode, the baseband will kill itself as soon as it connects to an unknown cell id, so don't shoot yourself in the foot. If you aren't going to automate opencellid database uploading, start by setting it to learning mode, so the modem builds a cache of known cells around your area, before setting it to strict mode. Once the baseband is killed, the only thing that will still work is ADB access until a reboot, so it will make it hard for you to change the settings back (unless you wipe the config file via adb (adb shell rm /persist/openqti.conf
)
LIMITATIONS:
- You need ADB enabled so you can upload database files to the modem
- Due to the polling interval, the modem may stay connected up to 20 seconds to the network before being cut off
- When in strict mode, if the modem connects to a cell it doesn't know about it will send you a message, wait 10 seconds to allow the host to get that message, and then it will stop the baseband firmware entirely. The userspace will stay running in case you want to retrieve some logs from it, but after that you'll have to reboot the modem via adb or the kill switch & EG25-Manager
- Since the OpenCellid database takes 4Gb uncompressed, I've set up a small page you can use to get the relevant data for your carrier. Please check here for a sample script you can automate. If you want to host your own database, I've set up a small repo with the tools you'll need
Compatibility:
- Pinephone
- Pinephone Pro
- Quectel EG25 based MiniPCIe cards (make sure you enable USB audio if you want to make a call)
- (With some help) Simcom SIM7600 (you'll have to use USB audio, and it will think it's a Quectel afterwards :))
Known issues
- SMS Timestamps will be wrong if the modem can't manage to sync the date from the carrier. If this happens all messages will have a date of 2022-01-01 (+- timezone offset)
- You tell me!
NOTES:
- Make sure to check out the Recommended settings to get the best experience
SHA512 Sum of the package file
SHA512: 60c2e66732d25c7e996b78cc67e65a157b6c0f1c8ed789f00aaceaf21631884ae483b5ee1e287801c683ffc87c978541f5634bcfae006dc49427186993911240 package.tar.gz
Inside the compressed tar file there's a file containing the SHA sums for the files in it.
Installation instructions:
- Get required tools: you need adb and fastboot
- Run the
flashall
script bundled in the package as root. If something fails, flash manually
After you flashed everything, the modem should come back automatically after 14-18 seconds.
If you want to go back to stock, check the recovery repo
WARNING: Make sure you have a recent enough baseband version before installing the firmware, or some things won't work as expected. You can check y...
0.7.3: Define dancing (Testing!)
Please update directly to 0.7.4
CHANGELOG: 0.7.3
Could have also be called Snitches get stitches, or I rather shut myself down than touch your dirty network but Define Dancing made sense too ;)
Big, enormous thank you to all the people who participate in the development of this firmware, be it by contributing with code, documentation, donations or testing and reporting issues, this firmware gets better on each release thanks to your help and feedback!
Probably the biggest release so far... so even if I always try my best to get it all working there could (and probably will) be some issues in new features, so let's call this a 'testing' release. If you face issues please let me know
New:
- Allow QMI message debugging of specific services via chat (for some service, command names too)
- QMI message debugging now splits the message in parts for easier reading (somewhat similar to ModemManager)
- OpenQTI now has its own small internal QMI client to be able to do a bunch of cool things instead of sniffing through the usb port
- Internal WDS (Wireless Data Service) Client (in BETA!, expect problems)
- NOTE: This function may waste more battery
- Allows you to connect to the internet directly from the modem's userspace (only IPv4 for now, sorry!)
- Allows for always on networking in the modem no matter if your PinePhone is sleeping
- Allows for routed networking + firewall in the modem itself
- Control this feature with the chat (functionality, apn, username, password and auth mode):
enable internal net
: Enables internal networking support (reboot required)disable internal net
: Disables internal networking support (reboot required)ifup
: When internal networking is enabled, this will attempt to connect a data sessionifdown
: Will shutdown an active data sessionset internal network apn APN_NAME
: Configures the APNset internal network apn user USERNAME
: If the APN requires authenticationset internal network apn pass PASSWORD
: If the APN requires authenticationset internal network apn auth method [none|pap|chap|auto]
: If the APN requires authentication
- Be ready to fight your network connections on the Pinephone, as the host is probably not ready to have another network active
- Depending on your carrier, you might get away with having two simultaenous connections, one directly at the usb port managed through ModemManager, and another one from the modem itself. If it doesn't work (which was my case with both my carriers) try disabling networking in Phosh/ModemManager and try again
- Internal NAS (Network Access Service) Client
- Replaces the old and buggy network tracking code
- Support for tracking current and past connected cell IDs, location areas
- Supports OpenCellid Database integration
- Support for automatic baseband emergency shut down if the modem connects to an unknown cell ID or if the Cell ID doesn't match the expected Location Area Code (it will literally kill itself and will need a reboot to make it work again)*
- Support for exporting of all the available information about the network as CSV files
- Service capability change tracking (i.e. service downgrade from LTE to GSM)
- Choose what you want to know: Every cell change? Every new cell the modem connects to? Only when service is downgraded? Nothing except if the modem is going to shut down? Use the chat to configure it to your needs
- If your life depends on a feature like this, you're still safer not using a phone. It's not perfect and it will still need more work before it is reliable
- Chat controls:
enable tracking
: Turns the feature ondisable tracking
: Turns the feature offsignal tracking mode [0-3]
: 0: Standalone learning, 1: Standalone strict (auto poweroff), 2:Opencellid+standalone learning, 3:Opencellid+standalone strict (auto poweroff if cell is not in opencellid and wasn't previously connected)signal tracking cell notifications [none|new|all]
: Configure when to receive SMS notifications: Never, only when connected to previously unknown cells or everytime you change cells (will drain your battery faster because it will be waking up the Pinephone a lot)enable network downgrade notification
: Will send a SMS if the network goes from a service type to a lower one (i.e. LTE to WCDMA, or LTE to GSM, or WCDMA to GSM)disable network downgrade notification
: Will stop downgrade notification messages- If signal tracking is enabled, you will still receive a message when there's a capability change (For example, Call service is detached, data service is detached/reattached, or there's a change in the supported network types)
- Internal Voice Service client (not really used yet, we'll leave that one out for this version)
- Internal DMS (Device Management Service) client:
- Automatically retrieves firmware info and device status from the modem
- Controls SIM unlocking state to defer other service startup (time, network tracking, scheduler)
- Scheduler now periodically checks for available space and automatically cleans up if space is critically low (for those of you running the modem in debug mode all the time with persist disabled, this should prevent it from crashing due to no free RAM)
- Configuration support for the List All Messages bypass in ModemManager (stuck message recovery on boot)
- Added to recipes, but disabled from this build: Speech to text support. It doesn't really work that well and would only be useful for english speakers, but you can build it by setting some flags. Allows to automatically generate transcripts from recordings
- Updated Yocto to 4.0.7
- Want to run something at boot? Create a script called
.autostart
in/persist
, and it will run from init in next boot! - Find the easter egg :P
Fixes:
- Clear DND task after it has run
- Clear force-notify task after it has run
- Fixes mem leaks from unfreed buffers in different parts of openqti
- Internal call now sets the cpu to performance mode so TTS engine isn't slow as a dog converting text to speech, goes back to powersave on hangup
- Automatic fallback if user data partition doesn't exist (for modems without a user data partition)
- Automatic search of the modem partition in case the bootloader doesn't provide one
- Fix openqti crash when a 159 character message ended up overflowing when converted to GSM7 due to special characters
- 'help' command is now sorted by category instead of list order
- Fix modem not waking up the host correctly to a fake message
(*) OpenCellid: New signal tracking functionality has 5 operating modes:
- Off
- Learning mode using only the data it can gather from the network itself
- Strict mode using the data it collected in previous mode
- Learning mode using the data it can get from the network + the OpenCellid database
- Strict mode using only the previously collected data and the OpenCellid database.
When running in strict mode, the baseband will kill itself as soon as it connects to an unknown cell id, so don't shoot yourself in the foot. If you aren't going to automate opencellid database uploading, start by setting it to learning mode, so the modem builds a cache of known cells around your area, before setting it to strict mode. Once the baseband is killed, the only thing that will still work is ADB access until a reboot, so it will make it hard for you to change the settings back (unless you wipe the config file via adb (adb shell rm /persist/openqti.conf
)
LIMITATIONS:
- You need ADB enabled so you can upload database files to the modem
- Due to the polling interval, the modem may stay connected up to 20 seconds to the network before being cut off
- When in strict mode, if the modem connects to a cell it doesn't know about it will send you a message, wait 10 seconds to allow the host to get that message, and then it will stop the baseband firmware entirely. The userspace will stay running in case you want to retrieve some logs from it, but after that you'll have to reboot the modem via adb or the kill switch & EG25-Manager
- Since the OpenCellid database takes 4Gb uncompressed, I've set up a small page you can use to get the relevant data for your carrier. Please check here for a sample script you can automate. If you want to host your own database, I've set up a small repo with the tools you'll need
Compatibility:
- Pinephone
- Pinephone Pro
- Quectel EG25 based MiniPCIe cards (make sure you enable USB audio if you want to make a call)
- (With some help) Simcom SIM7600 (you'll have to use USB audio, and it will think it's a Quectel afterwards :))
Known issues
- SMS Timestamps will be wrong if the modem can't manage to sync the date from the carrier. If this happens all messages will have a date of 2022-01-01 (+- timezone offset)
- You tell me!
NOTES:
- Make sure to check out the Recommended settings to get the best experience
SHA512 Sum of the package file
SHA512: ac02eb84ecdfe2cfc3c2f4792d4c58da52d3aeb5066d04ac24ec0beb0ba36bcbbfc66ba3a7a0bbc5dcaf71a0377ab50c70c5941c123526f2da183ee2be8b9f58 package.tar.gz
Inside the compressed tar file there's a file containing the SHA sums for the files in it.
Installation instructions:
- Get required tools: you need adb and fastboot
- Run the
flashall
script bundled in the package as root. If something fails, flash [manually](https://gi...
0.7.2: Tell me lies, tell me sweet little lies
CHANGELOG: 0.7.2
Big, enormous thank you to all the people who participate in the development of this firmware, be it by contributing with code, documentation, donations or testing and reporting issues, this firmware gets better on each release thanks to your help and feedback!
This is mostly a bugfix release, and the beginning of a partial rewrite of openqti to try to get it cleaner and easier to understand
New:
- Add Do Not Disturb functionality (in testing). Send enable dnd for (hours) or (hh:mm) to enable it. This one will lie to modemmanager when there's an incoming call and DND is enabled, and will send you a SMS with the number that was calling
- Lie to ModemManager when there are stuck messages in the baseband
- Forward those stuck messages as Modem fake messages
- (devel): CB Message relay through the AT interface
- (devel): Replay CB messages as SMS (to test encodings)
- (unfinished): Add code to initialize the internal RMNET interface (unfinished, only partially working)
Fixes:
- Follow persist settings when retrieving logs through chat and AT IF (Fixes log retrieval outside of ADB)
- Stop using AT+CIND to retrieve network state as it messes with AGPS uploads and ModemManager
- Text decoding was sometimes eating a letter making some commands not work
- Use ModemManager's PDU decoding functions for SMS logging
- Less log spamming from the scheduler, proxy, messaging and call services
- Eat verizon's configuration profile SMS's that were incorrectly being interpreted as Cell broadcast messages
- Custom Alert Tone was broken in 0.7.1, fixed now
Compatibility:
- Pinephone
- Pinephone Pro
- Quectel EG25 based MiniPCIe cards (make sure you enable USB audio if you want to make a call)
Known issues
- SMS Timestamps will be wrong if the modem can't manage to sync the date from the carrier. If this happens all messages will have a date of 2022-01-01 (+- timezone offset)
- You tell me!
NOTES:
- Make sure to check out the Recommended settings to get the best experience
SHA512 Sum of the package file
cf3b0161c9c04a383128ee047bdb30e9ffa15e3cc5bfa5e1e1b6c478fa853a34720c5d4032aaf1ac608261f0a84eed973d0f87bd35e8862343062ccb60bb513b package.tar.gz
Inside the compressed tar file there's a file containing the SHA sums for the files in it.
Installation instructions:
- Get required tools: you need adb and fastboot
- Run the
flashall
script bundled in the package as root. If something fails, flash manually
After you flashed everything, the modem should come back automatically after 14-18 seconds.
If you want to go back to stock, check the recovery repo
WARNING: Make sure you have a recent enough baseband version before installing the firmware, or some things won't work as expected. You can check your current ADSP firmware by sending the command AT+QGMR
when running stock, or AT+GETADSPVER
when using this firmware. Below you can find the latest ADSP firmware blobs we have found (all of them will work):
ADSP Firmware:
Depending on your carrier, some firmware versions will work better than others. You can check your current ADSP firmware version by sending the "AT+QGMR" AT command. If in doubt, version 01.002.01.002 is the default if you used the recovery repo. I've been using version 003 for months without issues (and improvements in data handling) but some users have reported problems making VoLTE calls with it, so pick whatever works best for you (or don't change it at all if it worked fine before)
- ADSP Version 01.002.01.002
- ADSP Version 01.003.01.003
- ADSP Version 30.004.30.004
- ADSP Version 30.006.30.006
Flashing it:
- Open a root terminal and run:
echo -ne "AT+QFASTBOOT\r" > /dev/ttyUSB2
to enter fastboot mode - Run
fastboot flash modem NON-HLOS.ubi && fastboot reboot
Something went wrong?
Feel free to check the troubleshooting section. If you don't manage to fix it, feel free to open an issue and I'll do my best to help you out
This release is a flashable package based on the following repos:
- LK2nd fork: https://github.com/Biktorgj/lk2nd/tree/quectel-eg25-timer
- Linux 3.18.140 Kernel: https://github.com/Biktorgj/quectel_eg25_kernel
- Forked meta-qcom layer: https://github.com/Biktorgj/meta-qcom/
- Yocto 4 based rootfs and recovery (https://www.yoctoproject.org/)
Have fun and stay safe everyone
0.7.1 - Record this call
CHANGELOG: 0.7.1
Big, enormous thank you to all the people who participate in the development of this firmware, be it by contributing with code, documentation, donations or testing and reporting issues, this firmware gets better on each release thanks to your help and feedback!
New:
- Update Yocto to 4.0.5
- Call recording support! This one is a
beta
but I have used it extensively for the last weeks and it worked fine for me. In essence, it allows you to record all incoming and outgoing calls, record and delete all calls you don't tell it to keep, record the current call or record the call you're about to make or receive... or do nothing, of course. It's still missing a few things, and you should probably convert the files to something better and smaller, but should be usable as is. Make sure to check the doc to learn how to retrieve the recordings. I also made a small (mostly untested) script you can improve on to get the recordings here. As laws regarding call recording may vary in different jurisdictions, make sure you're allowed to use this function where you live before turning it on
Fixes:
- Whoopsie from 0.7.0 that would make it fail when reading ADSP version
- Custom alert tone setting can be enabled and disabled from the chat
Compatibility:
- Pinephone
- Pinephone Pro
- Quectel EG25 based MiniPCIe cards (make sure you enable USB audio if you want to make a call)
Known issues
- SMS Timestamps will be wrong if the modem can't manage to sync the date from the carrier. If this happens all messages will have a date of 2022-01-01 (+- timezone offset)
- You tell me!
NOTES:
- Make sure to check out the Recommended settings to get the best experience
SHA512 Sum of the package file
530059b1031339adab150dfff8c6426fdfd2a463cc1e6b9618b800c033b9c44000aa28bb90d73d913df24cdfa8905598db9d349ca3a0fd9a77462d1e0cb48c1c package.tar.gz
Inside the compressed tar file there's a file containing the SHA sums for the files in it.
Installation instructions:
- Get required tools: you need adb and fastboot
- Run the
flashall
script bundled in the package as root. If something fails, flash manually
After you flashed everything, the modem should come back automatically after 14-18 seconds.
If you want to go back to stock, check the recovery repo
WARNING: Make sure you have a recent enough baseband version before installing the firmware, or some things won't work as expected. You can check your current ADSP firmware by sending the command AT+QGMR
when running stock, or AT+GETADSPVER
when using this firmware. Below you can find the latest ADSP firmware blobs we have found (all of them will work):
ADSP Firmware:
Depending on your carrier, some firmware versions will work better than others. You can check your current ADSP firmware version by sending the "AT+QGMR" AT command. If in doubt, version 01.002.01.002 is the default if you used the recovery repo. I've been using version 003 for months without issues (and improvements in data handling) but some users have reported problems making VoLTE calls with it, so pick whatever works best for you (or don't change it at all if it worked fine before)
- ADSP Version 01.002.01.002
- ADSP Version 01.003.01.003
- ADSP Version 30.004.30.004
- ADSP Version 30.006.30.006
Flashing it:
- Open a root terminal and run:
echo -ne "AT+QFASTBOOT\r" > /dev/ttyUSB2
to enter fastboot mode - Run
fastboot flash modem NON-HLOS.ubi && fastboot reboot
Something went wrong?
Feel free to check the troubleshooting section. If you don't manage to fix it, feel free to open an issue and I'll do my best to help you out
This release is a flashable package based on the following repos:
- LK2nd fork: https://github.com/Biktorgj/lk2nd/tree/quectel-eg25-timer
- Linux 3.18.140 Kernel: https://github.com/Biktorgj/quectel_eg25_kernel
- Forked meta-qcom layer: https://github.com/Biktorgj/meta-qcom/
- Yocto 4 based rootfs and recovery (https://www.yoctoproject.org/)
Have fun and stay safe everyone
0.7.0 - The smallest fix is sometimes the most important one
CHANGELOG: 0.7.0
Big, enormous thank you to all the people who participate in the development of this firmware, be it by contributing with code, documentation, donations or testing and reporting issues, this firmware gets better on each release thanks to your help and feedback!
New:
- Update Yocto to 4.0.4
- Support for GSM-7 / UCS-2 / 8-Bit data coding scheme identification in Cell Broadcast messages and raw relaying as a SMS to the host if the default coding scheme is not used. This allows for emergency broadcast messages in non-latin alphabets to be correctly relayed. (thanks sensei1304!)
Fixes:
- LVFS: Fix compatible HWIDs for Pinephone Pro (Tow-boot) and Pinephone (tow-boot/u-boot) (thanks Dylan Van Assche)
- Clean up of unneeded trash from openqti
Compatibility:
- Pinephone
- Pinephone Pro
- Quectel EG25 based MiniPCIe cards (make sure you enable USB audio if you want to make a call)
Known issues
- SMS Timestamps will be wrong if the modem can't manage to sync the date from the carrier. If this happens all messages will have a date of 2022-01-01 (+- timezone offset)
- You tell me!
NOTES:
- Make sure to check out the Recommended settings to get the best experience
SHA512 Sum of the package file
ae57a55630e41e6e03b7d933effcfb03f2f45bd9a74aeff570fecd81842f61a771aa0ab21c8e88db5ee47170692a573e3c53b505cf66836f12ac08f51a3b5a99 package.tar.gz
Inside the compressed tar file there's a file containing the SHA sums for the files in it.
Installation instructions:
- Get required tools: you need adb and fastboot
- Run the
flashall
script bundled in the package as root. If something fails, flash manually
After you flashed everything, the modem should come back automatically after 14-18 seconds.
If you want to go back to stock, check the recovery repo
WARNING: Make sure you have a recent enough baseband version before installing the firmware, or some things won't work as expected. You can check your current ADSP firmware by sending the command AT+QGMR
when running stock, or AT+GETADSPVER
when using this firmware. Below you can find the latest ADSP firmware blobs we have found (all of them will work):
ADSP Firmware:
Depending on your carrier, some firmware versions will work better than others. You can check your current ADSP firmware version by sending the "AT+QGMR" AT command. If in doubt, version 01.002.01.002 is the default if you used the recovery repo. I've been using version 003 for months without issues (and improvements in data handling) but some users have reported problems making VoLTE calls with it, so pick whatever works best for you (or don't change it at all if it worked fine before)
- ADSP Version 01.002.01.002
- ADSP Version 01.003.01.003
- ADSP Version 30.004.30.004
- ADSP Version 30.006.30.006
Flashing it:
- Open a root terminal and run:
echo -ne "AT+QFASTBOOT\r" > /dev/ttyUSB2
to enter fastboot mode - Run
fastboot flash modem NON-HLOS.ubi && fastboot reboot
Something went wrong?
Feel free to check the troubleshooting section. If you don't manage to fix it, feel free to open an issue and I'll do my best to help you out
This release is a flashable package based on the following repos:
- LK2nd fork: https://github.com/Biktorgj/lk2nd/tree/quectel-eg25-timer
- Linux 3.18.140 Kernel: https://github.com/Biktorgj/quectel_eg25_kernel
- Forked meta-qcom layer: https://github.com/Biktorgj/meta-qcom/
- Yocto 4 based rootfs and recovery (https://www.yoctoproject.org/)
Have fun and stay safe everyone
0.6.8: Small fixes
CHANGELOG: 0.6.8
Big, enormous thank you to all the people who participate in the development of this firmware, be it by contributing with code, documentation, donations or testing and reporting issues, this firmware gets better on each release thanks to your help and feedback!
New:
- Update Yocto to 4.0.2
- Scheduled tasks: save tasks to flash and restore them on boot (beta, there's a lot that can go wrong if the modem can't sync time)
- Add support for building ramdisk images
Fixes:
- Bootloader: Fix a bug that made it not respect the AT+QFASTBOOT command. If you find issues flashing this firmware, either directly with the script or via fwupd, please run
fastboot oem stay
in a root terminal and try to flash it again - Higher temperature thresholds so it complains less when it's hot outside
- Time syncing: Give up if it is unable to sync the time after 60 attempts (so it's not trying all the time)
- Delay scheduled task thread start for 120 seconds (Give the time sync thread... ermmm... time... to sync its... time)
Compatibility:
- Pinephone
- Pinephone Pro
- Quectel EG25 based MiniPCIe cards (make sure you enable USB audio if you want to make a call)
Known issues
- SMS Timestamps will be wrong if the modem can't manage to sync the date from the carrier. If this happens all messages will have a date of 2022-01-01 (+- timezone offset)
- You tell me!
NOTES:
- Make sure to check out the Recommended settings to get the best experience
SHA512 Sum of the package file
6d47a881d090dc7ce796708a56a1791881e064633491d25068ba8d4500a14fb507923e00857177ed85c8a43052a38344813ac3763b820e3fae62a3e94f7f05a4 package.tar.gz
Inside the compressed tar file there's a file containing the SHA sums for the files in it.
Installation instructions:
- Get required tools: you need adb and fastboot
- Run the
flashall
script bundled in the package as root. If something fails, flash manually
After you flashed everything, the modem should come back automatically after 14-18 seconds.
If you want to go back to stock, check the recovery repo
WARNING: Make sure you have a recent enough baseband version before installing the firmware, or some things won't work as expected. You can check your current ADSP firmware by sending the command AT+QGMR
when running stock, or AT+GETADSPVER
when using this firmware. Below you can find the latest ADSP firmware blobs we have found (all of them will work):
ADSP Firmware:
Depending on your carrier, some firmware versions will work better than others. You can check your current ADSP firmware version by sending the "AT+QGMR" AT command. If in doubt, version 01.002.01.002 is the default if you used the recovery repo. I've been using version 003 for months without issues (and improvements in data handling) but some users have reported problems making VoLTE calls with it, so pick whatever works best for you (or don't change it at all if it worked fine before)
- ADSP Version 01.002.01.002
- ADSP Version 01.003.01.003
- ADSP Version 30.004.30.004
- ADSP Version 30.006.30.006
Flashing it:
- Open a root terminal and run:
echo -ne "AT+QFASTBOOT\r" > /dev/ttyUSB2
to enter fastboot mode - Run
fastboot flash modem NON-HLOS.ubi && fastboot reboot
Something went wrong?
Feel free to check the troubleshooting section. If you don't manage to fix it, feel free to open an issue and I'll do my best to help you out
This release is a flashable package based on the following repos:
- LK2nd fork: https://github.com/Biktorgj/lk2nd/tree/quectel-eg25-timer
- Linux 3.18.140 Kernel: https://github.com/Biktorgj/quectel_eg25_kernel
- Forked meta-qcom layer: https://github.com/Biktorgj/meta-qcom/
- Yocto 4 based rootfs and recovery (https://www.yoctoproject.org/)
Have fun!
0.6.7... Doom!
CHANGELOG:
DOOM!
TOTALLY UNSUPPORTED IN ANY WAY. PLEASE DO NOT OPEN ISSUES ABOUT THIS RELEASE.
New:
- Doom
How to make this work:
This package contains a special firmware, bundled with x11, VNC Server and Chocolate Doom. You'll need to get some WAD for it, this assumes you have the shareware version of Doom downloaded (http://www.pc-freak.net/files/doom-wad-files/Doom1.WAD).
While all functionality normally provided by the modem is kept intact, maybe it isn't a good idea to daily drive this. It probably consumes more battery than it should, especially if you do play doom and don't restore things to their initial state.
Requirements:
- A Pinephone or Pinephone Pro
- This firmware installed
- ADB Enabled
- Persistent logging enabled (it's where we'll store our doom files and temporary data)
So, first flash this firmware as usual, enable ADB and persistent logging, then:
- Inside an adb shell,
mkdir -p /persist/root
- Push
Doom1.WAD
to /persist/root - Push
chdoom
- Run this:
adb shell ifconfig rndis0 up ; adb shell ifconfig rndis0 10.66.0.2 netmask 255.255.255.0 ; ifconfig usb1 10.66.0.1 netmask 255.255.255.0 ; adb shell 'echo "performance" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor' ; adb shell x11vnc -rfbauth /persist/root/vncauth -display :0
- Connect via your preferred VNC client (I like Remmina) to 10.66.0.2. Password will be 123456
- Once connected you'll get a terminal, inside there, you'll have to run
/persist/chdoom
I've spent more time that I'd like to admit trying to get uinput working via SMS, but failed at that, so you'll have to use a keyboard, mouse or touchscreen to play. Sorry about that, but didn't want to waste more time in this :)
This builds uses the meta-doom package from @bguan: https://gitlab.com/bguan/meta-doom.git
You can use the provided sample local.conf if you want to build something like this for yourself
0.6.7: Click to show / hide
0.6.7 #### IMPORTANT: Moved the internal phone number to `+22 33 44 55 66 77` #### Make sure to remove the old chat and send `AT+SIMUSMS` once to get a new chat windowBig, enormous thank you to all the people who participate in the development of this firmware, be it by contributing with code, documentation, donations or testing and reporting issues, this firmware gets better on each release thanks to your help and feedback!
New:
- Set USB port serial number to
community_fw
, so distros can use a specific ruleset in udev for this firmware and a different one when using stock
Fixes:
- Fix call audio closing when CALL_STATUS_INFO reports either 0 or 1 call active (not all QMI call status messages are created equal)
- Fix call audio setup on Pinephone Pro when waking up from suspend (sometimes i2c stops responding when the host is suspended, and resuming the analog codec fails. This force-closes and opens again the mixers to make sure the analog code gets refreshed when the phone is fully awake)
0.6.6
New:
- Thermal monitoring and reporting via chat.The modem will send you messages if temperature starts going up, and if temperature is higher than 85C it will automatically shutdown
- Call wait handling. Currently there's a bug in Phosh based distros, in which a second call while there's already one in progress crashes Gnome calls. This new functionality gives you 3 choices: Do nothing (as before), automatically ignore it (sends you a message with the phone number that was calling and avoids informing gnome-calls, which prevents it from crashing) or automatically reject it, which sends you a message and then rejects the call.
If your distro handles call waiting correctly, you don't need to enable anything. If your distro is Phosh based, you might want to either ignore the call or reject it. Note if you ignore it, the call is still "ringing" for the other party, so you won't be able to call them back until they hang up. But for some people it might be a more sensible choice to act like they didn't hear it than hanging up on them, hence the different options. Send either callwait auto hangup
, callwait auto ignore
, or callwait mode default
in the chat, or send help
for a list of commands.
Big thank you to @Alaraajavamma for testing this with me for days
Fixes:
- Temperature limits raised. The modem can handle up to >100C, but we were stopping it at 78C, which was too low. You really need to push the phone to get to 85C so it should be enough, but we'll see if it needs to be raised some more.
- Bugfix: Buffer overflow when attempting to read phone number on active/initiating calls when there are multiple calls in progress (incorrect parsing of QMI call status message)
- Honor the persist flag when dumping QMI messages in debug mode
- Use syscalls to reboot/powerdown via AT command and do poweroff if requested to do so, instead of restarting
- Cleanup of schedule wakeup: Add confirmation, clean up comments and overall tidyup (thank you @bobjrsenior!)
- Mask phone number would first print the full number, then the masked version of it (facepalm)
0.6.5
New:
- LK2nd bootloader! BIG THANK YOU to
minecrell
for all the help in making this work. Currently we're using a fork to add some specific patches, but hopefully we'll be able get upstream soon! (tm) - Support for enabling/disabling cell broadcast from the chat
- Automatic masking of the phone number in the logs unless you explicitly set it to debug mode
- Moved lots of informational messages in the log to debug mode only
Fixes:
- PPP audio doesn't work when doing a warm boot (there was a regression in the kernel in previous version)
- Fix for SMS interface hogging the usb descriptor, making modemmanager loose packets sometimes
- AT interface blocking while in use by Openqti
- Ghost SMS from the internal chat is no longer receive when the modem receives an MMS
Other:
- Update Yocto to 4.0 Kirkstone (https://docs.yoctoproject.org/dev/migration-guides/release-notes-4.0.html)
0.6.4
New functions:
- Wipe all SMS storage (AT+WIPESMS)
- Persistent storage support
- Use a configuration file for most of openqti's functions
- SMS Logging
- Reminders and wake up alarms (make the modem call you to wake you up or remind you of something)
Fixes:
- Faster audio set up time (no more cutting the first 2 seconds of a call)
- Fix one, two or -2,147,483,648 buffer overflows
- Better time sync handling
- (Testing) More delay between ring in pulse and actual call start attempt
Other:
- Update Yocto to 3.4.4
0.6.3
Fixes on bugs found while debugging issue #81:
- Bugfix: Proxy wrongfully uses uint8_t for file descriptors in some functions
- Bugfix: Internal call handling: Make sure we reset the call state after automatically disconnecting the call (fixes only-one-call if we let the call die)
- Bugfix: Remove buggy response to ALL_CALL_INFO packet type (created a buffer underrun in openqti leading up to a modem forced reboot, introduced in 0.6.2)
- Bugfix: When disconnecting a call, also send up a hang-up signal (oFono doesn't like not getting that)
- More descriptive message when a simulated call is getting no commands
- Remove hacky code to handle automatic call disconnect on no answer from the user, let the proxy handle it instead of spawning another thread and risk writing from two places at the same time to the USB port. Timing won't be as exact when hanging up but it's not really an issue
This release may still have some issues, if you run into a problem downgrade to 0.6.1
0.6.2
- Fix transaction_id types when moving them around in internal calls and SMS (fixes oFono support for messages, calls is still a WIP)
- Calculate signal strength from the reported "bars" indication
- Use AT+CIND to check if we're roaming, signal quality or if we're on a call
- Stop spamming the host with a bogus established call notification while we're in a simulated call
- Initial support for gsm network data reporting and change notification
- Make sure we re-set ALSA controls for I2S and sampling rate each time we're setting up audio
- Only request AT+CIND when tracking is enabled (for testing, in package-alt.tar.gz)
0.6.1
- Unify the phone number used in calls and sms with the modem. Remember you can trigger the first SMS with the command AT+SIMUSMS, and a call trigger sending "call me" in that chat
- The correct phone number now will be +01 555 0199 999 for both calls and messages
- TTS Support: Send a message to the modem while in a call and it will reply with voice instead of text
- Stop using misc partition to set bootloader flags
- Cell Broadcasting Support: ModemManager doesn't have Cell Broadcasting support, but now this firmware can forward CB messages as normal SMS, so you can receive emergency alerts. You can enable all Cell broadcasting messages with AT+CSCB=0,"0-6000"
Power key monitoring: reduces shutdown time in some distros from >30 seconds to ~3. It also allows you to restart the modem by restarting eg25-manager - BUGFIX: Make sure we destroy all TTS memory allocation after use (pointers weren't correctly freed in 0.6.0)
- Try to sync time from network first, and if it fails, try to use whatever CCLK has (so you can set time and date via a script from the PinePhone if your carrier sends an invalid date)
- Reenable debug serial port (for those using Quectel EG25 in a EVB)
- Remove Quectel's modifications to the audio driver. This seems to fix different issues, most notably, fixes an issue in the PPP where static noise would be heard in approximately 1/4 calls. As a result of this change, runtime switching of PCM sampling rate is not possible anymore, and the modem will use 8KHz sampling rate for the PinePhone and 16KHz for the PinePhone Pro
Compatibility:
- Pinephone
- Pinephone Pro
- Quectel EG2...
0.6.7 Fixing some bugs and making the firmware easier to identify
CHANGELOG: 0.6.7
IMPORTANT: Moved the internal phone number to +22 33 44 55 66 77
Make sure to remove the old chat and send AT+SIMUSMS
once to get a new chat window
Big, enormous thank you to all the people who participate in the development of this firmware, be it by contributing with code, documentation, donations or testing and reporting issues, this firmware gets better on each release thanks to your help and feedback!
New:
- Set USB port serial number to
community_fw
, so distros can use a specific ruleset in udev for this firmware and a different one when using stock
Fixes:
- Fix call audio closing when CALL_STATUS_INFO reports either 0 or 1 call active (not all QMI call status messages are created equal)
- Fix call audio setup on Pinephone Pro when waking up from suspend (sometimes i2c stops responding when the host is suspended, and resuming the analog codec fails. This force-closes and opens again the mixers to make sure the analog code gets refreshed when the phone is fully awake)
0.6.6: Click to show / hide
0.6.6New:
- Thermal monitoring and reporting via chat.The modem will send you messages if temperature starts going up, and if temperature is higher than 85C it will automatically shutdown
- Call wait handling. Currently there's a bug in Phosh based distros, in which a second call while there's already one in progress crashes Gnome calls. This new functionality gives you 3 choices: Do nothing (as before), automatically ignore it (sends you a message with the phone number that was calling and avoids informing gnome-calls, which prevents it from crashing) or automatically reject it, which sends you a message and then rejects the call.
If your distro handles call waiting correctly, you don't need to enable anything. If your distro is Phosh based, you might want to either ignore the call or reject it. Note if you ignore it, the call is still "ringing" for the other party, so you won't be able to call them back until they hang up. But for some people it might be a more sensible choice to act like they didn't hear it than hanging up on them, hence the different options. Send either callwait auto hangup
, callwait auto ignore
, or callwait mode default
in the chat, or send help
for a list of commands.
Big thank you to @Alaraajavamma for testing this with me for days
Fixes:
- Temperature limits raised. The modem can handle up to >100C, but we were stopping it at 78C, which was too low. You really need to push the phone to get to 85C so it should be enough, but we'll see if it needs to be raised some more.
- Bugfix: Buffer overflow when attempting to read phone number on active/initiating calls when there are multiple calls in progress (incorrect parsing of QMI call status message)
- Honor the persist flag when dumping QMI messages in debug mode
- Use syscalls to reboot/powerdown via AT command and do poweroff if requested to do so, instead of restarting
- Cleanup of schedule wakeup: Add confirmation, clean up comments and overall tidyup (thank you @bobjrsenior!)
- Mask phone number would first print the full number, then the masked version of it (facepalm)
0.6.5
New:
- LK2nd bootloader! BIG THANK YOU to
minecrell
for all the help in making this work. Currently we're using a fork to add some specific patches, but hopefully we'll be able get upstream soon! (tm) - Support for enabling/disabling cell broadcast from the chat
- Automatic masking of the phone number in the logs unless you explicitly set it to debug mode
- Moved lots of informational messages in the log to debug mode only
Fixes:
- PPP audio doesn't work when doing a warm boot (there was a regression in the kernel in previous version)
- Fix for SMS interface hogging the usb descriptor, making modemmanager loose packets sometimes
- AT interface blocking while in use by Openqti
- Ghost SMS from the internal chat is no longer receive when the modem receives an MMS
Other:
- Update Yocto to 4.0 Kirkstone (https://docs.yoctoproject.org/dev/migration-guides/release-notes-4.0.html)
0.6.4
New functions:
- Wipe all SMS storage (AT+WIPESMS)
- Persistent storage support
- Use a configuration file for most of openqti's functions
- SMS Logging
- Reminders and wake up alarms (make the modem call you to wake you up or remind you of something)
Fixes:
- Faster audio set up time (no more cutting the first 2 seconds of a call)
- Fix one, two or -2,147,483,648 buffer overflows
- Better time sync handling
- (Testing) More delay between ring in pulse and actual call start attempt
Other:
- Update Yocto to 3.4.4
0.6.3
Fixes on bugs found while debugging issue #81:
- Bugfix: Proxy wrongfully uses uint8_t for file descriptors in some functions
- Bugfix: Internal call handling: Make sure we reset the call state after automatically disconnecting the call (fixes only-one-call if we let the call die)
- Bugfix: Remove buggy response to ALL_CALL_INFO packet type (created a buffer underrun in openqti leading up to a modem forced reboot, introduced in 0.6.2)
- Bugfix: When disconnecting a call, also send up a hang-up signal (oFono doesn't like not getting that)
- More descriptive message when a simulated call is getting no commands
- Remove hacky code to handle automatic call disconnect on no answer from the user, let the proxy handle it instead of spawning another thread and risk writing from two places at the same time to the USB port. Timing won't be as exact when hanging up but it's not really an issue
This release may still have some issues, if you run into a problem downgrade to 0.6.1
0.6.2
- Fix transaction_id types when moving them around in internal calls and SMS (fixes oFono support for messages, calls is still a WIP)
- Calculate signal strength from the reported "bars" indication
- Use AT+CIND to check if we're roaming, signal quality or if we're on a call
- Stop spamming the host with a bogus established call notification while we're in a simulated call
- Initial support for gsm network data reporting and change notification
- Make sure we re-set ALSA controls for I2S and sampling rate each time we're setting up audio
- Only request AT+CIND when tracking is enabled (for testing, in package-alt.tar.gz)
0.6.1
- Unify the phone number used in calls and sms with the modem. Remember you can trigger the first SMS with the command AT+SIMUSMS, and a call trigger sending "call me" in that chat
- The correct phone number now will be +01 555 0199 999 for both calls and messages
- TTS Support: Send a message to the modem while in a call and it will reply with voice instead of text
- Stop using misc partition to set bootloader flags
- Cell Broadcasting Support: ModemManager doesn't have Cell Broadcasting support, but now this firmware can forward CB messages as normal SMS, so you can receive emergency alerts. You can enable all Cell broadcasting messages with AT+CSCB=0,"0-6000"
Power key monitoring: reduces shutdown time in some distros from >30 seconds to ~3. It also allows you to restart the modem by restarting eg25-manager - BUGFIX: Make sure we destroy all TTS memory allocation after use (pointers weren't correctly freed in 0.6.0)
- Try to sync time from network first, and if it fails, try to use whatever CCLK has (so you can set time and date via a script from the PinePhone if your carrier sends an invalid date)
- Reenable debug serial port (for those using Quectel EG25 in a EVB)
- Remove Quectel's modifications to the audio driver. This seems to fix different issues, most notably, fixes an issue in the PPP where static noise would be heard in approximately 1/4 calls. As a result of this change, runtime switching of PCM sampling rate is not possible anymore, and the modem will use 8KHz sampling rate for the PinePhone and 16KHz for the PinePhone Pro
Compatibility:
- Pinephone
- Pinephone Pro
- Quectel EG25 based MiniPCIe cards (make sure you enable USB audio if you want to make a call)
Known issues
- SMS Timestamps will be wrong if the modem can't manage to sync the date from the carrier. If this happens all messages will have a date of 2022-01-01 (+- timezone offset)
- You tell me!
NOTES:
- Make sure to check out the Recommended settings to get the best experience
SHA512 Sum of the package file
02be85672e75e01b14efd04afc961ff819bbd0339eeb2968bc951ac81639dc9f17185580b93d35ad6b25e735675b91291bbbc5abf77e8ddada3fec6cbba48bdc package.tar.gz
Inside the compressed tar file there's a file containing the SHA sums for the files in it.
Installation instructions:
- Get required tools: you need adb and fastboot
- Run the
flashall
script bundled in the package as root. If something fails, flash manually
After you flashed everything, the modem should come back automatically after 14-18 seconds.
If you want to go back to stock, check the recovery repo
WARNING: Make sure you have a recent enough baseband version before installing the firmware, or some things won't work as expected. You can check your current ADSP firmware by sending the command AT+QGMR
when running stock, or AT+GETADSPVER
when using this firmware. Below you can find the latest ADSP firmware blobs we have found (all of them will work):
ADSP Firmware:
Depending on your carrier, some firmware versions will work better than others. You can check your current ADSP firmware version by sending the "AT+QGMR" AT command. If in doubt, version 01.002.01.002 is the default if you used the recovery repo. I've been using version 003 for mon...
0.6.6 - Getting ready for the summer!
CHANGELOG
0.6.6
IMPORTANT: Moved the internal phone number to +22 33 44 55 66 77
Make sure to remove the old chat and send AT+SIMUSMS
once to get a new chat window
Big, enormous thank you to all the people who participate in the development of this firmware, be it by contributing with code, documentation, donations or testing and reporting issues, this firmware gets better on each release thanks to your help and feedback!
New:
- Thermal monitoring and reporting via chat.The modem will send you messages if temperature starts going up, and if temperature is higher than 85C it will automatically shutdown
- Call wait handling. Currently there's a bug in Phosh based distros, in which a second call while there's already one in progress crashes Gnome calls. This new functionality gives you 3 choices: Do nothing (as before), automatically ignore it (sends you a message with the phone number that was calling and avoids informing gnome-calls, which prevents it from crashing) or automatically reject it, which sends you a message and then rejects the call.
If your distro handles call waiting correctly, you don't need to enable anything. If your distro is Phosh based, you might want to either ignore the call or reject it. Note if you ignore it, the call is still "ringing" for the other party, so you won't be able to call them back until they hang up. But for some people it might be a more sensible choice to act like they didn't hear it than hanging up on them, hence the different options. Send either callwait auto hangup
, callwait auto ignore
, or callwait mode default
in the chat, or send help
for a list of commands.
Big thank you to @Alaraajavamma for testing this with me for days
Fixes:
- Temperature limits raised. The modem can handle up to >100C, but we were stopping it at 78C, which was too low. You really need to push the phone to get to 85C so it should be enough, but we'll see if it needs to be raised some more.
- Bugfix: Buffer overflow when attempting to read phone number on active/initiating calls when there are multiple calls in progress (incorrect parsing of QMI call status message)
- Honor the persist flag when dumping QMI messages in debug mode
- Use syscalls to reboot/powerdown via AT command and do poweroff if requested to do so, instead of restarting
- Cleanup of schedule wakeup: Add confirmation, clean up comments and overall tidyup (thank you @bobjrsenior!)
- Mask phone number would first print the full number, then the masked version of it (facepalm)
0.6.5: Click to show / hide
0.6.5New:
- LK2nd bootloader! BIG THANK YOU to
minecrell
for all the help in making this work. Currently we're using a fork to add some specific patches, but hopefully we'll be able get upstream soon! (tm) - Support for enabling/disabling cell broadcast from the chat
- Automatic masking of the phone number in the logs unless you explicitly set it to debug mode
- Moved lots of informational messages in the log to debug mode only
Fixes:
- PPP audio doesn't work when doing a warm boot (there was a regression in the kernel in previous version)
- Fix for SMS interface hogging the usb descriptor, making modemmanager loose packets sometimes
- AT interface blocking while in use by Openqti
- Ghost SMS from the internal chat is no longer receive when the modem receives an MMS
Other:
- Update Yocto to 4.0 Kirkstone (https://docs.yoctoproject.org/dev/migration-guides/release-notes-4.0.html)
0.6.4
New functions:
- Wipe all SMS storage (AT+WIPESMS)
- Persistent storage support
- Use a configuration file for most of openqti's functions
- SMS Logging
- Reminders and wake up alarms (make the modem call you to wake you up or remind you of something)
Fixes:
- Faster audio set up time (no more cutting the first 2 seconds of a call)
- Fix one, two or -2,147,483,648 buffer overflows
- Better time sync handling
- (Testing) More delay between ring in pulse and actual call start attempt
Other:
- Update Yocto to 3.4.4
0.6.3
Fixes on bugs found while debugging issue #81:
- Bugfix: Proxy wrongfully uses uint8_t for file descriptors in some functions
- Bugfix: Internal call handling: Make sure we reset the call state after automatically disconnecting the call (fixes only-one-call if we let the call die)
- Bugfix: Remove buggy response to ALL_CALL_INFO packet type (created a buffer underrun in openqti leading up to a modem forced reboot, introduced in 0.6.2)
- Bugfix: When disconnecting a call, also send up a hang-up signal (oFono doesn't like not getting that)
- More descriptive message when a simulated call is getting no commands
- Remove hacky code to handle automatic call disconnect on no answer from the user, let the proxy handle it instead of spawning another thread and risk writing from two places at the same time to the USB port. Timing won't be as exact when hanging up but it's not really an issue
This release may still have some issues, if you run into a problem downgrade to 0.6.1
0.6.2
- Fix transaction_id types when moving them around in internal calls and SMS (fixes oFono support for messages, calls is still a WIP)
- Calculate signal strength from the reported "bars" indication
- Use AT+CIND to check if we're roaming, signal quality or if we're on a call
- Stop spamming the host with a bogus established call notification while we're in a simulated call
- Initial support for gsm network data reporting and change notification
- Make sure we re-set ALSA controls for I2S and sampling rate each time we're setting up audio
- Only request AT+CIND when tracking is enabled (for testing, in package-alt.tar.gz)
0.6.1
- Unify the phone number used in calls and sms with the modem. Remember you can trigger the first SMS with the command AT+SIMUSMS, and a call trigger sending "call me" in that chat
- The correct phone number now will be +01 555 0199 999 for both calls and messages
- TTS Support: Send a message to the modem while in a call and it will reply with voice instead of text
- Stop using misc partition to set bootloader flags
- Cell Broadcasting Support: ModemManager doesn't have Cell Broadcasting support, but now this firmware can forward CB messages as normal SMS, so you can receive emergency alerts. You can enable all Cell broadcasting messages with AT+CSCB=0,"0-6000"
Power key monitoring: reduces shutdown time in some distros from >30 seconds to ~3. It also allows you to restart the modem by restarting eg25-manager - BUGFIX: Make sure we destroy all TTS memory allocation after use (pointers weren't correctly freed in 0.6.0)
- Try to sync time from network first, and if it fails, try to use whatever CCLK has (so you can set time and date via a script from the PinePhone if your carrier sends an invalid date)
- Reenable debug serial port (for those using Quectel EG25 in a EVB)
- Remove Quectel's modifications to the audio driver. This seems to fix different issues, most notably, fixes an issue in the PPP where static noise would be heard in approximately 1/4 calls. As a result of this change, runtime switching of PCM sampling rate is not possible anymore, and the modem will use 8KHz sampling rate for the PinePhone and 16KHz for the PinePhone Pro
Compatibility:
- Pinephone
- Pinephone Pro
- Quectel EG25 based MiniPCIe cards (make sure you enable USB audio if you want to make a call)
Known issues
- SMS Timestamps will be wrong if the modem can't manage to sync the date from the carrier. If this happens all messages will have a date of 2022-01-01 (+- timezone offset)
- You tell me!
NOTES:
- Make sure to check out the Recommended settings to get the best experience
SHA512 Sum of the package file
a6e95ddc70228778c2a63781b9a93b2413e37777db868cbe4ae7a76050028e6f23eb4d066050b29cd99910de84ef767a5ec3cc853398d12e9b63f557bf11b846 package.tar.gz
Inside the compressed tar file there's a file containing the SHA sums for the files in it.
Installation instructions:
- Get required tools: you need adb and fastboot
- Run the
flashall
script bundled in the package as root. If something fails, flash manually
After you flashed everything, the modem should come back automatically after 14-18 seconds.
If you want to go back to stock, check the recovery repo
WARNING: Make sure you have a recent enough baseband version before installing the firmware, or some things won't work as expected. You can check your current ADSP firmware by sending the command AT+QGMR
when running stock, or AT+GETADSPVER
when using this firmware. Below you can find the latest ADSP firmware blobs we have found (all of them will work):
ADSP Firmware:
Depending on your carrier, some firmware versions will work better than others. You can check your current ADSP firmware version by sending the "AT+QGMR" AT command. If in doubt, version 01.002.01.002 is the default if you used the recovery repo. I've been using version 003 for months without issues (and improvements in data handling) but some users have reported problems making VoLTE calls with it, so pick whatever works best for you (or don't change it at all if it worked fine before)
- ADSP Version 01.002.01.002
- ADSP Version 01.003.01.003
- [ADSP Version 30.004.30.004](https://github.com/Biktorgj/quectel_eg25_recovery/raw/EG25GGBR07A08M2G_30.004.3...