# Update Service

- [API reference](https://docs.qualcomm.com/doc/80-41102-2/topic/_doxygen_rst_file__doxygen_sources_taf_update_interface_h.html#file-taf-update-interface-h)

[Plugin APIs for download agent](https://docs.qualcomm.com/doc/80-41102-2/topic/_doxygen_rst_file__doxygen_sources_include_plugin_tafPiDA_h.html#file-tafpida-h)

[Plugin APIs for user agent](https://docs.qualcomm.com/doc/80-41102-2/topic/_doxygen_rst_file__doxygen_sources_include_plugin_tafPiUA_h.html#file-tafpiua-h)

The Update Service supports OTA firmware (FOTA) and application (SOTA) updates using QOTA packages. Register a state handler to receive asynchronous update progress.

**NOTE:** Firmware and application updates cannot run simultaneously.

## IPC interfaces binding

The functions of this API are provided by the **tafUpdateSvc** service.

bindings:
    {
        clientExe.clientComponent.taf_update -> tafUpdateSvc.taf_update
    }
    Copy to clipboard

## OTA functions

- [taf\_update\_Download()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00752_1a5d649e47843847202ffd302dee929cac.html#Documentationa00752_1a5d649e47843847202ffd302dee929cac) / [taf\_update\_GetDownloadSession()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00752_1aca218040236d6bfbf14522964f3d8fbd.html#Documentationa00752_1aca218040236d6bfbf14522964f3d8fbd) / [taf\_update\_StartDownload()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00752_1a4d72ec7ff028b40428c59958895d6c9b.html#Documentationa00752_1a4d72ec7ff028b40428c59958895d6c9b) / [taf\_update\_PauseDownload()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00752_1a22c33bcb92b58cc5bb5fb67a11755efb.html#Documentationa00752_1a22c33bcb92b58cc5bb5fb67a11755efb) / [taf\_update\_ResumeDownload()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00752_1ab1c03df740fb1465ae2c18e0e684f816.html#Documentationa00752_1ab1c03df740fb1465ae2c18e0e684f816) / [taf\_update\_CancelDownload()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00752_1ad78e33a0d834424d58071acda7a5b261.html#Documentationa00752_1ad78e33a0d834424d58071acda7a5b261) — Download APIs: Download() starts the legacy download flow; the others acquire and manage a session-based download.
- [taf\_update\_GetInstallationSession()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00752_1a3a55d5c7aadcfde7ee0e8f55038741d0.html#Documentationa00752_1a3a55d5c7aadcfde7ee0e8f55038741d0) / [taf\_update\_Install()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00752_1a5a5be9802790502f46aa739bb206e420.html#Documentationa00752_1a5a5be9802790502f46aa739bb206e420) / [taf\_update\_StartInstall()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00752_1a78db123fe5db729434240bb269ddfb42.html#Documentationa00752_1a78db123fe5db729434240bb269ddfb42) / [taf\_update\_PauseInstall()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00752_1a1fd8ac14daf68811e6867ff393148c46.html#Documentationa00752_1a1fd8ac14daf68811e6867ff393148c46) / [taf\_update\_ResumeInstall()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00752_1acb1d7dda40a3eb29cca7bf355c5e683e.html#Documentationa00752_1acb1d7dda40a3eb29cca7bf355c5e683e) / [taf\_update\_CancelInstall()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00752_1a79d35d2c335374f7ab5d231d31b0551f.html#Documentationa00752_1a79d35d2c335374f7ab5d231d31b0551f) — Installation APIs: GetInstallationSession() obtains a session for the given package type; Install() queues the install using the legacy flow; the others control a session-based install.
- [taf\_update\_InstallPreCheck()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00752_1a27fa66ac9165ef55f88aae8ed8a81176.html#Documentationa00752_1a27fa66ac9165ef55f88aae8ed8a81176) / [taf\_update\_InstallPostCheck()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00752_1a74baf29fffa3e70078ec955ac51dadfc.html#Documentationa00752_1a74baf29fffa3e70078ec955ac51dadfc) — Optional pre/post-install checks. These APIs are optional and may be skipped if not required.
- [taf\_update\_EraseBank()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00752_1a3e955e74ba3093e5928de9ea869317c8.html#Documentationa00752_1a3e955e74ba3093e5928de9ea869317c8) — Erases the inactive bank before flashing to ensure a clean target bank. Call this separately before starting installation if needed.
- [taf\_update\_GetActiveBank()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00752_1a72fdae783862ad1ba739575a3cc2365a.html#Documentationa00752_1a72fdae783862ad1ba739575a3cc2365a) / [taf\_update\_VerifyActivation()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00752_1a1820ea2d409a3e019997c4d7428a90e0.html#Documentationa00752_1a1820ea2d409a3e019997c4d7428a90e0) / [taf\_update\_PauseActivation()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00752_1a777f6de4706dbe426c98bbea4a21eeae.html#Documentationa00752_1a777f6de4706dbe426c98bbea4a21eeae) / [taf\_update\_ResumeActivation()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00752_1ad7e305ed39c974504d19d928b07c1e10.html#Documentationa00752_1ad7e305ed39c974504d19d928b07c1e10) — Query the active bank and control the activation workflow.
- [taf\_update\_Sync()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00752_1ab852dc5792879348ac3015a03ae392a3.html#Documentationa00752_1ab852dc5792879348ac3015a03ae392a3) / [taf\_update\_StartSync()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00752_1aae35b5b40292e8cc932bf2e697834108.html#Documentationa00752_1aae35b5b40292e8cc932bf2e697834108) / [taf\_update\_PauseSync()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00752_1acfaf9196259dd9f63c3eed9a3029587f.html#Documentationa00752_1acfaf9196259dd9f63c3eed9a3029587f) / [taf\_update\_ResumeSync()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00752_1a53536190b182432e1c940a3f8b04c9a6.html#Documentationa00752_1a53536190b182432e1c940a3f8b04c9a6) / [taf\_update\_CancelSync()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00752_1aceebf7ab672930ca1a1b59f97e024f8c.html#Documentationa00752_1aceebf7ab672930ca1a1b59f97e024f8c) — Manages A/B bank synchronization.
- [taf\_update\_Rollback()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00752_1af5ff94ff9a3b61dbfb9198f799920951.html#Documentationa00752_1af5ff94ff9a3b61dbfb9198f799920951) — Starts rollback.
- [taf\_update\_AddStateHandler()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00752_1a0a6d98201e743b396047f40121de073d.html#Documentationa00752_1a0a6d98201e743b396047f40121de073d) / [taf\_update\_RemoveStateHandler()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00752_1aa263122ef7448194db14314e771b54c5.html#Documentationa00752_1aa263122ef7448194db14314e771b54c5) — Registers/Unregisters update state handler.

void UpdateStateHandler(taf_update_StateInd_t* indication, void* contextPtr)
    {
        switch (indication->state) {
            case TAF_UPDATE_IDLE:
                taf_update_Download();
                break;
            case TAF_UPDATE_DOWNLOADING:
                LE_INFO("Downloading %d%%.", indication->percent);
                break;
            case TAF_UPDATE_DOWNLOAD_FAIL:
                LE_ERROR("Download failed.");
                break;
            case TAF_UPDATE_DOWNLOAD_SUCCESS:
                if (indication->ota == TAF_UPDATE_PACKAGE_FOTA) {
                    taf_update_Install(TAF_UPDATE_FOTA, indication->name);
                } else {
                    taf_update_Install(TAF_UPDATE_SOTA, indication->name);
                }
                break;
            case TAF_UPDATE_INSTALLING:
                LE_INFO("Installing %d%%.", indication->percent);
                break;
            case TAF_UPDATE_INSTALL_SUCCESS:
                // Reboot to activate firmware, or start app probation.
                break;
         }
    }
    
    handlerRef = taf_update_AddStateHandler((taf_update_StateHandlerFunc_t)UpdateStateHandler, NULL);
    Copy to clipboard

Last Published: Jun 09, 2026

[Previous Topic
Update services](https://docs.qualcomm.com/bundle/publicresource/80-41102-2/topics/update_services.md) [Next Topic
Firmware Update Service](https://docs.qualcomm.com/bundle/publicresource/80-41102-2/topics/page_c_tafFwUpdate.md)