# Flash Access Service - [API reference](https://docs.qualcomm.com/doc/80-41102-2/topic/_doxygen_rst_file__doxygen_sources_taf_flash_interface_h.html#file-taf-flash-interface-h) The Flash Access service provides APIs for reading and writing MTD partitions and UBI volumes during FOTA operations. ## IPC interfaces binding All the functions of this API are provided by the **tafUpdateSvc** service. bindings: { clientExe.clientComponent.taf_flash -> tafUpdateSvc.taf_flash } Copy to clipboard ## Flash access initialization Call [taf\_flash\_Init()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00449_1aaa69bc2c63c415ed798672b70f6e3722.html#Documentationa00449_1aaa69bc2c63c415ed798672b70f6e3722) once before any other flash operation. ## MTD partition flash access - [taf\_flash\_MtdOpen()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00449_1a2cc2a25361081ff2ee9d846370ecdc14.html#Documentationa00449_1a2cc2a25361081ff2ee9d846370ecdc14) / [taf\_flash\_MtdClose()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00449_1a99c3688f312b682f4010859bfb37e3d8.html#Documentationa00449_1a99c3688f312b682f4010859bfb37e3d8) — Opens/Closes an MTD partition. - [taf\_flash\_MtdInformation()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00449_1a1cca1157416508f7d3f18d7fec83c1d0.html#Documentationa00449_1a1cca1157416508f7d3f18d7fec83c1d0) — Gets partition geometry and bad block count. - [taf\_flash\_MtdIsBlockGood()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00449_1af451a32c309adc0064cb85cc1a516519.html#Documentationa00449_1af451a32c309adc0064cb85cc1a516519) — Checks if a block is usable. - [taf\_flash\_MtdEraseBlock()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00449_1ac9f7483a36840add9ba7832202874c56.html#Documentationa00449_1ac9f7483a36840add9ba7832202874c56) / [taf\_flash\_MtdErase()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00449_1a5eba93b934c2d7d71375771a9960ac89.html#Documentationa00449_1a5eba93b934c2d7d71375771a9960ac89) — Erases a block or the whole partition. - [taf\_flash\_MtdReadPage()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00449_1a928ae0df7faf3f38a83a9e7a934d4768.html#Documentationa00449_1a928ae0df7faf3f38a83a9e7a934d4768) / [taf\_flash\_MtdRead()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00449_1a475cadf31284306e5e0c9a2cad9bdccc.html#Documentationa00449_1a475cadf31284306e5e0c9a2cad9bdccc) — Reads a page or byte range. - [taf\_flash\_MtdWritePage()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00449_1ad4de6905b590f92677609a818f6af665.html#Documentationa00449_1ad4de6905b590f92677609a818f6af665) / [taf\_flash\_MtdWrite()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00449_1aa721ca49ebbbf8254dc93cc1a67420e1.html#Documentationa00449_1aa721ca49ebbbf8254dc93cc1a67420e1) — Writes a page or byte range. taf_flash_MtdOpen(partitionName, TAF_FLASH_READ_WRITE, &partitionRef); taf_flash_MtdReadBlock(partitionRef, blockIndex, data, &dataSize); taf_flash_MtdClose(partitionRef); Copy to clipboard ## UBI volume flash access - [taf\_flash\_UbiOpen()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00449_1a085437cf3c89edfe5a42fa7ae6f73fa9.html#Documentationa00449_1a085437cf3c89edfe5a42fa7ae6f73fa9) / [taf\_flash\_UbiClose()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00449_1ab7688a1c3d80f90bc976b842728605cf.html#Documentationa00449_1ab7688a1c3d80f90bc976b842728605cf) — Opens/Closes a UBI volume. - [taf\_flash\_UbiInformation()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00449_1a852962edacddccdf19a681c9794abb22.html#Documentationa00449_1a852962edacddccdf19a681c9794abb22) — Gets volume size and free block count. - [taf\_flash\_UbiRead()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00449_1a0280bda8b3b0bccff20ca40e1c69f03c.html#Documentationa00449_1a0280bda8b3b0bccff20ca40e1c69f03c) — Reads data from a byte offset. - [taf\_flash\_UbiInitWrite()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00449_1aa28c71196bc8990b10067f36ec9bc593.html#Documentationa00449_1aa28c71196bc8990b10067f36ec9bc593) — Declares total write size before writing. - [taf\_flash\_UbiWrite()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00449_1a98f3d8c6f510ed2925e9b0135e8dce5d.html#Documentationa00449_1a98f3d8c6f510ed2925e9b0135e8dce5d) — Appends data to the volume. - [taf\_flash\_UbiErase()](https://docs.qualcomm.com/doc/80-41102-2/topic/function_a00449_1afb4d872b7cd600a9ce1a80ed0a19bc4b.html#Documentationa00449_1afb4d872b7cd600a9ce1a80ed0a19bc4b) — Erases the volume. taf_flash_UbiOpen(volumeName, TAF_FLASH_READ_WRITE, &volumeRef); taf_flash_UbiInitWrite(volumeRef, volumeSize); taf_flash_UbiWrite(volumeRef, data, dataSize); taf_flash_UbiClose(volumeRef); Copy to clipboard Last Published: Jul 29, 2026 [Previous Topic Firmware Update Service](https://docs.qualcomm.com/bundle/publicresource/80-41102-2/topics/page_c_tafFwUpdate.md) [Next Topic Power Management Service](https://docs.qualcomm.com/bundle/publicresource/80-41102-2/topics/page_c_tafpm.md)