<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Android DFU library</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/51891/android-dfu-library</link><description>Hi!We used a 52832 to make a bracelet. Now some apps on Huawei phones can&amp;#39;t be remotely upgraded by the ring. We have verified that Nordic&amp;#39;s official Android DFU library throws a bug in the firmware upgrade. Therefore, during the upgrade process, whether</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 04 Feb 2021 12:42:58 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/51891/android-dfu-library" /><item><title>RE: Android DFU library</title><link>https://devzone.nordicsemi.com/thread/292903?ContentTypeID=1</link><pubDate>Thu, 04 Feb 2021 12:42:58 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7e21e081-f5db-4ca5-b72a-a75ab6d4e796</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;@Nathan: This is an old case, please create a new case and describe your issue, you can give a link to this case if needed.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Android DFU library</title><link>https://devzone.nordicsemi.com/thread/292736?ContentTypeID=1</link><pubDate>Wed, 03 Feb 2021 15:20:29 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5cd934f7-75e9-406e-9eb2-6867723a77db</guid><dc:creator>Nathan</dc:creator><description>&lt;p&gt;I just ran into this issue myself, using SDK 15.3.0 and a Pixel 3a Android phone using the latest version of the nRF Connect app. After pressing the DFU button and selecting the file, the app would push the board into bootloader and&amp;nbsp;the&amp;nbsp;upgrade would start, but I&amp;#39;d get the &amp;quot;bytes were lost&amp;quot; and &amp;quot;CRC does not match&amp;quot; messages in the log and it would quickly fail. The phone&amp;#39;s DFU retry procedure would start, but the board would disconnect and refuse to advertise until it times back out to the originally loaded application.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I noticed that if I allowed the app to push the board into bootloader and then immediately closed and restarted the phone app, when I subsequently reconnected to the board and hit the DFU button again, the procedure would succeed this time. I think there&amp;#39;s some kind of timing issue where the bootloader is too busy doing something when it first starts up and it winds up dropping incoming data if the DFU procedure starts too quickly.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration:line-through;"&gt;For now I&amp;#39;ve also discovered a temporary workaround where I limit the maximum MTU size in the bootloader via&amp;nbsp;NRF_SDH_BLE_GATT_MAX_MTU_SIZE to 63, instead of the default 247. If I do that,&amp;nbsp;the whole DFU process works perfectly without requiring me to reset the phone app in the middle of the procedure.&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I can get full traces of everything once I have the the time (wireshark OTA capture, nRF logger output, video recording of the phone side plus logs), but I&amp;#39;m a little too busy at the moment.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Edit: Scratch the workaround, I just got lucky a couple times. Still trying to find a way to solve.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Android DFU library</title><link>https://devzone.nordicsemi.com/thread/211650?ContentTypeID=1</link><pubDate>Wed, 25 Sep 2019 01:59:45 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f713d0a7-8380-4afd-94ed-577d5b59bd68</guid><dc:creator>Mihua</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I will write a mail &lt;span&gt;to contact you. If you don&amp;#39;t receive it, let me know&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Android DFU library</title><link>https://devzone.nordicsemi.com/thread/211409?ContentTypeID=1</link><pubDate>Tue, 24 Sep 2019 05:06:25 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:337c0c0e-8f93-4c64-8643-9e5f044f16ad</guid><dc:creator>yangamin</dc:creator><description>&lt;p&gt;If there is a local FAE to help solve it, of course, the best, before giving us technical support is James Xing&lt;br /&gt;We are in Huizhou City, Guangdong Province, China, the distributor is Arrow&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Android DFU library</title><link>https://devzone.nordicsemi.com/thread/210848?ContentTypeID=1</link><pubDate>Fri, 20 Sep 2019 07:49:57 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ad8fbc3a-67ff-4fa6-a8a0-72f24cee1839</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Yangamin,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;I think it&amp;#39;s easier if we can have a local FAE help you debug this. Could you let me know who was helping you earlier ? Was him from Nordic ?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Also please let me know your location (city ) and the distributor that working with you so we can allocate an FAE to you.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Regarding the sniffer, you may need to check the content of the snfifer trace to see if you actually can see a connection or not. We have an video &lt;a href="https://www.youtube.com/watch?v=Sccst1loWbU"&gt;here&lt;/a&gt;&amp;nbsp;It&amp;#39;s for older version of the sniffer but the trace should look similar. It&amp;#39;s important that the sniffer catch the connect request.&lt;/p&gt;
&lt;p&gt;Please send the whole log, of the CRC issue.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;IS_SRVC_CHANGED_CHARACT_PRESENT&amp;nbsp;should only present on the bootloader and the application, not on the DFU library on the phone. Please double check if you have it in your application (the bracelet firmware)&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Android DFU library</title><link>https://devzone.nordicsemi.com/thread/210801?ContentTypeID=1</link><pubDate>Fri, 20 Sep 2019 00:32:02 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:870d5924-a7b7-4465-bf7f-30ea1c789528</guid><dc:creator>yangamin</dc:creator><description>&lt;p&gt;The data we captured you said is not connected, we capture the following:&lt;br /&gt;1. Open wireshark, find sniffer and open&lt;br /&gt;2. Find the bracelet to upgrade&lt;br /&gt;3.APP connects the bracelet and starts capturing data.&lt;br /&gt;4.APP issues an upgrade command&lt;br /&gt;Please tell us how to capture the connection status or the data you need?&lt;br /&gt;The CRC problem and &amp;quot;remote dfu not supported&amp;quot; are a problem. The CRC problem is that the development side reports an error, and &amp;quot;remote dfu not supported&amp;quot; is an error reported by the APP client.&lt;/p&gt;
&lt;p&gt;IS_SRVC_CHANGED_CHARACT_PRESENT is enabled in the bootloader and pm_local_database_has_changed() is called. The IS_SRVC_CHANGED_CHARACT_PRESENT field is not found in the DFU library (provided by your company). Please tell us how to handle it&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Android DFU library</title><link>https://devzone.nordicsemi.com/thread/209774?ContentTypeID=1</link><pubDate>Mon, 16 Sep 2019 08:52:43 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6b0c818a-b3d2-49f4-b4f3-171970aa24ed</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;No, when the protocol is encrypted you should stil be able to see the connection before it&amp;#39;s encrypted (connect request, encryption request etc ). Please try capture more trace.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I don&amp;#39;t see the issue DFU getting to 4% in the video ? Are you saying that there are different issues ?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Please try explaining when you receive the &amp;quot;CRC issue&amp;quot; and when you get the &amp;quot;r&lt;span&gt;emote dfu not supported&amp;quot; ?&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Please have a look at the description of&amp;nbsp;&lt;a href="https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.sdk5.v15.3.0/group__peer__manager.html?resultof=%22%70%6d%5f%6c%6f%63%61%6c%5f%64%61%74%61%62%61%73%65%5f%68%61%73%5f%63%68%61%6e%67%65%64%22%20#gaaecb7f99f58d71f085f62f5cc5267508"&gt;pm_local_database_has_changed&lt;/a&gt;() to know how it works. But you need to make sure&amp;nbsp;&amp;nbsp;IS_SRVC_CHANGED_CHARACT_PRESENT&amp;nbsp; is enabled.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Please have a look at the buttonless example at&amp;nbsp;&lt;strong&gt;\examples\ble_peripheral\experimental_ble_app_buttonless_dfu&lt;/strong&gt; to see how it works.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Android DFU library</title><link>https://devzone.nordicsemi.com/thread/209738?ContentTypeID=1</link><pubDate>Mon, 16 Sep 2019 03:02:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1d081d99-f1bb-493f-94a6-e4f78a9898e6</guid><dc:creator>yangamin</dc:creator><description>&lt;p&gt;&lt;span&gt;Hi Hung Bui,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The packet sent to you is indeed connected. Is it because the Bluetooth protocol layer is encrypted? Can we only use the sniffer to capture the broadcast packet? So what you see is the unconnected state.We don&amp;#39;t have any other methods of capturing packets. If there is a way, please guide us.&lt;/p&gt;
&lt;p&gt;In addition, the pm_local_database_has_changed() you are talking about is not called in our program. If this is the case, what does the function do? Where is it called? Please explain.&lt;/p&gt;
&lt;p&gt;The CRC check in the original question is also the error reported when the DFU is upgraded to 4%. What is the problem?&lt;/p&gt;
&lt;p&gt;Thank you for your reply！&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Android DFU library</title><link>https://devzone.nordicsemi.com/thread/209339?ContentTypeID=1</link><pubDate>Thu, 12 Sep 2019 08:35:52 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:77aa4ffb-914f-40e4-92c0-bc853a854a0a</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Yangamin,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The error &amp;quot; Remote DFU not supported&amp;quot; usually happens when the phone caches the attribute table of the device when running in normal operation mode. Then when the device switching to bootloader mode the phone doesn&amp;#39;t do a new service discovery. This results that the phone couldn&amp;#39;t find the DFU service to do DFU and report that &amp;quot;Remote DFU not supported&amp;quot;.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If we can have a sniffer trace of the process it could be more clear if it&amp;#39;s the case.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The way to fix this is to make sure you have service changed characteristic on both the application and the bootloader. And send a service changed indication when you switch. Please look for&amp;nbsp;IS_SRVC_CHANGED_CHARACT_PRESENT in your code and check if you call pm_local_database_has_changed() or not&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;However, this issue should not be related to what you described in the original question, where the CRC error happens. Please try to get another log and sniffer trace.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Android DFU library</title><link>https://devzone.nordicsemi.com/thread/209284?ContentTypeID=1</link><pubDate>Thu, 12 Sep 2019 02:29:40 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8a67d1ba-59db-4996-8284-b993a3516e76</guid><dc:creator>yangamin</dc:creator><description>&lt;p&gt;Hi Hung Bui，&lt;/p&gt;
&lt;p&gt;Thank you very much for your reply. The FAE in China does not know how to solve this problem, so we will contact you directly. Please help me solve it.&lt;/p&gt;
&lt;p&gt;I will describe to you the process of upgrading with the&amp;nbsp;app.First bind the bracelet to the APP and log in, then use the APP to send an upgrade command to the bracelet and wait for the upgrade.&amp;ldquo;升级&amp;rdquo; means upgrade at video 48s， after the data may be what you need&lt;/p&gt;
&lt;p&gt;The app obtains the interface at &lt;a href="https://github.com/NordicSemiconductor/Android-DFU-Library/tree/release/documentation"&gt;github.com/.../documentation&lt;/a&gt;. The code related to the data sent by the mobile phone in the firmware upgrade is in the DFU library, so the mobile phone sends and receives during the upgrade process. What, our APP is unable to find out.&lt;/p&gt;
&lt;p&gt;The bootloader is yours.Is it buttonless update.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Using the nrfConnect official app to upgrade with the same offline package can be successful&lt;/span&gt;&amp;nbsp;(including Huawei mobile phones)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Android DFU library</title><link>https://devzone.nordicsemi.com/thread/209217?ContentTypeID=1</link><pubDate>Wed, 11 Sep 2019 14:08:49 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3344a960-40fc-40ab-9e92-412d894a40bb</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;I&amp;#39;m not familiar with the app you showed. I&amp;#39;m not sure what&amp;nbsp;exactly the app doing.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;You would need to describe me:&lt;/p&gt;
&lt;p&gt;- How does the DFU process should work ? Could you describe a normal DFU update process as you know ?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- Do you use our bootloader or use your own bootloader ?&lt;/p&gt;
&lt;p&gt;- Is it buttonless update or it requires switching to bootloader via a button press ?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- We can&amp;#39;t really read Chinese so it&amp;#39;s harder for us to understand what you show. I would suggest you to contact our local FAE to get more help. Do you have contact to our local support in china ?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- The sniffer trace&amp;nbsp;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/d0.pcapng"&gt;d0.pcapng&lt;/a&gt;&amp;nbsp;doesn&amp;#39;t contain any data about a connection, it only has the advertising packets which don&amp;#39;t help much.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- Please try to test using nRFToolbox/nRFConnect and record the screen.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Android DFU library</title><link>https://devzone.nordicsemi.com/thread/209146?ContentTypeID=1</link><pubDate>Wed, 11 Sep 2019 11:18:25 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e24bfc73-db92-4e32-bdea-7899d16aa77c</guid><dc:creator>yangamin</dc:creator><description>&lt;p&gt;Hi Hung Bui,&lt;/p&gt;
&lt;p&gt;The following models of HUAWEI mobile phone upgrades have failed:&lt;br /&gt;Hai Si Kirin 970: Glory V10\Note 10\Play, Huawei P20 Pro\nova 3\Mate 10&lt;/p&gt;
&lt;p&gt;Kirin 659: Glory 9 Youth Edition \ Play 7X \ Mai Mang 6 \nova 2 \nova 3e \ Enjoy 7s&lt;/p&gt;
&lt;p&gt;Kirin 960:nova 2S, glory 9&lt;/p&gt;
&lt;p&gt;You said that the nRFToolbox DFU tool upgrade package failed to upload. I checked it. This tool is only suitable for Q8 smart bracelet upgrade.&lt;/p&gt;
&lt;p&gt;The data packet we obtained with nrf sniffer &lt;span&gt;d0:77:21:0c:14:cd&lt;/span&gt;&amp;nbsp;should be the data of the upgrade process, please answer this question, if my way is wrong, please guide.Attachment is the upgrade process video, please check.Thank you!&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/dfu-upload--fail.mp4"&gt;devzone.nordicsemi.com/.../dfu-upload--fail.mp4&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Android DFU library</title><link>https://devzone.nordicsemi.com/thread/208907?ContentTypeID=1</link><pubDate>Tue, 10 Sep 2019 11:42:13 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:85cf0c91-a50b-4ab2-a430-03a8ba6be4bd</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Yangamin,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;By &amp;quot;image&amp;quot; I meant the DFU image/firmware you use to update. The firmware inside the .zip file.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;So what you meant was that if you use non- Huawei phone, you can do DFU update on the ring , but if do DFU update on the Huawei phone, you can&amp;#39;t do DFU update&amp;nbsp; ?&lt;/p&gt;
&lt;p&gt;Have you tried DFU using the nRFToolbox DFU app ?&amp;nbsp; In the sniffer trace you provided (d0.pcapng) there was no connection. Only advertising packets. Please make sure you capture the connection.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Please try to record the phone&amp;#39;s screen when you do DFU, also please try capture a new sniffer trace.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Android DFU library</title><link>https://devzone.nordicsemi.com/thread/208788?ContentTypeID=1</link><pubDate>Tue, 10 Sep 2019 05:38:31 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1c187b79-4ade-47a8-be9f-c7ce9dcd3ca6</guid><dc:creator>yangamin</dc:creator><description>&lt;p&gt;Hi Hung Bui,&lt;/p&gt;
&lt;p&gt;In short, the wristband APP on Huawei mobile phones cannot be remotely upgraded by the ring, Is it a problem with DFU lib?&lt;/p&gt;
&lt;p&gt;Answer your questions:&lt;/p&gt;
&lt;p&gt;1.Attachment 1 is to use nrf sniffer to obtain data for non-Huawei mobile phone opponent ring upgrade, the MAC address is c8:d4:1d:72:1d:ac;&lt;br /&gt;Attachment 2 is the data of Huawei mobile phone opponent ring upgrade, the MAC address is d0:77:21:0c:14:cc,&amp;nbsp;the data transmission process fails &amp;nbsp;and the error is &amp;quot;remote dfu not supported&amp;quot;.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://devzone.nordicsemi.com/resized-image/__size/320x240/__key/communityserver-discussions-components-files/4/remote-dfu-not-supported.jpg" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;2.What is mean &amp;quot;image&amp;quot;?The SDK we use is 12.3, the bootloader data mainly changes the display and timeout restart part.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/c8.pcapng"&gt;devzone.nordicsemi.com/.../c8.pcapng&lt;/a&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/d0.pcapng"&gt;devzone.nordicsemi.com/.../d0.pcapng&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Android DFU library</title><link>https://devzone.nordicsemi.com/thread/208738?ContentTypeID=1</link><pubDate>Mon, 09 Sep 2019 14:38:35 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bd53cc94-f810-4d8a-bd78-a10f7976dc27</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Yangamin,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;It&amp;#39;s quite hard to understand what you describing.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;From the log it seems that the CRC was incorrect.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Could you provide the whole logging data ?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Which image did you use to test ? Which SDK did you use ? Do you have any modification to the bootloader ?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Could you provide the sniffer trace ?&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>