Version 1.9.0
This commit is contained in:
parent
8e2681fdff
commit
e749cecf53
61
README.md
61
README.md
|
@ -4,7 +4,14 @@
|
|||
|
||||
### Usage
|
||||
|
||||
The compat library may be found on jcenter and Maven Central repository. Add it to your project by adding the following dependency:
|
||||
The DFU library may be found on jcenter and Maven Central repository. Add it to your project by
|
||||
adding the following dependency:
|
||||
|
||||
```Groovy
|
||||
implementation 'no.nordicsemi.android:dfu:1.9.0'
|
||||
```
|
||||
|
||||
For projects not migrated to Android Jetpack, use:
|
||||
|
||||
```Groovy
|
||||
implementation 'no.nordicsemi.android:dfu:1.8.1'
|
||||
|
@ -13,18 +20,28 @@ implementation 'no.nordicsemi.android:dfu:1.8.1'
|
|||
If you use proguard, add the following line to your proguard rules:
|
||||
```-keep class no.nordicsemi.android.dfu.** { *; }```
|
||||
|
||||
Starting from version 1.9.0 the library is able to retry a DFU update in case of an unwanted
|
||||
disconnection. However, to maintain backward compatibility, this feature is by default disabled.
|
||||
Call `initiator.setNumberOfRetries(int)` to set how many attempts the service should perform.
|
||||
Secure DFU will be resumed after it has been interrupted from the point it stopped, while the
|
||||
Legacy DFU will start again.
|
||||
|
||||
### Device Firmware Update (DFU)
|
||||
|
||||
The nRF5x Series chips are flash-based SoCs, and as such they represent the most flexible solution available. A key feature of the nRF5x Series and their associated software architecture
|
||||
and S-Series SoftDevices is the possibility for Over-The-Air Device Firmware Upgrade (OTA-DFU). See Figure 1. OTA-DFU allows firmware upgrades to be issued and downloaded to products
|
||||
in the field via the cloud and so enables OEMs to fix bugs and introduce new features to products that are already out on the market.
|
||||
The nRF5x Series chips are flash-based SoCs, and as such they represent the most flexible solution available.
|
||||
A key feature of the nRF5x Series and their associated software architecture and S-Series SoftDevices
|
||||
is the possibility for Over-The-Air Device Firmware Upgrade (OTA-DFU). See Figure 1.
|
||||
OTA-DFU allows firmware upgrades to be issued and downloaded to products in the field via the cloud
|
||||
and so enables OEMs to fix bugs and introduce new features to products that are already out on the market.
|
||||
This brings added security and flexibility to product development when using the nRF5x Series SoCs.
|
||||
|
||||

|
||||
|
||||
This repository contains a tested library for Android 4.3+ platform which may be used to perform Device Firmware Update on the nRF5x device using a phone or a tablet.
|
||||
This repository contains a tested library for Android 4.3+ platform which may be used to perform
|
||||
Device Firmware Update on the nRF5x device using a phone or a tablet.
|
||||
|
||||
DFU library has been designed to make it very easy to include these devices into your application. It is compatible with all Bootloader/DFU versions.
|
||||
DFU library has been designed to make it very easy to include these devices into your application.
|
||||
It is compatible with all Bootloader/DFU versions.
|
||||
|
||||
[](http://youtu.be/LdY2m_bZTgE)
|
||||
|
||||
|
@ -34,38 +51,50 @@ See the [documentation](documentation) for more information.
|
|||
|
||||
### Requirements
|
||||
|
||||
The library is compatible with nRF51 and nRF52 devices with S-Series Soft Device and the DFU Bootloader flashed on.
|
||||
The library is compatible with nRF51 and nRF52 devices with S-Series Soft Device and the
|
||||
DFU Bootloader flashed on.
|
||||
|
||||
### DFU History
|
||||
|
||||
#### Legacy DFU
|
||||
|
||||
* **SDK 4.3.0** - First version of DFU over Bluetooth Smart. DFU supports Application update.
|
||||
* **SDK 6.1.0** - DFU Bootloader supports Soft Device and Bootloader update. As the updated Bootloader may be dependent on the new Soft Device, those two may be sent and installed together.
|
||||
* **SDK 6.1.0** - DFU Bootloader supports Soft Device and Bootloader update. As the updated
|
||||
Bootloader may be dependent on the new Soft Device, those two may be sent and
|
||||
installed together.
|
||||
- Buttonless update support for non-bonded devices.
|
||||
* **SDK 7.0.0** - The extended init packet is required. The init packet contains additional validation information: device type and revision, application version, compatible Soft Devices and the firmware CRC.
|
||||
* **SDK 8.0.0** - The bond information may be preserved after an application update. The new application, when first started, will send the Service Change indication to the phone to refresh the services.
|
||||
* **SDK 7.0.0** - The extended init packet is required. The init packet contains additional
|
||||
validation information: device type and revision, application version, compatible
|
||||
Soft Devices and the firmware CRC.
|
||||
* **SDK 8.0.0** - The bond information may be preserved after an application update.
|
||||
The new application, when first started, will send the Service Change indication
|
||||
to the phone to refresh the services.
|
||||
- Buttonless update support for bonded devices
|
||||
- sharing the LTK between an app and the bootloader.
|
||||
|
||||
#### Secure DFU
|
||||
|
||||
* **SDK 12.0.0** - New Secure DFU has been released. Buttonless service is experimental.
|
||||
* **SDK 13.0.0** - Buttonless DFU (still experimental) uses different UUIDs. No bond sharing supported. Bootloader will use address +1.
|
||||
* **SDK 14.0.0** - Buttonless DFU is no longer experimental. A new UUID (0004) added for bonded only devices (previous one (0003) is for non-bonded only).
|
||||
* **SDK 13.0.0** - Buttonless DFU (still experimental) uses different UUIDs. No bond sharing
|
||||
supported. Bootloader will use address +1.
|
||||
* **SDK 14.0.0** - Buttonless DFU is no longer experimental. A new UUID (0004) added for bonded
|
||||
only devices (previous one (0003) is for non-bonded only).
|
||||
* **SDK 15.0.0** - Support for higher MTUs added.
|
||||
|
||||
This library is fully backwards compatible and supports both the new and legacy DFU.
|
||||
The experimental buttonless DFU service from SDK 12 is supported since version 1.1.0. Due to the fact, that this experimental service from SDK 12 is not safe,
|
||||
you have to call [starter.setUnsafeExperimentalButtonlessServiceInSecureDfuEnabled(true)](https://github.com/NordicSemiconductor/Android-DFU-Library/blob/release/dfu/src/main/java/no/nordicsemi/android/dfu/DfuServiceInitiator.java#L376)
|
||||
to enable it. Read the method documentation for details. It is recommended to use the Buttonless service from SDK 13 (for non-bonded devices, or 14 for bonded).
|
||||
The experimental buttonless DFU service from SDK 12 is supported since version 1.1.0.
|
||||
Due to the fact, that this experimental service from SDK 12 is not safe, you have to call
|
||||
[starter.setUnsafeExperimentalButtonlessServiceInSecureDfuEnabled(true)](https://github.com/NordicSemiconductor/Android-DFU-Library/blob/release/dfu/src/main/java/no/nordicsemi/android/dfu/DfuServiceInitiator.java#L376)
|
||||
to enable it. Read the method documentation for details. It is recommended to use the Buttonless
|
||||
service from SDK 13 (for non-bonded devices, or 14 for bonded).
|
||||
Both are supported since DFU Library 1.3.0.
|
||||
|
||||
Check platform folders for mode details about compatibility for each library.
|
||||
|
||||
### React Native
|
||||
|
||||
A library for both iOS and Android that is based on this library is available for React Native: [react-native-nordic-dfu](https://github.com/Pilloxa/react-native-nordic-dfu)
|
||||
A library for both iOS and Android that is based on this library is available for React Native:
|
||||
[react-native-nordic-dfu](https://github.com/Pilloxa/react-native-nordic-dfu)
|
||||
|
||||
### Resources
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@ buildscript {
|
|||
google()
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:3.2.1'
|
||||
classpath 'com.android.tools.build:gradle:3.3.1'
|
||||
|
||||
classpath "com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.4"
|
||||
classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1'
|
||||
|
|
|
@ -15,7 +15,7 @@ apply plugin: 'com.jfrog.bintray'
|
|||
ext {
|
||||
PUBLISH_GROUP_ID = 'no.nordicsemi.android'
|
||||
PUBLISH_ARTIFACT_ID = 'dfu'
|
||||
PUBLISH_VERSION = '1.8.1'
|
||||
PUBLISH_VERSION = '1.9.0'
|
||||
|
||||
bintrayRepo = 'android'
|
||||
bintrayName = 'dfu-library'
|
||||
|
@ -45,8 +45,8 @@ android {
|
|||
defaultConfig {
|
||||
minSdkVersion 18
|
||||
targetSdkVersion 28
|
||||
versionCode 22
|
||||
versionName "1.8.1"
|
||||
versionCode 23
|
||||
versionName "1.9.0"
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
|
@ -58,7 +58,7 @@ android {
|
|||
}
|
||||
|
||||
dependencies {
|
||||
implementation 'androidx.core:core:1.1.0-alpha02'
|
||||
implementation 'androidx.core:core:1.1.0-alpha04'
|
||||
implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.0.0'
|
||||
implementation 'androidx.annotation:annotation:1.0.1'
|
||||
implementation 'com.google.code.gson:gson:2.8.5'
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#Mon Oct 01 13:36:04 CEST 2018
|
||||
#Wed Feb 20 13:14:30 CET 2019
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-bin.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip
|
||||
|
|
Loading…
Reference in New Issue