diff --git a/src/lynq/lib/liblynq-data/lynq_data.cpp b/src/lynq/lib/liblynq-data/lynq_data.cpp
index bd7ec21..bfa0c94 100755
--- a/src/lynq/lib/liblynq-data/lynq_data.cpp
+++ b/src/lynq/lib/liblynq-data/lynq_data.cpp
@@ -13,6 +13,7 @@
 #include <pthread.h>
 #include "liblog/lynq_deflog.h"
 #include <sys/time.h>
+#include <include/lynq_uci.h>
 #define LYNQ_SERVICE_PORT 8088
 #define LYNQ_URC_SERVICE_PORT 8086
 #define LYNQ_REC_BUF 8192
@@ -20,6 +21,12 @@
 #define LYQN_SEDN_BUF 1024*8+sizeof(int)*3
 #define USER_LOG_TAG "LYNQ_DATA"
 
+#define LYNQ_DATA_UCI_BUF 258
+#define LYNQ_DATA_UCI_APN_SECTION "lynq_apn_info"
+#define LYNQ_DATA_UCI_APN_KEY "insertId"
+
+
+
 using ::android::Parcel;
 typedef struct{
     int uToken;
@@ -886,7 +893,34 @@
 /*Typethree add for T800 platform 2022/04/21 start*/
 int insert_apn_char(char *agc, char *mcc, char *mnc, char *apn, char *apntype, char *user, char *password, char *normalprotocol, char *roamingprotocol, char *carrier)
 {
+    int ret = 0;
+    int fact_apn_id=0;
+    int tmp_id_num = 0;
+    char tmp_ID[16]="";
+    char apn_info_buf[LYNQ_DATA_UCI_BUF]="";
+    char apn_info_outbuf[LYNQ_DATA_UCI_BUF];
     char strtmp[10][32];
+
+    sprintf(apn_info_buf,"%s.%s.%s",LYNQ_UCI_FILE,LYNQ_DATA_UCI_APN_SECTION,LYNQ_DATA_UCI_APN_KEY);
+    ret = lynq_uci_get(apn_info_buf,apn_info_outbuf);
+    if (ret != UCI_OK)
+    {
+        LYERRLOG("Description APN failed to allocate an ID :ret = -1");
+        return -1;
+    }
+    tmp_id_num = atoi(apn_info_outbuf);
+    fact_apn_id = -tmp_id_num;
+    tmp_id_num = tmp_id_num + 1;
+
+    apn_info_buf[LYNQ_DATA_UCI_BUF]="";
+    sprintf(apn_info_buf,"%s.%s.%s=%d",LYNQ_UCI_FILE,LYNQ_DATA_UCI_APN_SECTION,LYNQ_DATA_UCI_APN_KEY,tmp_id_num);
+
+    ret = lynq_uci_set(apn_info_buf);
+    if (ret != UCI_OK)
+    {
+        LYERRLOG("Description APN failed to allocate an ID :ret = -2");
+        return -1;
+    }
     if (mcc == NULL)
     {
         sprintf(strtmp[1], "mcc=;");
@@ -959,7 +993,8 @@
     {
         sprintf(strtmp[9], "carrier=%s;", carrier);
     }
-    sprintf(agc, "%s%s%s%s%s%s%s%s%s", strtmp[1], strtmp[2], strtmp[3], strtmp[4], strtmp[5], strtmp[6], strtmp[7], strtmp[8], strtmp[9]);
+    sprintf(agc, "id=%d;%s%s%s%s%s%s%s%s%s",fact_apn_id, strtmp[1], strtmp[2], strtmp[3], strtmp[4], strtmp[5], strtmp[6], strtmp[7], strtmp[8], strtmp[9]);
+
     return 0;
 }
 
@@ -1157,11 +1192,16 @@
     lynq_client_t client;
     char argc[512];
     char recvline[LYNQ_REC_BUF];
-    int len = 0;
+    int res = 0;
     Parcel p;
     if (cmd == 0) // insert apn db
     {
-        insert_apn_char(argc, mcc, mnc, apn, apntype, user, password, normalprotocol, roamingprotocol, carrier);
+        res = insert_apn_char(argc, mcc, mnc, apn, apntype, user, password, normalprotocol, roamingprotocol, carrier);
+        if (res != UCI_OK)
+        {
+            LYERRLOG("Description APN failed to allocate an ID");
+            return -1;
+        }
         client.uToken = Global_uToken;
         client.request = 2000 + 193; // RIL_REQUEST_MODIFY_APN
         client.paramLen = 2;
diff --git a/src/lynq/lib/liblynq-data/makefile b/src/lynq/lib/liblynq-data/makefile
index 0a02ec8..183ebaa 100755
--- a/src/lynq/lib/liblynq-data/makefile
+++ b/src/lynq/lib/liblynq-data/makefile
@@ -34,6 +34,7 @@
     -lbinder \
     -lpthread \
     -llynq-log \
+    -llynq-uci \
 
 
 SOURCES = $(wildcard *.cpp)
diff --git a/src/lynq/lib/liblynq-uci/lynq_uci.config b/src/lynq/lib/liblynq-uci/lynq_uci.config
index 986a69e..cfa628c 100755
--- a/src/lynq/lib/liblynq-uci/lynq_uci.config
+++ b/src/lynq/lib/liblynq-uci/lynq_uci.config
@@ -21,3 +21,5 @@
 config  adb 'tcp'
         option port '5555'
 
+config lynq_apn 'lynq_apn_info'
+        option insertId '0'
\ No newline at end of file
