Skip to content

RDKTV-39792:[RDKV] Xumo TV devices with older builds failing to upgrade due to image verification failure error#208

Open
mkadinti wants to merge 43 commits into
topic/RDKTV-39792from
develop
Open

RDKTV-39792:[RDKV] Xumo TV devices with older builds failing to upgrade due to image verification failure error#208
mkadinti wants to merge 43 commits into
topic/RDKTV-39792from
develop

Conversation

@mkadinti
Copy link
Copy Markdown
Contributor

No description provided.

satya200 and others added 5 commits March 6, 2026 17:51
RDKTV-39792:[RDKV] Xumo TV devices with older builds failing to upgrade due to image verification failure error
* RDK-58925:[RDK-E] Run fwupdater as a Daemon with D-Bus API Handling -  updating testClient for - signals option - core debug

* RDK-58925:[RDK-E] Run fwupdater as a Daemon with D-Bus API Handling -  updating testClient for - signals option - core debug

* RDK-58925:[RDK-E] Run fwupdater as a Daemon with D-Bus API Handling -  updating testClient for - signals option - core debug

* RDK-58925:[RDK-E] Run fwupdater as a Daemon with D-Bus API Handling -  updating testClient for - signals option - core debug

* RDK-58925:[RDK-E] Run fwupdater as a Daemon with D-Bus API Handling -  updating testClient for - signals option - core debug

* RDK-58925:[RDK-E] Run fwupdater as a Daemon with D-Bus API Handling -  updating testClient for - signals option - core debug - tral fix

* RDK-58925:[RDK-E] Run fwupdater as a Daemon with D-Bus API Handling -  Enhanced testClient

* RDK-58925:[RDK-E] Run fwupdater as a Daemon with D-Bus API Handling -  img validation enhancement

* RDK-58925:[RDK-E] Run fwupdater as a Daemon with D-Bus API Handling -  unittests

* RDK-58925:[RDK-E] Run fwupdater as a Daemon with D-Bus API Handling -  PR Clean up

* Delete src/test/rdkfw_test_client.c

* RDK-58925:[RDK-E] Run fwupdater as a Daemon with D-Bus API Handling -  l2 unittests

* RDK-58925:[RDK-E] Run fwupdater as a Daemon with D-Bus API Handling -  Coverity fixes

* Uncomment git commands in cov_build.sh

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates-compile fix

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates-Asyn task fix

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates-Asyn task fix

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- blackduck error fix

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- blackduck error fix

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- XML fiux

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- XML fiux

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates-Issue fix in integrating rdkv_upgrade_request()

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates-UT Issue fix in progress callback

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates-UT Issue fix in progress callback

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates-UT Issue fix in progress callback

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- Core Debug in downloadFile()

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- Core Debug in downloadFile()

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- Core Debug in downloadFile()

* Refactor RdkUpgradeContext_t structure and comments

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates-UT Issue fix in progress callback - debug logs

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates-UT Issue fix in progress callback - debug logs

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates-UT Issue fix in progress callback

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates-UT Issue fix in progress callback

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates-UT Issue fix in progress callback - clean up

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates-UT Issue fix in progress callback - clean up

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates-UT Issue fix in progress callback - clean up

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates-UT Issue fix in progress callback - clean up

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates-UT Issue fix in progress callback - clean up

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates-UT Empty field check

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates-Enahanced duplicate request handlign - DownloadFW

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API validations

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API validations

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation - flashImage() integrated

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation - Compilation fix

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation - Compilation fix

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation - dev testing - validation failed fix

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation - dev testing - FlashImge - null server_url fix

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation - dev testing - test client update and Review comments addressing

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation - dev testing - testClient Update

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation - dev testing - testClient log enhancement

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation - dev testing - testClient log enhancement - removed concurrent test cases

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation - Coverity issue fix

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation - Blackduck fix

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation - coverity fix

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation - added header in testClient.c

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation - Coverity fix

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation - Coverity fix

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation - modifications in adressing comments

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation - modifications in adressing comments

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation - modifications in adressing comments

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation - modifications in adressing comments

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation - L1 fixed for exiting tests

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation - Unit tests for XConf Fetching

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation - Unit tests for XConf Fetching

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation - reveritng .md files

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation - reverting README.md file removal

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- partial L1 tests

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L1 for cache helper functions

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L1 xconf cache load functions

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L1 xconf cache load functions- DownlaodFirmware test cases

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L1 xconf cache load functions- DownlaodFirmware test cases

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L1 xconf cache load functions- DownlaodFirmware test cases

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L1 xconf cache load functions- UT compile fail debug

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L1 xconf cache load functions- UT compile fail debug - 2

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L1 xconf cache load functions- UT compile fail debug - 2

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L1 xconf cache load functions- UT compile fail debug - 3

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L1 xconf cache load functions- UT compile fail debug - 4

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L1 xconf cache load functions- UT compile fail debug - 5

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L2 for CheckForUpdate

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L2 for CheckForUpdate

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L2 for CheckForUpdate

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L1 clean up

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L1 clean up - compile fail fix

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L1 clean up - L2 for Basic register, unregister and CheckForUpdate

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L1 clean up - L1 - PR compile fix

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Seperated integration tests for Register

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Seperated integration tests for Register

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- updated run_l2.sh

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Seperated Integration tests fot UnregisterProcess

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Seperated Integration tests fot UnregisterProcess

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Seperated Integration tests for CheckForUpdate

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Adressing Review comments on cov_build.sh

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Adressing review comments

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Adressing review comments

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Adressing review comments

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Adressing review comments

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Adressing review comments

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Adressing review comments

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Adressing review comments by copilot in src/dbus/rdkv_dbus_server.c

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Review reports by Copilot

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Review reports by Copilot

* Update Initial_REVIEW_rdkv_dbus_server.md

* Update DEMO_Comments.md

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Adressing review comments

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Adressing review comments

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Adressing review comments

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Adressing review comments

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Adressing review comments

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Adressing review comments

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Adressing review comments

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- UT - 43% achieved

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- UT - 59.2% achieved

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- UT - 64.1% achieved

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Adressing review comments by copilot in src/dbus/rdkv_dbus_server.c

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L2 for Download Firmware

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L2 for Download Firmware

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L2 updated for DownloadFirmware

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L2 updated for DownloadFirmware

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L2 updated for UpdateFirmware

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L2 updated for UpdateFirmware

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L2 updated for UpdateFirmware

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- PR cleanup

* Delete DEMO_Comments.md

* Delete Initial_REVIEW_rdkv_dbus_server.md

* Delete LINK_TIME_SYMBOL_INTERPOSITION.md

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- PR cleanup

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- run_l2.sh changes to start dbus deamon

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- run_l2.sh changes to start dbus deamon

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- run_l2.sh changes to start dbus deamon

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- run_l2.sh changes to start dbus deamon

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- run_l2.sh changes to start dbus deamon

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- run_l2.sh changes to start dbus deamon

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Coverity issue fix

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Coverity issue fix

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Coverity issue fix

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Coverity issue fix

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Coverity issue fix

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Coverity issue fix

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Coverity issue fix

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Coverity issue fix

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Coverity issue fix

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Coverity issue fix

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Coverity issue fix

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Review comments

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Review comments

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- rdk_logger_ext_init applied

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- rdk_logger_ext_init applied

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- rdk_logger_ext_init applied

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- rdk_logger_ext_init applied

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- rdk_logger_ext_init applied

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- UT fix after coverity fixes

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- UT fix after coverity fixes

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- UT failure fix

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L2 failure fix  - to compile with rdk_logger fix

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L2 failure fix  - to compile with rdk_logger fix

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L2 failure fix  - to compile with rdk_logger fix

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- removed adapted changes from rdk_logger

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- removed adapted changes from rdk_logger

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- removed adapted changes from rdk_logger

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- removed adapted changes from rdk_logger

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- removed adapted changes from rdk_logger

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- removed adapted changes from rdk_logger

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- removed adapted changes from rdk_logger

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- removed adapted changes from rdk_logger

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- removed adapted changes from rdk_logger

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- PR clean up

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- PR clean up

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- PR clean up

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- PR clean up

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- PR clean up

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- PR clean up

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- PR clean up

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- PR clean up

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- PR clean up

* RDK-60261:Implement software update service layer library- Implement RegisterProcess- adding rdkFwupdateMgr_client.h header

* RDK-60261:Implement software update service layer library- Implement RegisterProcess- adding rdkFwupdateMgr_client.h header

* Update src/device_status_helper.c

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update test/functional-tests/tests/test_dbus_CheckForUpdate.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update test/functional-tests/tests/test_dbus_DownloadFirmware.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update test/functional-tests/tests/test_dbus_DownloadFirmware.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update test/functional-tests/tests/test_dbus_UpdateFirmware.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update test/functional-tests/tests/test_dbus_UpdateFirmware.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update test/functional-tests/tests/test_dbus_DownloadFirmware.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update test/functional-tests/tests/test_dbus_DownloadFirmware.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* RDK-60261:Implement software update service layer library- Implement RegisterProcess- adding  initial src files

* Update test/functional-tests/tests/test_dbus_DownloadFirmware.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* RDK-60261:Implement software update service layer library- Implement RegisterProcess- Updated public header

* RDK-60261:Implement software update service layer library- Implement RegisterProcess- Updated public header

* RDK-60261:Implement software update service layer library- Implement RegisterProcess- Updated public header

* Update rdkFwupdateMgr_client.h

* Update rdkFwupdateMgr_client.h

* Update rdkFwupdateMgr_client.h - input params to Download and Update FW APIs

* Update rdkFwupdateMgr_client.h

* Update rdkFwupdateMgr_client.h

* RDK-60767:Address Review comments / change in design for CheckForUpdate

* RDK-60767:Address Review comments / change in design for CheckForUpdate

* RDK-60767:Address Review comments / change in design for CheckForUpdate

* RDK-60767:Address Review comments / change in design for CheckForUpdate

* RDK-60767:Address Review comments / change in design for CheckForUpdate - optout

* RDK-60768:Modify deamon logic to handle exit() scenarios in shared libraries

* RDK-60768:Modify deamon logic to handle exit() scenarios in shared libraries

* RDK-60768:Modify deamon logic to handle exit() scenarios in shared libraries- addressing copilot review

* RDK-60768:Modify deamon logic to handle exit() scenarios in shared libraries- addressing copilot review

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update librdkFwupdateMgr/include/rdkFwupdateMgr_client.h

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* RDK-60768:Modify deamon logic to handle exit() scenarios in shared libraries- addressing copilot review

* RDK-60768:Modify deamon logic to handle exit() scenarios in shared libraries- fixing UT

* RDK-60768:Modify deamon logic to handle exit() scenarios in shared libraries- fixing UT

* RDK-60768:Modify deamon logic to handle exit() scenarios in shared libraries- fixing UT

* Delete EXIT_CALL_ELIMINATION_GUIDE.md

* Delete UNITTEST_CHANGES_EXPLAINED.md

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* RDK-60261:Implement software update service layer library-Addressing copilot reviews

* RDK-60261:Implement software update service layer library-Addressing copilot reviews

* RDKEMW-14991:[Xione UK] - Firmware download should not happen when throttle speed is set to 0

* RDKEMW-14991:[Xione UK] - Firmware download should not happen when throttle speed is set to 0

* RDKEMW-14991:[Xione UK] - Firmware download should not happen when throttle speed is set to 0

* RDK-60261:Implement software update service layer library- UT fix- added mock for a new function

* RDK-60261:Implement software update service layer library- UT fix- added mock for a new function

* RDK-60261:Implement software update service layer library- UT fix- added mock for a new function

* Update rdkFwupdateMgr_client.h

* RDK-60261:Implement software update service layer library- UT fix- added mock for a new function

* RDK-60261:Implement software update service layer library- UT fix- added mock for a new function

* RDK-60261:Implement software update service layer library- UT fix- added mock for a new function

* RDK-60261:Implement software update service layer library- UT fix- added mock for a new function

* RDK-60261:Implement software update service layer library- removed tests that were written for old CHeckForUpdate and Downlaod Firmware design

* RDK-60261:Implement software update service layer library- removed tests that were written for old CHeckForUpdate and Downlaod Firmware design

* RDK-60261:Implement software update service layer library- Coverity issues

---------

Co-authored-by: mkadinti <madhunarasimhulu@gmal.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Enable rdkfwmanager interface lib support
@mkadinti mkadinti requested a review from a team as a code owner March 10, 2026 07:11
Copilot AI review requested due to automatic review settings March 10, 2026 07:11
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR addresses upgrade failures on older Xumo TV builds by introducing explicit upgrade-library error codes (instead of exiting), improving error reporting, and enhancing D-Bus download behavior via cached XConf metadata. It also updates unit/functional test scaffolding and adds initial build/public-header wiring for a client library.

Changes:

  • Add upgrade-library error codes + rdkv_upgrade_strerror() and propagate fatal conditions via return codes instead of exit(1).
  • Update daemon/CLI flows to handle negative “library error” returns and improve DownloadFirmware URL resolution using in-memory/file XConf cache.
  • Adjust test mocks/build scripts and add an initial client library header + build target wiring.

Reviewed changes

Copilot reviewed 30 out of 30 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
unittest/test_dbus_fake.cpp Updates copyright year in unit test file header.
unittest/rdkfwupdatemgr_main_flow_gtest.cpp Switches g_DeviceUtilsMock global handling to shared global header/pointer.
unittest/rdkFwupdateMgr_handlers_gtest.cpp Removes/adjusts tests and updates mock lambda signatures to const RdkUpgradeContext_t*.
unittest/mocks/rdkFwupdateMgr_mock.h Updates mock interface signature for rdkv_upgrade_request to match const-correct production API.
unittest/mocks/rdkFwupdateMgr_mock.cpp Moves device utils stubs out; adds handler dependency stubs (incl. rdkv_upgrade_strerror, getOPTOUTValue).
unittest/mocks/deviceutils_mock.cpp Defines g_DeviceUtilsMock global pointer in one place for all test binaries.
unittest/mocks/dbus_handlers_gmock.cpp Adds additional stubs for handler tests (DownloadFirmware/opt-out/strerror).
unittest/miscellaneous_mock.cpp Aligns mock signatures (e.g., checkAndEnterStateRed now returns int) and adds strerror/handler stubs under test flags.
unittest/deviceutils_mock_global.h New shared header declaring extern DeviceUtilsMock *g_DeviceUtilsMock.
unittest/deviceutils/deviceutils_gtest.cpp Stops defining g_DeviceUtilsMock locally; relies on shared global.
unittest/basic_rdkv_main_gtest.cpp Switches to shared g_DeviceUtilsMock declaration and includes new global header.
unittest/Makefile.am Updates unit test source lists and mock linkage (notably adds deviceutils_mock.cpp to some targets).
test/functional-tests/tests/test_dbus_UpdateFirmware.py Minor cleanup of unused variables/imports in UpdateFirmware functional test.
test/functional-tests/tests/test_dbus_DownloadFirmware.py Changes helper import style and adjusts some local variable usage/exception handling.
test/functional-tests/tests/test_dbus_CheckForUpdate.py Changes helper import style and removes an unused import.
src/rdkv_upgrade.c Adds rdkv_upgrade_strerror, converts fatal exits into return codes, and checks checkAndEnterStateRed() return.
src/rdkv_main.c Handles negative library errors from rdkv_upgrade_request (CLI exits on fatal library errors).
src/rdkFwupdateMgr.c Handles negative library errors from rdkv_upgrade_request (daemon logs and continues).
src/include/rdkv_upgrade.h Introduces negative-valued library error enum and declares rdkv_upgrade_strerror(int).
src/include/device_status_helper.h Changes checkAndEnterStateRed signature to return int.
src/device_status_helper.c Implements checkAndEnterStateRed as non-exiting and returns status to caller.
src/dbus/rdkv_dbus_server.c Updates DownloadFirmware validation and resolves effective download URL via in-memory/file XConf cache.
src/dbus/rdkFwupdateMgr_handlers.h Updates DownloadFirmware API signature and exposes cache helper APIs for daemon/tests.
src/dbus/rdkFwupdateMgr_handlers.c Adds global in-memory XConf cache + opt-out response helper and adjusts cache saving behavior.
src/chunk.c Converts “force exit” behavior into negative library return code and includes upgrade error header.
run_l2.sh Removes --enable-extended-logger from configure invocation.
librdkFwupdateMgr/include/rdkFwupdateMgr_client.h Adds initial public client API header for D-Bus clients.
cov_build.sh Adjusts build steps and removes --enable-extended-logger.
Makefile.am Adds librdkFwupdateMgr.la target and installs its public header.
CHANGELOG.md Updates changelog with new release notes entries.
Comments suppressed due to low confidence (2)

test/functional-tests/tests/test_dbus_DownloadFirmware.py:33

  • The import was changed to import rdkfw_test_helper, but the module’s helpers are still used unqualified (e.g., initial_rdkfw_setup(), remove_file()). This will raise NameError when running the tests. Please either switch back to from rdkfw_test_helper import ... or prefix all helper calls with rdkfw_test_helper..
import rdkfw_test_helper

# D-Bus Configuration
DBUS_SERVICE_NAME = "org.rdkfwupdater.Service"
DBUS_OBJECT_PATH = "/org/rdkfwupdater/Service"
DBUS_INTERFACE = "org.rdkfwupdater.Interface"
DAEMON_BINARY = "/usr/local/bin/rdkFwupdateMgr"

test/functional-tests/tests/test_dbus_CheckForUpdate.py:32

  • The import was changed to import rdkfw_test_helper, but helper functions are still called unqualified (e.g., rename_file(), write_on_file(), remove_file()). This will raise NameError when running the tests. Please either revert to from rdkfw_test_helper import ... or prefix calls with rdkfw_test_helper..
import json

import rdkfw_test_helper

# D-Bus Configuration
DBUS_SERVICE_NAME = "org.rdkfwupdater.Service"
DBUS_OBJECT_PATH = "/org/rdkfwupdater/Service"
DBUS_INTERFACE = "org.rdkfwupdater.Interface"
DAEMON_BINARY = "/usr/local/bin/rdkFwupdateMgr"

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread Makefile.am Outdated
Comment on lines +121 to +127
# Client Library Configuration - librdkFwupdateMgr.la
librdkFwupdateMgr_la_SOURCES = \
${top_srcdir}/librdkFwupdateMgr/src/
#${top_srcdir}/librdkFwupdateMgr/src/handle_mgr.c \
#${top_srcdir}/librdkFwupdateMgr/src/handle_registry.c \
#${top_srcdir}/librdkFwupdateMgr/src/dbus_client.c \
#${top_srcdir}/librdkFwupdateMgr/src/api_impl.c
Copy link

Copilot AI Mar 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

librdkFwupdateMgr_la_SOURCES currently lists a directory (${top_srcdir}/librdkFwupdateMgr/src/) instead of source files. Automake will treat this as an invalid source entry and fail the build. Please replace it with the concrete .c/.cpp files (or remove the library target until sources are added).

Copilot uses AI. Check for mistakes.
Comment on lines +755 to +758
extern "C" int rdkFwupdateMgr_downloadFirmware(...)
{
return 0;
}
Copy link

Copilot AI Mar 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The test stub rdkFwupdateMgr_downloadFirmware(...) is declared as variadic and returns int, but the production header declares it as returning DownloadFirmwareResult with a fixed parameter list. If this symbol is ever referenced from C code compiled against the header, the return-type/ABI mismatch can cause crashes. Please change the stub to match the real signature and return type (or remove it if unused).

Copilot uses AI. Check for mistakes.
Comment on lines +765 to +768
extern "C" int getOPTOUTValue()
{
return 0;
}
Copy link

Copilot AI Mar 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

getOPTOUTValue is stubbed here with no parameters, but production code calls getOPTOUTValue(const char *path) (see handlers.c forward declaration). In C++ this mismatch defeats type checking and can be undefined behavior on some ABIs. Please update the stub signature to accept const char * (and keep it consistent with other mocks that also define this function).

Copilot uses AI. Check for mistakes.
Comment on lines +586 to +601
// Mock for rdkv_upgrade_strerror - converts error codes to human-readable strings
// Used by rdkFwupdateMgr.c for error logging
const char* rdkv_upgrade_strerror(int error) {
switch(error) {
case 0: // RDKV_UPGRADE_SUCCESS
return "Success";
case -1: // RDKV_UPGRADE_ERROR_THROTTLE_ZERO
return "Throttle speed set to 0 - download blocked";
case -2: // RDKV_UPGRADE_ERROR_FORCE_EXIT
return "Force exit requested";
default:
if (error > 0) {
return "CURL error";
}
return "Unknown library error";
}
Copy link

Copilot AI Mar 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The rdkv_upgrade_strerror stub uses -1/-2 for the new library error cases, but the updated public enum in rdkv_upgrade.h defines RDKV_UPGRADE_ERROR_THROTTLE_ZERO=-100 and RDKV_UPGRADE_ERROR_FORCE_EXIT=-101. This will produce incorrect messages/branching in tests that validate error handling. Please update the stub to use the new constants (or include rdkv_upgrade.h and switch on the enum values).

Copilot uses AI. Check for mistakes.
Comment on lines +439 to +447
const char* rdkv_upgrade_strerror(int error) {
switch(error) {
case 0: return "Success";
case -1: return "Throttle speed set to 0";
case -2: return "Force exit requested";
default:
if (error > 0) return "CURL error";
return "Unknown library error";
}
Copy link

Copilot AI Mar 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This rdkv_upgrade_strerror stub also maps the throttle/force-exit errors to -1/-2, but production now uses RDKV_UPGRADE_ERROR_THROTTLE_ZERO=-100 and RDKV_UPGRADE_ERROR_FORCE_EXIT=-101 (see src/include/rdkv_upgrade.h). Please update the cases to match the new error codes so unit tests reflect real behavior.

Copilot uses AI. Check for mistakes.
mkadinti and others added 4 commits March 11, 2026 12:32
* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation - modifications in adressing comments

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation - modifications in adressing comments

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation - L1 fixed for exiting tests

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation - Unit tests for XConf Fetching

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation - Unit tests for XConf Fetching

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation - reveritng .md files

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation - reverting README.md file removal

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- partial L1 tests

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L1 for cache helper functions

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L1 xconf cache load functions

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L1 xconf cache load functions- DownlaodFirmware test cases

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L1 xconf cache load functions- DownlaodFirmware test cases

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L1 xconf cache load functions- DownlaodFirmware test cases

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L1 xconf cache load functions- UT compile fail debug

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L1 xconf cache load functions- UT compile fail debug - 2

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L1 xconf cache load functions- UT compile fail debug - 2

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L1 xconf cache load functions- UT compile fail debug - 3

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L1 xconf cache load functions- UT compile fail debug - 4

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L1 xconf cache load functions- UT compile fail debug - 5

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L2 for CheckForUpdate

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L2 for CheckForUpdate

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L2 for CheckForUpdate

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L1 clean up

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L1 clean up - compile fail fix

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L1 clean up - L2 for Basic register, unregister and CheckForUpdate

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L1 clean up - L1 - PR compile fix

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Seperated integration tests for Register

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Seperated integration tests for Register

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- updated run_l2.sh

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Seperated Integration tests fot UnregisterProcess

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Seperated Integration tests fot UnregisterProcess

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Seperated Integration tests for CheckForUpdate

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Adressing Review comments on cov_build.sh

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Adressing review comments

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Adressing review comments

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Adressing review comments

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Adressing review comments

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Adressing review comments

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Adressing review comments

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Adressing review comments by copilot in src/dbus/rdkv_dbus_server.c

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Review reports by Copilot

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Review reports by Copilot

* Update Initial_REVIEW_rdkv_dbus_server.md

* Update DEMO_Comments.md

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Adressing review comments

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Adressing review comments

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Adressing review comments

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Adressing review comments

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Adressing review comments

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Adressing review comments

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Adressing review comments

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- UT - 43% achieved

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- UT - 59.2% achieved

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- UT - 64.1% achieved

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Adressing review comments by copilot in src/dbus/rdkv_dbus_server.c

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L2 for Download Firmware

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L2 for Download Firmware

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L2 updated for DownloadFirmware

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L2 updated for DownloadFirmware

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L2 updated for UpdateFirmware

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L2 updated for UpdateFirmware

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L2 updated for UpdateFirmware

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- PR cleanup

* Delete DEMO_Comments.md

* Delete Initial_REVIEW_rdkv_dbus_server.md

* Delete LINK_TIME_SYMBOL_INTERPOSITION.md

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- PR cleanup

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- run_l2.sh changes to start dbus deamon

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- run_l2.sh changes to start dbus deamon

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- run_l2.sh changes to start dbus deamon

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- run_l2.sh changes to start dbus deamon

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- run_l2.sh changes to start dbus deamon

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- run_l2.sh changes to start dbus deamon

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Coverity issue fix

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Coverity issue fix

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Coverity issue fix

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Coverity issue fix

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Coverity issue fix

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Coverity issue fix

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Coverity issue fix

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Coverity issue fix

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Coverity issue fix

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Coverity issue fix

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Coverity issue fix

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Review comments

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- Review comments

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- rdk_logger_ext_init applied

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- rdk_logger_ext_init applied

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- rdk_logger_ext_init applied

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- rdk_logger_ext_init applied

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- rdk_logger_ext_init applied

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- UT fix after coverity fixes

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- UT fix after coverity fixes

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- UT failure fix

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L2 failure fix  - to compile with rdk_logger fix

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L2 failure fix  - to compile with rdk_logger fix

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- L2 failure fix  - to compile with rdk_logger fix

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- removed adapted changes from rdk_logger

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- removed adapted changes from rdk_logger

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- removed adapted changes from rdk_logger

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- removed adapted changes from rdk_logger

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- removed adapted changes from rdk_logger

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- removed adapted changes from rdk_logger

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- removed adapted changes from rdk_logger

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- removed adapted changes from rdk_logger

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- removed adapted changes from rdk_logger

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- PR clean up

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- PR clean up

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- PR clean up

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- PR clean up

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- PR clean up

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- PR clean up

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- PR clean up

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- PR clean up

* RDK-60065:[RDK-E] Implement Firmware Download & Install API for Event-Driven Firmware Updates- UpdateFirmware API Implementation- PR clean up

* RDK-60261:Implement software update service layer library- Implement RegisterProcess- adding rdkFwupdateMgr_client.h header

* RDK-60261:Implement software update service layer library- Implement RegisterProcess- adding rdkFwupdateMgr_client.h header

* Update src/device_status_helper.c

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update test/functional-tests/tests/test_dbus_CheckForUpdate.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update test/functional-tests/tests/test_dbus_DownloadFirmware.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update test/functional-tests/tests/test_dbus_DownloadFirmware.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update test/functional-tests/tests/test_dbus_UpdateFirmware.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update test/functional-tests/tests/test_dbus_UpdateFirmware.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update test/functional-tests/tests/test_dbus_DownloadFirmware.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update test/functional-tests/tests/test_dbus_DownloadFirmware.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* RDK-60261:Implement software update service layer library- Implement RegisterProcess- adding  initial src files

* Update test/functional-tests/tests/test_dbus_DownloadFirmware.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* RDK-60261:Implement software update service layer library- Implement RegisterProcess- Updated public header

* RDK-60261:Implement software update service layer library- Implement RegisterProcess- Updated public header

* RDK-60261:Implement software update service layer library- Implement RegisterProcess- Updated public header

* Update rdkFwupdateMgr_client.h

* Update rdkFwupdateMgr_client.h

* Update rdkFwupdateMgr_client.h - input params to Download and Update FW APIs

* Update rdkFwupdateMgr_client.h

* Update rdkFwupdateMgr_client.h

* RDK-60767:Address Review comments / change in design for CheckForUpdate

* RDK-60767:Address Review comments / change in design for CheckForUpdate

* RDK-60767:Address Review comments / change in design for CheckForUpdate

* RDK-60767:Address Review comments / change in design for CheckForUpdate

* RDK-60767:Address Review comments / change in design for CheckForUpdate - optout

* RDK-60768:Modify deamon logic to handle exit() scenarios in shared libraries

* RDK-60768:Modify deamon logic to handle exit() scenarios in shared libraries

* RDK-60768:Modify deamon logic to handle exit() scenarios in shared libraries- addressing copilot review

* RDK-60768:Modify deamon logic to handle exit() scenarios in shared libraries- addressing copilot review

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update librdkFwupdateMgr/include/rdkFwupdateMgr_client.h

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* RDK-60768:Modify deamon logic to handle exit() scenarios in shared libraries- addressing copilot review

* RDK-60527:Implement registerProcess and unregisterProcess APIs

* RDK-60768:Modify deamon logic to handle exit() scenarios in shared libraries- fixing UT

* RDK-60768:Modify deamon logic to handle exit() scenarios in shared libraries- fixing UT

* RDK-60527:Implement registerProcess and unregisterProcess APIs- example plugin

* RDK-60768:Modify deamon logic to handle exit() scenarios in shared libraries- fixing UT

* RDK-60527:Implement registerProcess and unregisterProcess APIs- example plugin

* RDK-60528:Add checkForUpdate API with Callback Support

* RDKTV-39792:[RDKV] Xumo TV devices with older builds failing to upgrade due to image verification failure error

* RDK-60527:Implement registerProcess and unregisterProcess APIs

* RDK-60529-Implement downloadFirmware API with Progress Callbacks

* RDK-60529-Implement downloadFirmware API with Progress Callbacks

* RDK-60529-Implement downloadFirmware API with Progress Callbacks

* RDK-60529-Implement downloadFirmware API with Progress Callbacks

* RDK-60529-Implement downloadFirmware API with Progress Callbacks

* RDK-60529-Implement downloadFirmware API with Progress Callbacks

* RDK-60529-Implement downloadFirmware API with Progress Callbacks

* Delete EXIT_CALL_ELIMINATION_GUIDE.md

* Delete UNITTEST_CHANGES_EXPLAINED.md

* RDK-60529-Implement downloadFirmware API with Progress Callbacks

* RDK-60529-Implement downloadFirmware API with Progress Callbacks- clean up

* RDK-60529-Implement downloadFirmware API with Progress Callbacks- Fix for example_plugin

* RDK-60529-Implement downloadFirmware API with Progress Callbacks- Fix for example_plugin

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* RDK-60261:Implement software update service layer library-Addressing copilot reviews

* RDK-60261:Implement software update service layer library-Addressing copilot reviews

* Update rdkFwupdateMgr_log.c

* RDKEMW-14991:[Xione UK] - Firmware download should not happen when throttle speed is set to 0

* RDKEMW-14991:[Xione UK] - Firmware download should not happen when throttle speed is set to 0

* RDKEMW-14991:[Xione UK] - Firmware download should not happen when throttle speed is set to 0

* RDK-60261:Implement software update service layer library- UT fix- added mock for a new function

* RDK-60261:Implement software update service layer library- UT fix- added mock for a new function

* RDK-60261:Implement software update service layer library-fixing example_plugin

* RDK-60261:Implement software update service layer library- UT fix- added mock for a new function

* Update rdkFwupdateMgr_client.h

* RDK-60261:Implement software update service layer library- UT fix- added mock for a new function

* RDK-60261:Implement software update service layer library- UT fix- added mock for a new function

* RDK-60261:Implement software update service layer library- UT fix- added mock for a new function

* RDK-60261:Implement software update service layer library- UT fix- added mock for a new function

* RDK-60261:Implement software update service layer library- removed tests that were written for old CHeckForUpdate and Downlaod Firmware design

* RDK-60261:Implement software update service layer library- removed tests that were written for old CHeckForUpdate and Downlaod Firmware design

* RDK-60261:Implement software update service layer library- Coverity issues

* RDK-60261:Implement software update service layer library-fixing example_plugin

* RDK-60529-Implement downloadFirmware API with Progress Callbacks

* RDK-60529-Implement downloadFirmware API with Progress Callbacks

* RDK-60529-Implement downloadFirmware API with Progress Callbacks

* RDK-60529-Implement downloadFirmware API with Progress Callbacks- updated MAX_PENDING_CALLBACKS  to 30 form 64

* RDK-60529-Implement downloadFirmware API with Progress Callbacks- updated in librdkFwupdateMgr/src/rdkFwupdateMgr_async.c librdkFwupdateMgr/src/rdkFwupdateMgr_async_internal.h for coverity

* RDK-60529-Implement downloadFirmware API with Progress Callbacks- updated in librdkFwupdateMgr/src/rdkFwupdateMgr_async.c librdkFwupdateMgr/src/rdkFwupdateMgr_async_internal.h for coverity

* RDK-60529-Implement downloadFirmware API with Progress Callbacks- PR clean up -removed dead code

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* RDK-60529-Implement downloadFirmware API with Progress Callbacks- PR clean up -removed dead code

* RDK-60529-Implement downloadFirmware API with Progress Callbacks- PR clean up -removed dead code

* RDK-60261:Implement software update service layer library-fixing example_plugin

* RDK-60261:Implement software update service layer library-fixing example_plugin

* RDK-60261:Implement software update service layer library-fixing exampl_plugin

* RDK-60261:Implement software update service layer library-fixing exampl_plugin

* RDK-60261:Implement software update service layer library-fixing exampl_plugin

* RDK-60261:Implement software update service layer library-fixing exampl_plugin

* RDK-60261:Implement software update service layer library-fixing exampl_plugin-  revert if the changes are not wotking

* RDK-60261:Implement software update service layer library-fixing exampl_plugin-  revert if the changes are not working - 2

* RDK-60261:Implement software update service layer library-fixing exampl_plugin-  revert if the changes are not working - 3

* Delete test/phase6_complete_validation.sh

* Delete test/memory_validation.sh

* RDK-60261:Implement software update service layer library-fixing exampl_plugin-copilot review for FirmwareInterfaceContext

* RDK-60261:Implement software update service layer library-fixing exampl_plugin- example_plugin updateFirmware locOfFirmware fix

* RDK-60261:Implement software update service layer library-fixing exampl_plugin- example_plugin updateFirmware locOfFirmware fix

* RDK-60261:Implement software update service layer library-fixing exampl_plugin- example_plugin updateFirmware locOfFirmware fix

* Revert "RDK-60261:Implement software update service layer library-fixing exampl_plugin- example_plugin updateFirmware locOfFirmware fix"

This reverts commit 303ff72.

* Delete API_DOCUMENTATION_updateFirmware.md

* Delete API_DOCUMENTATION_checkForUpdate.md

* Delete API_DOCUMENTATION_downloadFirmware.md

* Delete librdkFwupdateMgr/API_DOCUMENTATION_registerProcess.md

* Delete librdkFwupdateMgr/API_DOCUMENTATION_unregisterProcess.md

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Added lib interface for damon
Copilot AI review requested due to automatic review settings March 11, 2026 14:26
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 44 out of 44 changed files in this pull request and generated 11 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +755 to +767
extern "C" int rdkFwupdateMgr_downloadFirmware(...)
{
return 0;
}

extern "C" const char* rdkv_upgrade_strerror(int err)
{
return "mock_error";
}

extern "C" int getOPTOUTValue()
{
return 0;
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The added stubs introduce ABI/signature mismatches that can cause crashes or undefined behavior at link/runtime. rdkFwupdateMgr_downloadFirmware is defined here as extern "C" int rdkFwupdateMgr_downloadFirmware(...), but the real symbol now returns DownloadFirmwareResult (a struct). Also getOPTOUTValue is defined with no parameters, but other code calls getOPTOUTValue(const char*). Because these are extern "C", the linker will happily bind the symbol and the call/return ABI will be wrong. Fix by matching the exact production signatures (including return type and parameters) or remove these stubs and rely on the existing ones in the appropriate mock files.

Copilot uses AI. Check for mistakes.
Comment thread unittest/Makefile.am
# Uses internal async implementation files
rdkFwupdateMgr_async_refcount_gtest_SOURCES = rdkFwupdateMgr_async_refcount_gtest.cpp \
../librdkFwupdateMgr/src/rdkFwupdateMgr_async.c \
../librdkFwupdateMgr/src/rdkFwupdateMgr_async_api.c
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

*_SOURCES references ../librdkFwupdateMgr/src/rdkFwupdateMgr_async_api.c, but that file does not exist in the tree (the file present is rdkFwupdateMgr_api.c). As written, these new test targets will fail to build. Update the source list to the correct filename(s) and ensure any required test-only helpers are actually compiled into the binaries.

Suggested change
../librdkFwupdateMgr/src/rdkFwupdateMgr_async_api.c
../librdkFwupdateMgr/src/rdkFwupdateMgr_api.c

Copilot uses AI. Check for mistakes.
Comment on lines +24 to +30
extern "C" {
#include "rdkFwupdateMgr_client.h"
// Internal testing APIs
extern void rdkFwupdateMgr_async_init_for_test(void);
extern void rdkFwupdateMgr_async_cleanup_for_test(void);
extern int rdkFwupdateMgr_async_get_pending_count_for_test(void);
extern int rdkFwupdateMgr_async_get_total_count_for_test(void);
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This test file declares/uses several async test helper APIs and entry points (rdkFwupdateMgr_async_init_for_test, *_cleanup_for_test, *_get_pending_count_for_test, etc.) plus rdkFwupdateMgr_checkForUpdate_async, but none of these symbols exist in the current codebase (the public client API is checkForUpdate(...) in rdkFwupdateMgr_client.h). As-is, this file will not compile/link. Either rename the calls to match the actual public API, or add the required test-only exports (guarded by a macro) and compile them into this test target.

Copilot uses AI. Check for mistakes.
Comment on lines +23 to +30
extern "C" {
#include "rdkFwupdateMgr_client.h"
// Internal testing APIs
extern void rdkFwupdateMgr_async_init_for_test(void);
extern void rdkFwupdateMgr_async_cleanup_for_test(void);
extern void rdkFwupdateMgr_async_simulate_signal_for_test(
const char* status, const char* message, const char* version);
}
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file depends on rdkFwupdateMgr_async_init_for_test/cleanup_for_test/simulate_signal_for_test and calls rdkFwupdateMgr_checkForUpdate_async(...), but those symbols are not defined anywhere in the repository (and rdkFwupdateMgr_client.h does not declare them). This will fail to compile/link. Please align the tests with the actual client API (checkForUpdate, signal subscription) or add the missing test hooks behind a compile-time flag and include them in the test target sources.

Copilot uses AI. Check for mistakes.
Comment on lines +25 to +33
extern "C" {
#include "rdkFwupdateMgr_client.h"
// Internal testing APIs
extern void rdkFwupdateMgr_async_init_for_test(void);
extern void rdkFwupdateMgr_async_cleanup_for_test(void);
extern void rdkFwupdateMgr_async_simulate_signal_for_test(
const char* status, const char* message, const char* version);
extern int rdkFwupdateMgr_async_get_pending_count_for_test(void);
}
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file declares/uses async test helper APIs (rdkFwupdateMgr_async_*_for_test) and calls rdkFwupdateMgr_checkForUpdate_async/_cancel, but these symbols are not present in the current codebase (the public API in rdkFwupdateMgr_client.h is checkForUpdate(...)). As-is, the test target will not compile/link. Either refactor the tests to use the actual API, or add/export the required async test hooks and include them in the build.

Copilot uses AI. Check for mistakes.
Comment on lines +38 to +47
extern "C" {
// Include internal header for direct testing
// Note: In production, adjust include path as needed
#include "../librdkFwupdateMgr/src/rdkFwupdateMgr_async_internal.h"

// Expose internal functions for testing
extern void context_ref(AsyncCallbackContext *ctx);
extern void context_unref(AsyncCallbackContext *ctx);
extern AsyncCallbackRegistry g_async_registry;
}
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This refcount test appears to target a different/internal async implementation than the one currently in librdkFwupdateMgr: it includes rdkFwupdateMgr_async_internal.h but then uses AsyncCallbackContext, AsyncCallbackRegistry, and context_ref/context_unref, none of which are declared/defined in that header or anywhere else in the repo. This will not compile/link. Suggest either (a) updating the test to use the actual internal types/functions that exist in rdkFwupdateMgr_async.c, or (b) adding explicit test-only exports for the refcount helpers and the associated types behind a macro, and including them in the test target sources.

Copilot uses AI. Check for mistakes.
Comment on lines +586 to +595
// Mock for rdkv_upgrade_strerror - converts error codes to human-readable strings
// Used by rdkFwupdateMgr.c for error logging
const char* rdkv_upgrade_strerror(int error) {
switch(error) {
case 0: // RDKV_UPGRADE_SUCCESS
return "Success";
case -1: // RDKV_UPGRADE_ERROR_THROTTLE_ZERO
return "Throttle speed set to 0 - download blocked";
case -2: // RDKV_UPGRADE_ERROR_FORCE_EXIT
return "Force exit requested";
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

rdkv_upgrade_strerror() in this mock uses -1 / -2 for the new library error codes, but production now defines RDKV_UPGRADE_ERROR_THROTTLE_ZERO = -100 and RDKV_UPGRADE_ERROR_FORCE_EXIT = -101 (see src/include/rdkv_upgrade.h). As a result, tests that log/interpret these errors will produce misleading messages and may not exercise the intended branches. Update the switch cases to match the new negative values (or use the enum constants).

Copilot uses AI. Check for mistakes.
from pathlib import Path

from rdkfw_test_helper import *
import rdkfw_test_helper
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The import was changed from from rdkfw_test_helper import * to import rdkfw_test_helper, but the rest of the file still calls helper functions (e.g., initial_rdkfw_setup(), remove_file(), rename_file(), etc.) without the rdkfw_test_helper. prefix. This will raise NameError at runtime for most tests. Either restore the star import, or update all helper references to be fully qualified.

Suggested change
import rdkfw_test_helper
from rdkfw_test_helper import *

Copilot uses AI. Check for mistakes.
from pathlib import Path

from rdkfw_test_helper import *
import rdkfw_test_helper
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The import was changed from from rdkfw_test_helper import * to import rdkfw_test_helper, but the rest of the test module still calls helper functions (e.g., initial_rdkfw_setup(), write_on_file(), remove_file(), etc.) without the rdkfw_test_helper. prefix. This will cause NameError at runtime. Either revert to the star import or qualify all helper calls.

Suggested change
import rdkfw_test_helper
from rdkfw_test_helper import *

Copilot uses AI. Check for mistakes.
Comment on lines +261 to +268
start_daemon()
initial_rdkfw_setup()
write_device_prop()
cleanup_daemon_files()

# Create mock firmware file
firmware_name = "ABCD_PCI_test.bin"
firmware_path = create_mock_firmware_file(firmware_name)
create_mock_firmware_file(firmware_name)
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

start_daemon() return value is no longer captured, and this test no longer stops the daemon process or performs cleanup in a finally block. That leaves the daemon running across tests and can cause flakiness/port conflicts and resource leaks. Suggest restoring proc = start_daemon() and ensuring stop_daemon(proc) (and any temp file cleanup) always runs in finally:.

Copilot uses AI. Check for mistakes.
mkadinti and others added 14 commits March 12, 2026 09:59
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* RDK-60640: Add PKCS#11 tests for mTLS certificate

These tests ensure proper integration between device management service,
certificate selector, and PKCS#11 token infrastructure.

Background:
RDK-60640 implements PKCS#11 support for storing private keys in hardware
security modules (HSM) instead of filesystem. This enables production
devices to use TPM/OP-TEE for secure key storage while maintaining mTLS
connectivity to backend services.

Changes:
- Add test_pkcs11_fallback.py with 4 test scenarios
- Test certificate chain fallback (primary → backup)
- Validate mTLS handshake with PKCS#11-backed keys
- Integration with SoftHSM2 for CI/test environments
- Mock xconf endpoints for certificate validation

Test Scenarios:
1. Primary certificate succeeds (happy path)
2. Primary fails, fallback to backup succeeds

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Resolve Copilot review comments and optimize test_pkcs11_fallback.py

- Remove duplicate start_daemon/stop_daemon functions
- Fix RFC file format: use json.dumps() instead of str()
- Merge write_device_prop() and write_rfc_file() into write_config_files()
- Improve process management with proper handle passing
- Enhance backup_reference_cert fixture with pytest.skip()
- Add OpenSSL validation with returncode check
- Optimize file size from 363 to 163 lines (55% reduction)
- Update run_l2.sh phase labels and descriptions for clarity

* Remove test_verify_no_pkcs11_patch_activation from PKCS#11 fallback tests (not needed, key type is EC)

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Use DEVNULL for daemon stdout/stderr and cleanup /opt/curl_progress in fallback test

* Fix test_fallback_rdkvfwupgrader_direct timeout: kill lingering daemon before running rdkvfwupgrader

* Fix test_fallback_rdkvfwupgrader_direct: increase cleanup delay and kill rdkvfwupgrader to release curl connections

* Fix test_fallback_rdkvfwupgrader_direct: use stdout=PIPE without timeout to match other tests

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Address all 3 Copilot review comments:
- Capture daemon stdout/stderr for better error diagnostics
- Use shutil.copy2/os.replace with exception handling in backup_reference_cert fixture
- Add initial_rdkfw_setup to test_fallback_firmware_download for environment prerequisites

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update L2-tests.yml

* Update test_pkcs11_fallback.py

---------

Co-authored-by: “sahmad154” <sohail_ahmad@comcast.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Satya Sundar Sahu <tinkusahu.com@gmail.com>
mkadinti and others added 4 commits March 23, 2026 16:02
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
RDKTV-39830:Xumo TV devices got stuck with old firmware with http eror code 405
Copilot AI review requested due to automatic review settings March 27, 2026 10:00
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Mar 27, 2026


Thank you for your submission, we really appreciate it. Like many open-source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution. You can sign the CLA by just posting a Pull Request Comment same as the below format.


I have read the CLA Document and I hereby sign the CLA


5 out of 6 committers have signed the CLA.
satya200
mkadinti
Sidsohail
KTirumalaSrihari
Ananth916
root
root seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.
You can retrigger this bot by commenting recheck in this Pull Request. Posted by the CLA Assistant Lite bot.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 50 out of 50 changed files in this pull request and generated 7 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +755 to +768
extern "C" int rdkFwupdateMgr_downloadFirmware(...)
{
return 0;
}

extern "C" const char* rdkv_upgrade_strerror(int err)
{
return "mock_error";
}

extern "C" int getOPTOUTValue()
{
return 0;
}
Copy link

Copilot AI Mar 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The stubs added here don't match the real function signatures used by production code linked into dbus_handlers_gtest. In particular, getOPTOUTValue() is defined with no parameters, but rdkFwupdateMgr_handlers.c declares/calls int getOPTOUTValue(const char *file_name). This is undefined behavior and can break on some ABIs. Define the stub with the exact signature (and do the same for rdkFwupdateMgr_downloadFirmware, which should match the struct-returning declaration).

Copilot uses AI. Check for mistakes.
Comment on lines +51 to +64
// Shared state for callbacks
static bool callback_invoked;
static std::string callback_status;
static std::string callback_message;
static std::string callback_version;

static void test_callback(const char* status, const char* message,
const char* version, void* user_data) {
(void)user_data;
callback_invoked = true;
callback_status = status ? status : "";
callback_message = message ? message : "";
callback_version = version ? version : "";
}
Copy link

Copilot AI Mar 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This test shares callback_invoked and the callback_* strings between the test thread and the async callback thread without any synchronization. The callback writes these globals while the test reads them, which is a data race (and will be flagged by TSAN / can flake). Protect the shared state with a mutex/condition_variable (or make the fields atomic where applicable) and wait for the callback deterministically instead of relying on sleeps.

Copilot uses AI. Check for mistakes.
Comment on lines +160 to +189
std::atomic<int> handler_id_counter(0);
std::vector<int> handler_ids(num_threads * operations_per_thread);

for (int t = 0; t < num_threads; t++) {
threads.emplace_back([&, t]() {
std::random_device rd;
std::mt19937 gen(rd());
std::uniform_int_distribution<> dis(0, 1);

for (int i = 0; i < operations_per_thread; i++) {
if (dis(gen) == 0) {
// Register
int handler_id = rdkFwupdateMgr_checkForUpdate_async(
dummy_callback, nullptr);
if (handler_id > 0) {
int idx = handler_id_counter.fetch_add(1);
if (idx < (int)handler_ids.size()) {
handler_ids[idx] = handler_id;
}
}
} else {
// Cancel random handler
int current = handler_id_counter.load();
if (current > 0) {
std::uniform_int_distribution<> id_dis(0, current - 1);
int idx = id_dis(gen);
if (idx < (int)handler_ids.size() && handler_ids[idx] > 0) {
rdkFwupdateMgr_checkForUpdate_async_cancel(
handler_ids[idx]);
}
Copy link

Copilot AI Mar 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ConcurrentRegisterAndCancel mutates and reads handler_ids from multiple threads without synchronization (writes in the register path, reads in the cancel path). Even if indices differ most of the time, this is still a data race on the underlying int elements and makes the test itself non-thread-safe. Use an std::vector<std::atomic<int>> (or guard access with a mutex) when sharing IDs across threads.

Copilot uses AI. Check for mistakes.
Comment on lines +39 to +42
// Include internal header for direct testing
// Note: In production, adjust include path as needed
#include "../librdkFwupdateMgr/src/rdkFwupdateMgr_async_internal.h"

Copy link

Copilot AI Mar 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This test includes an internal header via a hard-coded relative path (../librdkFwupdateMgr/src/...). This is brittle (depends on build working directory) and duplicates include-path logic already present in the Makefile. Prefer including the header by name (e.g., rdkFwupdateMgr_async_internal.h) and relying on the -I include paths to make builds more portable.

Copilot uses AI. Check for mistakes.
Comment thread unittest/Makefile.am
bin_PROGRAMS = rdkfw_device_status_gtest rdkfw_deviceutils_gtest rdkfw_main_gtest rdkfw_interface_gtest rdkfwupdatemgr_main_flow_gtest rdkFwupdateMgr_handlers_gtest dbus_handlers_gtest

#bin_PROGRAMS = rdkfw_device_status_gtest rdkfw_deviceutils_gtest rdkfw_main_gtest rdkfw_interface_gtest dbus_handlers_gtest
bin_PROGRAMS = rdkfw_device_status_gtest rdkfw_deviceutils_gtest rdkfw_main_gtest rdkfw_interface_gtest rdkfwupdatemgr_main_flow_gtest rdkFwupdateMgr_handlers_gtest rdkFwupdateMgr_async_main_flow_gtest rdkFwupdateMgr_async_handlers_gtest dbus_handlers_gtest
Copy link

Copilot AI Mar 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

bin_PROGRAMS lists rdkFwupdateMgr_async_main_flow_gtest and rdkFwupdateMgr_async_handlers_gtest, but this Makefile does not define corresponding *_SOURCES / build rules for them. Automake will fail with “no rule to make target …” or missing source errors. Either add the missing build stanzas or remove these binaries from bin_PROGRAMS until they exist.

Copilot uses AI. Check for mistakes.
Comment thread unittest/Makefile.am
Comment on lines +175 to +177
rdkFwupdateMgr_async_refcount_gtest_SOURCES = rdkFwupdateMgr_async_refcount_gtest.cpp \
../librdkFwupdateMgr/src/rdkFwupdateMgr_async.c \
../librdkFwupdateMgr/src/rdkFwupdateMgr_async_api.c
Copy link

Copilot AI Mar 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These async gtest targets reference ../librdkFwupdateMgr/src/rdkFwupdateMgr_async_api.c, but that file is not present in the tree (the async/public API implementation appears to be rdkFwupdateMgr_api.c). This will break the unit-test build; update the *_SOURCES lists to point at the correct source file(s).

Copilot uses AI. Check for mistakes.
Comment on lines +254 to +268
std::thread cleanup_thread([&]() {
// Wait for callback to start
while (!callback_running.load()) {
std::this_thread::sleep_for(std::chrono::milliseconds(10));
}

cleanup_started.store(true);
rdkFwupdateMgr_async_cleanup_for_test();
});

// Simulate signal arrival (invoke callback)
std::thread signal_thread([&]() {
std::this_thread::sleep_for(std::chrono::milliseconds(50));
// In real code, signal handler would invoke callbacks
});
Copy link

Copilot AI Mar 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CleanupDuringCallbackInvocation can hang indefinitely: cleanup_thread busy-waits for callback_running to become true, but the test never triggers a signal/callback (the signal_thread only sleeps and does nothing). This will deadlock the test run. Trigger the callback via the existing test helper (e.g., simulate a signal) or add a bounded wait/timeout and fail the test if the callback never starts.

Copilot uses AI. Check for mistakes.
KTirumalaSrihari and others added 2 commits March 30, 2026 14:09
…t/swupdate.conf (#205)

* Update device_api.c 

Introduce isSecureDbgSrvUnlocked API and replace the condition checks of buildType and deviceType with this API

* Update device_api.h

* Update rfcinterface.c

* Update rfcinterface.h

* Update device_api.c

* Update rfcinterface.c

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update rfcinterface.h

* Update rfcinterface.c

* Update rfcinterface.c

* Update device_api.c

* Update rfcinterface.c

* Update rfcinterface.h

* Update device_api.c

* Update Makefile.am

For unit tests to be successful, adding ../src/rfcInterface/rfcinterface.c as a Source, for referencing getDeviceTypeRFC API code access

* Update Makefile.am

* Update Makefile.am

* Update Makefile.am

* Update rfcinterface.h

* Update deviceutils_mock.cpp

* Update deviceutils_mock.h

* Update rfcinterface.h

* Update rfcinterface.h

* Update rfcinterface.h

* Update device_api.c

* Update device_api.h

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Update device_api.c

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Update device_api.h

* Update device_api.c

* Update device_api.h

* Apply suggestions from code review

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Update device_api_gtest.cpp

* Update fwdl_interface_gtest.cpp

* Update device_api.c

* Update dbus_handlers_gmock.cpp

* Apply suggestions from code review

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Update device_api.c

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Update device_api_gtest.cpp

* Update fwdl_interface_gtest.cpp

* Update device_api_gtest.cpp

* Update device_api_gtest.cpp

* Update device_api.c

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Satya Sundar Sahu <tinkusahu.com@gmail.com>
…ty components (#209)

* RDK-55195: Notify the RED status events

Reason for change: Notify the RED state events to T2
Test Procedure: Check working of FW upgrade
Risks: Low

Signed-off-by: AnanthaC <anantha_chelladurai@comcast.com>

* Updated the return check & fix the mock function arg mismatch

Signed-off-by: AnanthaC <anantha_chelladurai@comcast.com>

* Addressing the L1 UT

Signed-off-by: AnanthaC <anantha_chelladurai@comcast.com>

* Updated the retrun check macro - WRITE_RFC_FAILURE

Signed-off-by: AnanthaC <anantha_chelladurai@comcast.com>

---------

Signed-off-by: AnanthaC <anantha_chelladurai@comcast.com>
Co-authored-by: AnanthaC <anantha_chelladurai@comcast.com>
Copilot AI review requested due to automatic review settings April 1, 2026 17:41
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 56 out of 56 changed files in this pull request and generated 5 comments.

Comments suppressed due to low confidence (1)

test/functional-tests/tests/test_dbus_DownloadFirmware.py:31

  • This file switched from from rdkfw_test_helper import * to import rdkfw_test_helper, but the rest of the module still calls helper functions like remove_file() and initial_rdkfw_setup() unqualified. As written, this will raise NameError at runtime. Either revert to the star import or update all helper calls to use the module prefix (e.g., rdkfw_test_helper.remove_file(...)).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread unittest/Makefile.am
Comment on lines 20 to 22
# Define the program name and the source files
bin_PROGRAMS = rdkfw_device_status_gtest rdkfw_deviceutils_gtest rdkfw_main_gtest rdkfw_interface_gtest rdkfwupdatemgr_main_flow_gtest rdkFwupdateMgr_handlers_gtest dbus_handlers_gtest

#bin_PROGRAMS = rdkfw_device_status_gtest rdkfw_deviceutils_gtest rdkfw_main_gtest rdkfw_interface_gtest dbus_handlers_gtest
bin_PROGRAMS = rdkfw_device_status_gtest rdkfw_deviceutils_gtest rdkfw_main_gtest rdkfw_interface_gtest rdkfwupdatemgr_main_flow_gtest rdkFwupdateMgr_handlers_gtest rdkFwupdateMgr_async_main_flow_gtest rdkFwupdateMgr_async_handlers_gtest dbus_handlers_gtest
# Define the include directories
Copy link

Copilot AI Apr 1, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

bin_PROGRAMS includes rdkFwupdateMgr_async_main_flow_gtest and rdkFwupdateMgr_async_handlers_gtest, but this Makefile does not define corresponding *_SOURCES entries for them. Automake will fail (or build empty targets) unless you add the source lists or remove these programs from bin_PROGRAMS.

Copilot uses AI. Check for mistakes.
Comment on lines +770 to +778
extern "C" const char* rdkv_upgrade_strerror(int err)
{
return "mock_error";
}

extern "C" int getOPTOUTValue()
{
return 0;
}
Copy link

Copilot AI Apr 1, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

getOPTOUTValue is declared/used elsewhere with a const char* parameter (e.g., extern int getOPTOUTValue(const char *file_name); in src/dbus/rdkFwupdateMgr_handlers.c), but this mock defines it with no parameters. With C linkage this relies on ABI quirks and is not portable; update the stub signature to accept const char* file_name to match the real declaration.

Copilot uses AI. Check for mistakes.
Comment on lines +180 to +185
DownloadFirmwareResult rdkFwupdateMgr_downloadFirmware(
const gchar *handler_id,
const gchar *firmware_name,
const gchar *firmware_type,
const gchar *localFilePath,
const gchar *download_url);
Copy link

Copilot AI Apr 1, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

rdkFwupdateMgr_downloadFirmware prototype was changed to take handler_id as the first argument. There are existing unit tests (e.g., unittest/dbus_handlers.cpp) that still call the old argument order (firmwareName, downloadUrl, type, localFilePath, ...). Because all parameters are const gchar*, this won’t fail to compile but will pass the wrong values at runtime. Please update all callers/tests to the new order (or consider a backward-compatible wrapper if the old signature is still expected).

Copilot uses AI. Check for mistakes.
Comment on lines +24 to +31
extern "C" {
#include "rdkFwupdateMgr_client.h"
// Internal testing APIs
extern void rdkFwupdateMgr_async_init_for_test(void);
extern void rdkFwupdateMgr_async_cleanup_for_test(void);
extern int rdkFwupdateMgr_async_get_pending_count_for_test(void);
extern int rdkFwupdateMgr_async_get_total_count_for_test(void);
}
Copy link

Copilot AI Apr 1, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The test declares and calls rdkFwupdateMgr_async_init_for_test, rdkFwupdateMgr_async_cleanup_for_test, and registry inspection helpers, but these symbols don’t exist anywhere in the current codebase (no matches in librdkFwupdateMgr/src). As a result this test won’t link. Either add these test-only entry points to the async implementation (guarded by #ifdef ASYNC_TEST), or refactor the test to drive the public API and observe behavior via existing hooks.

Copilot uses AI. Check for mistakes.
Comment on lines 20 to 28
import dbus
import subprocess
import time
import os
import json
from pathlib import Path

from rdkfw_test_helper import *
import rdkfw_test_helper

# D-Bus Configuration
Copy link

Copilot AI Apr 1, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file switched from from rdkfw_test_helper import * to import rdkfw_test_helper, but the module still uses helper functions (rename_file, write_on_file, remove_file, etc.) as bare names. This will break at runtime with NameError unless all such calls are qualified (e.g., rdkfw_test_helper.rename_file(...)) or the original import style is restored.

Copilot uses AI. Check for mistakes.
Copilot AI review requested due to automatic review settings May 5, 2026 13:17
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 56 out of 57 changed files in this pull request and generated 5 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +69 to +76
#else


/* Default library macros */
#define FWUPMGR_TRACE(FORMAT...) FWUPMGR_LOG(FWUPMGR_LOG_INFO, "FWUPMGR", FORMAT)
#define FWUPMGR_DEBUG(FORMAT...) FWUPMGR_LOG(FWUPMGR_LOG_INFO, "FWUPMGR", FORMAT)
#define FWUPMGR_INFO(FORMAT...) FWUPMGR_LOG(FWUPMGR_LOG_INFO, "FWUPMGR", FORMAT)
#define FWUPMGR_WARN(FORMAT...) FWUPMGR_LOG(FWUPMGR_LOG_INFO, "FWUPMGR", FORMAT)
Comment on lines 82 to 85
// Instantiate the global mock object for deviceutils_mock
DeviceUtilsMock Deviceglobal;
DeviceUtilsMock *g_DeviceUtilsMock = &Deviceglobal;
//DeviceUtilsMock *g_DeviceUtilsMock = &Deviceglobal;

Comment thread unittest/Makefile.am
Comment on lines +175 to +178
rdkFwupdateMgr_async_refcount_gtest_SOURCES = rdkFwupdateMgr_async_refcount_gtest.cpp \
../librdkFwupdateMgr/src/rdkFwupdateMgr_async.c \
../librdkFwupdateMgr/src/rdkFwupdateMgr_async_api.c

Comment on lines 23 to 29
import json
import pytest
from pathlib import Path

from rdkfw_test_helper import *
import rdkfw_test_helper

# D-Bus Configuration
Comment on lines 259 to 265
- Returns RDKFW_UPDATE_SUCCESS
"""
proc = start_daemon()
start_daemon()
initial_rdkfw_setup()
write_device_prop()
cleanup_daemon_files()

rosemarybennyy and others added 2 commits May 6, 2026 16:45
#241)

* RDKEMW-16947 : Retrieve the PDRI version programmatically within rdkfwupdater

Reason for change: Retrieve the PDRI version programmatically within rdkfwupdater
Test Procedure: Tested and verified
Risks: Low
Priority: P1
Signed-off-by: RoseMary_Benny@comcast.com

* resolved comments

* resolved review comments , added L1

* resolved copilot comments

* code clean up

---------

Signed-off-by: RoseMary_Benny@comcast.com
Copilot AI review requested due to automatic review settings May 11, 2026 10:58
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 60 out of 61 changed files in this pull request and generated 5 comments.

Comment on lines +73 to +76
#define FWUPMGR_TRACE(FORMAT...) FWUPMGR_LOG(FWUPMGR_LOG_INFO, "FWUPMGR", FORMAT)
#define FWUPMGR_DEBUG(FORMAT...) FWUPMGR_LOG(FWUPMGR_LOG_INFO, "FWUPMGR", FORMAT)
#define FWUPMGR_INFO(FORMAT...) FWUPMGR_LOG(FWUPMGR_LOG_INFO, "FWUPMGR", FORMAT)
#define FWUPMGR_WARN(FORMAT...) FWUPMGR_LOG(FWUPMGR_LOG_INFO, "FWUPMGR", FORMAT)
Comment on lines +775 to +778
extern "C" int getOPTOUTValue()
{
return 0;
}
Comment on lines 25 to 28
from pathlib import Path

from rdkfw_test_helper import *
import rdkfw_test_helper

Comment on lines +335 to +337
* Expected GVariant signature: (ii)
* i progress_percent
* i status_code
Comment on lines 214 to +216
size_t len = 0;

if( pPDRIFilename != NULL )
#if defined(IARM_ENABLED)
len = GetPDRIFileNameUsingMFR(pPDRIFilename, szBufSize);
@github-advanced-security
Copy link
Copy Markdown

You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool.

What Enabling Code Scanning Means:

  • The 'Security' tab will display more code scanning analysis results (e.g., for the default branch).
  • Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results.
  • You will be able to see the analysis results for the pull request's branch on this overview once the scans have completed and the checks have passed.

For more information about GitHub Code Scanning, check out the documentation.

pthread_mutex_unlock(&g_check_mutex);

/* Check result */
if (g_check_status != FIRMWARE_AVAILABLE) {
pthread_mutex_unlock(&g_download_mutex);

/* Check download result */
if (g_download_status != DWNL_COMPLETED) {
* ==================================================================== */
if (g_exit_code == EXIT_SUCCESS) {
EXAMPLE_INFO("FIRMWARE UPDATE WORKFLOW COMPLETED\n");
if (g_update_status == UPDATE_COMPLETED) {
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.

8 participants