Skip to content

Latest commit

 

History

History
924 lines (736 loc) · 52.4 KB

CHANGELOG.md

File metadata and controls

924 lines (736 loc) · 52.4 KB

Unreleased

Version 1.69

  • Switch direct boot file migration service from a foreground service to a background service (Issue #574, Issue #576, PR #577 @chenxiaolong)
    • This works around Android bugs on some devices that sometimes result in a notification that doesn't auto-dismiss or a crash after a reboot.

Version 1.68

Version 1.67

Version 1.66

Version 1.65

Version 1.64

Version 1.63

  • Fix removal of restrictions for READ_CALL_LOG permission on Android 14 QPR2 (PR #528 @chenxiaolong)
    • This only affects fresh installs of BCR. Android normally blocks users from granting this permission, even from Android's Settings app. The removal of this restriction now works on Android 14 QPR2 and newer.
  • Update Turkish translations (PR #521 @symbuzzer)
  • Update Polish translations (PR #540 @phyrz91)
  • Add Vietnamese translations (PR #543 @hdzungx)
  • Fix sysconfig file being deleted during OS upgrades when BCR is installed from recovery (PR #541 @chenxiaolong)
  • Update all dependencies (PR #529 @chenxiaolong)
  • Update French translations (PR #548 @NSO73)
  • Work around bug in some custom ROMs where Android sometimes ignores the sysconfig file needed to access hidden/system APIs (Issue #539, Issue #546, PR #549 @chenxiaolong)
    • This affected BCR installations that were flashed via recovery or bundled with the ROM.
    • NOTE: Folks bundling BCR into their Android builds should remove the sysconfig file as it is no longer necessary.

Version 1.62

  • Automatically detect sample rates supported by the output format's encoder (Issue #507, PR #508 @chenxiaolong)
    • Fixes recording failures on Redmi devices due to the OEM removing support for all non-48kHz sample rates from Android's standard Opus encoder.
  • Fix crash when Android returns a null SubscriptionInfo (Issue #513, PR #516 @chenxiaolong)
    • This can happen for third party applications, like SIP clients, that integrate with Android's telephony framework.
  • Update Turkish translations (PR #517 @symbuzzer)
  • Disable recording telecom-integrated applications by default (Issue #513, PR #518 @chenxiaolong)
    • This includes apps, like SIP clients, where recording is unlikely to work properly on any device.
  • Discard recordings that contain complete silence (Issue #513, PR #519 @chenxiaolong)
  • Fix typo in Italian translations (PR #522 @nicorac)
  • Update Traditional Chinese (zh-TW) translations (PR #523 @anenasa)

Version 1.61

Version 1.60

  • Make the sample rate option format-specific instead of global (PR #496 @chenxiaolong)
    • The default sample rate is now also 16 kHz for every format that supports it
  • Add support for AMR-WB and AMR-NB (Issue #264, PR #497 @chenxiaolong)
    • The patents have now expired in North America and Europe.
    • Note that this is a lossy recording even though the raw phone call audio signal is AMR. The modem always decodes the raw AMR audio to PCM. When AMR output in BCR is selected, the PCM audio is reencoded back to AMR.

Behind the scenes changes:

Version 1.59

  • Fix removal of Android's call log permission restriction for fresh installs in Android 14 (PR #481 @chenxiaolong)

Version 1.58

Version 1.57

Version 1.56

Version 1.55

Version 1.54

Version 1.53

It's Android 14 release day! All previous versions of BCR should work on Android 14. This release is just the first one that targets API 34.

Changes:

Version 1.52

  • Instead of graying out Disable battery optimizations, take the user to Android's Settings (Issue #422, PR #424 @chenxiaolong)
    • Android does not provide a way for apps to directly re-enable battery optimizations.

Version 1.51

Version 1.50

Version 1.49

Version 1.48

Non-user-facing changes:

Version 1.47

Version 1.46

Version 1.45

Version 1.44

IMPORTANT: For folks who upgraded from an old BCR version to 1.42 or 1.43, please double check to make sure the auto-record rules are what you expect.

  • Update Polish translations (PR #349 @phyrz91)
  • Fix incorrect/opposite logic in the migration of the old "Initially paused" option (Issue #350, PR #351 @chenxiaolong)
    • Users who toggled the "Initially paused" option in the past (even turning on and then back off) had the setting migrated to the opposite auto-record behavior. For example, initially paused disabled was migrated to auto-record disabled (instead of enabled).

Version 1.43

Version 1.42

Non-user-facing changes:

Version 1.41

Version 1.40

  • Update all dependencies (PR #289 @PatrykMis, PR #294 @PatrykMis)
  • Improve conference call handling (PR #285 @chenxiaolong)
    • Recording a conference call will no longer incorrectly produce extra files for each participant in the call.
    • When using call waiting, the recording is paused for the inactive call so that it doesn't capture the audio for the wrong call.
    • BCR will manually look up the contact name due to an AOSP bug where the call's contact name field is sometimes null for conference calls. As a result of this change, adding the contact name to the output filename is now supported in Android <11.
  • Update Turkish translations (PR #286 @symbuzzer)
  • Fix M4A/AAC output files sometimes getting an incorrect .mp3 file extension due to an Android bug (Issue #292, PR #293 @chenxiaolong)
  • Introduce new output filename templating engine (Issue #288, PR #296 @chenxiaolong, PR #300 @chenxiaolong)
    • See the documentation for details.
    • This completely replaces the old hidden bcr.properties templates. For folks who previously used the old templates, the configuration will be automatically migrated to the new template system.
  • Add support for querying the name from the call log (Issue #291, PR #298 @chenxiaolong)
    • This requires the optional READ_CALL_LOGS permission to be granted.
  • Add support for formatting the phone number as digits only or with the country-specific style (Issue #290, PR #299 @chenxiaolong)
  • Replace slider UI components with chips and the ability to set custom values (Issue #295, PR #301 @chenxiaolong)
  • Remove outline "Reset to defaults" button to make it less prominent (PR #302 @chenxiaolong)

Non-user-facing changes:

Version 1.39

Version 1.38

Version 1.37

Version 1.36

Version 1.35

  • Fix missing BCR app when doing a direct (non-Magisk module) installation (Issue #253, PR #254 @chenxiaolong)
    • This bug was introduced in version 1.34 and was caused by an oversight when adding the workaround for overlayfs.
  • Work around absurdly slow SAF (Android Storage Access Framework) on some devices (Issue #252, PR #257 @chenxiaolong)
    • This fixes audio being chopped off the beginning of the call recording. Some devices' SAF implementations are slow to the point where checking the existence of a file may take upwards of 8 seconds (vs. 2ms with native file access).
    • This only affected users who picked a custom output directory. The default output directory uses native file access instead of SAF.
  • Fix caller ID and contact name potentially ending up in the log file if they change during the middle of a call (PR #258 @chenxiaolong)

Version 1.34

  • Write crash.log to output directory if BCR crashes outside of the scope of a phone call (Issue #243, PR #245 @chenxiaolong)
  • Set default notification importance to high for the persistent notification during a all (Issue #248, PR #249 @chenxiaolong)
    • This makes it easier to access the pause/resume button in the notification.
    • This change only affects new installs and the user's notification preferences in Android's settings will always take precedence.
  • Work around broken NFC and possible bootloops on MIUI when /system contains overlayfs mount points (Issue #242, Issue #246, PR #250 @chenxiaolong)
    • This is only a workaround for a bug in Magisk's mount logic. The actual Magisk bug will be fixed by: topjohnwu/Magisk#6588.

Version 1.33

Version 1.32

Version 1.31

Non-user-facing changes:

Signing changes:

  • Switch from GPG signing to SSH signing for new release zips, git commits, and git tags (PR #229 @chenxiaolong)
    • The goal is to switch to stronger cryptography and rely on a simpler tool that everybody already has installed (including on Windows). For folks who were previously verifying signatures using GPG, please see the updated documentation for how to verify signatures with SSH.
    • For folks who want to verify that this change is legitimate, see commit 0bc3935fe2a1b6e3d56049503db521877501edc1. That commit, which introduced this change, was signed using the original GPG key.
    • The APK signing key remains unchanged.

Version 1.30

Magisk module updater changes:

Documentation changes:

Version 1.29

  • Add a new option for starting the recording in the paused state (Issue #198, PR #211 @chenxiaolong)
    • If enabled, this allows the user to choose whether a call is recorded. If a recording starts in the paused state and is never resumed, then the empty output file is not saved.

Documentation changes:

Version 1.28

  • Inform the user that the device/firmware might not support call recording if an error origates from Android's internal components (PR #206 @chenxiaolong)
  • Fix crash if any filename template value (eg. caller/contact name) contains \ or $ (Issue #207, PR #209 @chenxiaolong)
  • Add support for pausing/resuming the recording (Issue #198, PR #210 @chenxiaolong)
    • The button is in the Call recording in progress notification

Version 1.27

Non-user-facing changes:

Version 1.26

  • Update Turkish and Russian translations (PR #188 @EleoXDA)
  • Add hidden feature to customize the output filename (PR #189 @chenxiaolong)
    • To avoid complicating BCR's code, there is no UI option for this
    • To customize the output filenames, copy the default template to bcr.properties in the output directory and edit the file

Version 1.25

Documentation changes:

Non-user-facing changes:

Version 1.24

  • Notification improvements (PR #169 @chenxiaolong)
    • A notification is now shown when a recording completes, with options for opening or sharing the recording in a 3rd party app.
      • NOTE: Manual action required. For opening/sharing recordings to work, reset the output directory to the default and then select the output directory again. This is required because BCR previously only requested write access to the output directory, but not read access.
      • These new notifications can be disabled in Android's settings by turning off the Success alerts notification channel.
    • The file path in error notifications is now human readable instead of a URL-encoded content://....
  • BCR will explicitly vibrate if vibration is enabled for its notification channels (PR #167 @quyenvsp, PR #171 @chenxiaolong)
    • This is needed because Android will not respect the notification vibration option during a phone call.

Non-user-facing changes:

Version 1.23

Version 1.22

Version 1.21

Version 1.20

Version 1.19

  • Add support for flashing via recovery (Issue #128, PR #130 @chenxiaolong)
    • This is for unrooted (non-Magisk) installs only. BCR will be installed to the system partition directly when flashed via recovery.

Version 1.18

Version 1.17

Version 1.16

Version 1.15

Version 1.14

Non-user-facing changes:

Version 1.13

  • Add Polish translations (PR #76 @uvzen)
  • Target stable API 33 (Tiramisu) (PR #82 @chenxiaolong)
  • Add optional contacts permission to initial permissions prompt (Issue #78, Issue #80, PR #84 @chenxiaolong)
    • If allowed, contact names are added to the output filenames.
    • This feature was implemented in version 1.5, but required the user to manually enable from the system settings.

Non-user-facing changes:

Version 1.12

  • Fix potential crash when showing user-friendly output directory path (PR #74 @chenxiaolong)
    • Fixes regression in version 1.11

Version 1.11

Non-user-facing changes:

Version 1.10

Version 1.9

Version 1.8

Version 1.7

Version 1.6

Non-user-facing changes:

Version 1.5

Version 1.4

Non-user-facing changes:

Version 1.3

Non-user-facing changes:

Version 1.2

Non-user-facing changes:

  • Update gradle and Android gradle plugin dependencies (PR #9 @chenxiaolong)
  • Add git commit to version number for debug builds (PR #14 @chenxiaolong)
  • Ensure custom gradle tasks (moduleProp, permissionsXml, zip, and updateJson) rebuild when input variables (eg. git commit) change (PR #17 @chenxiaolong)

Version 1.1

  • Target Android SDK 32. BCR was previously targeting the Tiramisu (33) preview SDK, which made it not installable on stable Android versions. (Issue #1, PR #2 @chenxiaolong)

Version 1.0

  • Initial release