v0.51.0
v0.51.0 - 2025-03-29 07:10
Commit history: v0.50.1...v0.51.0
Changelog
Added
-
Add
SAFAPI. Implemented by @tareksander in #476. (a546eeb5) -
Enhance
SmsInboxAPIwith new options and fix errors for non existent columns.The following options have been added. Check
termux-sms-list --helpfor examples and more info.conversation-limit=<limit>: The SQL limit for returned SMS conversations.conversation-offset=<offset>: The SQL offset for returned SMS conversations.conversation-return-multiple-messages: Return multiple SMS messages per conversation.conversation-return-nested-view: Return a nested object view of conversations where each conversation contains an array of SMS messages with the conversation id as the key.conversation-return-no-order-reverse: Return SMS conversations without reversing order of conversation sort.conversation-selection=<selection>: The SQL selection for returned SMS conversations.conversation-sort-order=<order>: The SMS conversations sort order as per SQL 'ORDER BY col1, col2, ... ASC|DESC' clause. Default value: 'date DESC'.message-return-no-order-reverse: Return SMS messages without reversing order of message sort.message-selection=<selection>: The SQL selection for returned SMS messages.message-sort-order=<order>: The SMS messages sort order as per SQL 'ORDER BY col1, col2, ... ASC|DESC' clause. Default value: 'date DESC'.
(
1b60b23c) -
Add
present,technology,voltage,current_avg,level,scale,charge_counter,energyandcycleproperties to battery API. FixBATTERY_PROPERTY_CURRENT_NOWunit if required. Usepercentagereturned byBATTERY_PROPERTY_CAPACITYinstead of using scale and level as suggested by @Wetitpig in #630. (d5364ef3) -
Add Termux:API app settings activity directly in the app itself so that the main Termux app is not required. Currently, it allows changing the log level. (
ed867bc3) -
Add
last_modifiedattribute fortermux-saf-statandtermux-saf-ls. Co-authored-by: @BryanJacobs and @agnostic-apollo (3f743003) -
Add opus audio encoder. (
992ce17d) -
Add monochrome icon. (
0eae9395) -
Add
DUMPandPACKAGE_USAGE_STATSpermissions. (989a19b7) -
Add
INTERNETpermission. The internet permission may solve problems for Termux app not having internet access if Termux:API app is installed first due to AndroidsharedUserIdbugs which shares permissions across all apps. (ea094b0a) -
Add support for unix filesystem sockets for API communication. (
fe6e3d48) -
Add
workflow_dispatchandcronschedule for "00:15 on 1st of every 2nd month" togithub_action_buildworkflow triggers. (f60affe5) -
Add
capabilitiesfield totermux-wifi-scaninfooutput. Closes #676. (cff225e4) -
Request disable battery optimizations and grant draw over apps permission. (
ba2836ba) -
Add support to send crash notifications if exceptions are caught in
TermuxApiReceiverandResultReturner. This will allow users to know if an exception caused an API command to fail instead of having to checklogcat. Currently,Termux:APIapp is broken a lot and crash reports from users for edge case exceptions or device specific exceptions will help solve such issues. In future, likelystderrwill be used instead, once support is added. (6112bf67) -
Add launcher icon/activity. This must not be allowed to be disabled since there is no other way to start Termux:API app again if it crashes multiple times and gets marked as bad process by android. This is also required to bypass OEM battery restrictions like DuraSpeed. This also easily allows users to know if the app is installed or not. Related issue termux/termux-widget#56. Related issue #447. (
f2c1342f) -
Add storage permissions since
PermissionUtils.checkPermissions()will check if app has requested them before checking if permission is granted. (ec390259) -
Declare
READ_PRIVILEGED_PHONE_STATEpermission forTelephonyAPIIMEI and MEID. (8d6c6ce1) -
Request
ACCESS_BACKGROUND_LOCATIONas required by android 10+.(7ef6b206) -
Add dual sim feature to CallLog api. (
a8574836) -
Notification channel support. Implemented by @tareksander in #477. (
75a5ffe3)
Changed
-
Add
UsbServiceto process usb api requests and fix multiple exceptions for Android 12+ and hang up for Android 14+. Co-authored-by: @agnostic-apollo and @9hm2. Closes #675. (15d5fb62) -
The
TermuxAPILauncherActivityactivity alias has been added forTermuxAPIMainActivity. This will allow disabling the launcher activity, but still allow the main activity to be launched from Termux app. The launcher activity will also now be allowed to be enabled again without having to reinstall the app with theEnable Launcher Iconbutton in the main activity if its currently disabled. (280e5c7c,bab9ef3a) -
Send plugin error notification instead of crash notification for uncaught exceptions for API calls. (
1f4a3f2c) -
Rename
PhotoAPItoCameraPhotoAPI. (ac967e8a) -
Do not hang indefinitely when exceptions are thrown in
TermuxApiReceiverandResultReturner. (3c1a6be8) -
Fix potential NullPointerException in
StorageGetAPIand use FileUtils for missing permissions check. (950f9be3) -
Fix potential NullPointerException in
PhotoAPIand use FileUtils for photo directory creation. (cc186d03) -
Use
TERMUX_API_FILE_SHARE_URI_AUTHORITYfor content provided uri and fix sharing paths with "#". (9a9e3eae) -
Remove hardcoded
com.termuxvalues. (3bea1942) -
Use night-mode instead of use-black-ui termux.properties property for setting DialogActivity theme as per termux/termux-app@6631599f. (
5c71e2df) -
Protect
ShareAPI.ContentProviderwrite access with permission in case it was allowed in future without setting permission. (2968854f) -
Add 5G NR radio support and additional fields for LTE for
TelephonyAPI. (dc89cd69)
Deprecated
- Deprecate
phonekey for message info and replace it withaddressas address column can be a name like service provider instead of a number. (603f6d7c)
Fixed
-
! Fix exception in
SmsInboxAPIfor message address/from selection and use exact match. Users can use%wildcards in the address passed if they want to do prefix/contains/suffix matching. (12e7b651) -
Fix usb fd not being sent due to refactoring in 3c1a6be. Closes #643. (
4c6a5196) -
Fix vibration not happening if duration is under 1000ms and touch vibration is disabled. Closes #666. (
a9abc964) -
Fix exception in ResultReturner while setting result for a non-ordered broadcast. (
e994de52) -
Fix bool extras parsing for
SocketListener. (8bd22936) -
Fix termux-call-log api
IllegalArgumentException: Invalid token LIMITon Android 11+ since limit and offset are being passed as sort parameters instead of query parameters. Closes #434. (11eff565) -
Handle unexpected socket client disconnects. (
a0809090) -
Text not visible when in dark mode for bottom sheet dialog. (
df3cb50b) -
Fix crash if input or output socket extras are not set. (
3b85bc1e) -
Fix exception for missing
android.nfc.action.TECH_DISCOVEREDmeta-data forNfcAPI$NfcActivity. (fab68728) -
Fix typo in
CameraPhotoAPIandStorageGetAPIthat was getting basename instead of dirname of file paths for parent dir. (24fbea78) -
Fix
NullPointerExceptiontriggered when trying to show keyboard without dialog view in focus by pressing outside of bottom sheets dialog. Closes #486. (30a58d7e) -
Prevent multiple calls to
ResultReturner.returnData()inDialogAPIbutton press which throwsIOExceptiondue to connecting to output socket again. (166595c8) -
Catch IllegalStateException "Broadcast already finished" and any other exceptions thrown while finishing ResultSender. (
4c5c27bb) -
Fix NullPointerException when running bell/vibrate on Samsung devices on android 8 and handled deprecated code.
Apparently occurs on only Samsung android 8 devices and there is no fix for vibrator except catching the exception so that app doesn't crash. (
99080bab) -
Fix raw use of parameterized class 'Pair' for NotificationAPI. (
237d36a5) -
Fix potential NullPointerException in NotificationAPI $REPLY parsing. (
94d478d2) -
Exit loop after "android.nfc.tech.Ndef" found in tech list. (
cfdcab92) -
Fallback from cellular to unmetered on Android < 9 for JobSchedulerAPI network requirement. (
58c272ba) -
Check for READ_PHONE_STATE for SmsSend API. (
bf6d834a) -
Add missing return statement after error in onReceiveTelephonyCall() for
TelephonyAPI. (feb568c2) -
Fix socket connection. Implemented by @tareksander in #487. (
f88a6a58)