Skip to content

Conversation

@jobschepens
Copy link

Pull Request

Description

Adds full compatibility for the Hammerhead Karoo 2 (Android 8 / API 26) by removing incompatible permissions and updating dependencies. This allows the extension to run on both Karoo 2 and Karoo 3 devices using the same single APK.

Type of Change

  • Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update
  • Code refactoring
  • Performance improvement
  • Test addition or update

Related Issue

Fixes # (None - Feature request)

Changes Made

  • Removed BLUETOOTH_SCAN and BLUETOOTH_CONNECT permissions from AndroidManifest.xml (these Android 12 permissions cause crash loops on Android 8).
  • Removed unused nordic-ble-client dependency which was adding unnecessary weight and potential conflicts.
  • Updated README.md to explicitly mention Karoo 2 & 3 support.
  • Updated SKILL.md and copilot-instructions.md with Karoo 2 development guidelines.

Algorithm Changes

  • No algorithm changes
  • Modified existing algorithm:
  • Added new algorithm:
  • Includes scientific references

Testing

  • Tested on Karoo 2 device (Sideloaded APK successfully)
  • Tested on Karoo 3 device
  • Tested with indoor trainer
  • Tested with outdoor ride
  • Unit tests added/updated
  • Manual testing performed (Verified App Drawer entry, Service start, and Data Field availability)

Test Configuration

  • CP: N/A
  • W': N/A
  • Algorithm: Skiba 2014 Differential
  • Firmware version: Karoo 2 (KOS 1.548.2092+)

Checklist

  • My code follows the project's coding standards
  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • I have updated the documentation (README, docs, etc.)
  • My changes generate no new warnings or errors
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • I have checked my code for potential performance issues
  • I have verified that the APK builds successfully

Screenshots/Videos

N/A (Backend/Compatibility change only)

Additional Notes

The nordic-ble-client library was confirmed to be unused in the codebase (0 references found), so its removal is safe and reduces APK size. The app relies correctly on KarooSystemService for data, which works on both K2 and K3.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant