Merge "[Bugfix][L805A-6] solve lynq_get_current_call_state_ext get slot failed after hungup current call" into DSDS
diff --git a/common_src/framework/lynq-ril-service/src/sim.cpp b/common_src/framework/lynq-ril-service/src/sim.cpp
index d6023be..f0ee5d9 100755
--- a/common_src/framework/lynq-ril-service/src/sim.cpp
+++ b/common_src/framework/lynq-ril-service/src/sim.cpp
@@ -219,13 +219,14 @@
     str = str + "default data: " + std::to_string(get_default_sim_data()) + "\n";
     str = str + "main capability SIM: " + std::to_string(Radio_capability_switch_util::get_main_capability_phone_id()) + "\n";
 #ifdef MODE_DSDS
+    RLOGD(str.c_str());
     android::Parcel p;
     p.writeInt32(1);//response_type
     p.writeInt32(0);//token 
     p.writeInt32(LYNQ_REQUEST_GET_DEFAULT_SIM_ALL);//request_id
     p.writeInt32(slot_id);//slot_id
     p.writeInt32(0);//error_code
-    p.writeInt32((get_default_sim_data()*2) + (get_default_sim_all_except_data()));//data
+    p.writeInt32((get_default_sim_data()) + (get_default_sim_all_except_data()*2));//data
     p.setDataPosition(0);
     android::lynq_emResultNotify(p);
 #else
diff --git a/common_src/lib/liblynq-data/lynq_data.cpp b/common_src/lib/liblynq-data/lynq_data.cpp
index 06913d4..e0bf95a 100755
--- a/common_src/lib/liblynq-data/lynq_data.cpp
+++ b/common_src/lib/liblynq-data/lynq_data.cpp
@@ -1982,10 +1982,47 @@
 {
     LYINFLOG("check_apn_status enter");
     int ret = -1;
+    int sim_ret = -1;
+    int slot = -1;
     char cmd_ret[8] ={0};//get mccmnc
-    const char *cmd = "uci get radio_property.property.vendor_ril_data_gsm_mcc_mnc0";
+    const char *sim_0_cmd = "uci get radio_property.property.vendor_ril_data_gsm_mcc_mnc0";
+    const char *sim_1_cmd = "uci get radio_property.property.vendor_ril_data_gsm_mcc_mnc1";
+    const char *sim_cmd = "uci get radio_property.property.persist_vendor_radio_data_sim";
     const char *empty_str = ":empty";
-    ret = exec_cmd(cmd,cmd_ret,8);
+    //xy.he add for get sim slot at 20240507 start
+    sim_ret = exec_cmd(sim_cmd,cmd_ret,8);
+    if(sim_ret==0)
+    {
+        if(strlen(cmd_ret)==0)
+        {
+            LYERRLOG("not have sim config in uci ram");
+            return 1;
+        }
+        if(strncmp(cmd_ret,empty_str,strlen(empty_str))==0)
+        {
+            LYERRLOG("sim is empty");
+            return 2;
+        }
+        LYINFLOG("sim is %s",cmd_ret);
+        slot = atoi(cmd_ret);
+    }
+    else
+    {
+        LYERRLOG("exec cmd fail");
+        return -1;
+    }
+
+    if(slot == 1)
+    {
+        ret = exec_cmd(sim_0_cmd,cmd_ret,8);
+    }
+
+    else if(slot == 2)
+    {
+        ret = exec_cmd(sim_1_cmd,cmd_ret,8);
+    }
+    //xy.he add for get sim slot at 20240507 end
+	
     if(ret==0)
     {
         if(strlen(cmd_ret)==0)