diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 13219c9..90922a2 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -12,7 +12,7 @@
   variables:
     FDO_UPSTREAM_REPO: mobile-broadband/libqmi
     FDO_DISTRIBUTION_VERSION: '20.04'
-    FDO_DISTRIBUTION_TAG: '2021-09-10.2'
+    FDO_DISTRIBUTION_TAG: '2021-10-03.1'
     FDO_DISTRIBUTION_PACKAGES: ca-certificates git gcc autoconf automake libtool
                                libgirepository1.0-dev libglib2.0-dev autopoint
                                gtk-doc-tools python-is-python3 libglib2.0-doc
diff --git a/data/qmi-collection-basic.json b/data/qmi-collection-basic.json
index 662bda9..e7ab674 100644
--- a/data/qmi-collection-basic.json
+++ b/data/qmi-collection-basic.json
@@ -102,6 +102,7 @@
     "QMI_MESSAGE_WDS_GET_PROFILE_SETTINGS",
     "QMI_MESSAGE_WDS_GET_LTE_ATTACH_PARAMETERS",
     "QMI_MESSAGE_WDS_GET_LTE_ATTACH_PDN_LIST",
+    "QMI_MESSAGE_WDS_SET_LTE_ATTACH_PDN_LIST",
 
     "QMI_MESSAGE_WDA_GET_DATA_FORMAT",
     "QMI_MESSAGE_WDA_SET_DATA_FORMAT",
diff --git a/docs/man/meson.build b/docs/man/meson.build
index e9810f7..9139142 100644
--- a/docs/man/meson.build
+++ b/docs/man/meson.build
@@ -10,16 +10,12 @@
   mans += [['qmi-firmware-update', [help2man, '--output=@OUTPUT@', '--name=Update firmware in QMI devices', qmi_firmware_update]]]
 endif
 
-# https://gitlab.freedesktop.org/mobile-broadband/libqmi/-/issues/75 was filed
-# to track the build failure on cross-compilation. This can be re-enabled when
-# the underlying issue is fixed
-#
-# foreach man: mans
-#   custom_target(
-#     man[0],
-#     output: man[0] + '.1',
-#     command: man[1],
-#     install: true,
-#     install_dir: qmi_mandir / 'man1',
-#   )
-# endforeach
+foreach man: mans
+  custom_target(
+    man[0],
+    output: man[0] + '.1',
+    command: man[1],
+    install: true,
+    install_dir: qmi_mandir / 'man1',
+  )
+endforeach
diff --git a/meson.build b/meson.build
index 3bb0259..c731214 100644
--- a/meson.build
+++ b/meson.build
@@ -3,7 +3,7 @@
 
 project(
   'libqmi', 'c',
-  version: '1.31.0',
+  version: '1.31.1',
   license: 'GPL2',
   default_options: [
     'buildtype=debugoptimized',
@@ -165,12 +165,7 @@
 endif
 
 # rmnet link management support
-enable_rmnet = false
-rmnet = get_option('rmnet')
-if not rmnet.disabled()
-  enable_rmnet = cc.has_type('struct ifla_rmnet_flags', prefix: '#include<linux/if_link.h>')
-  assert(enable_rmnet or rmnet.auto(), 'There is no \'rmnet\' link management support, use \'auto\' or \'disabled\' instead')
-endif
+enable_rmnet = not get_option('rmnet').disabled()
 config_h.set('RMNET_SUPPORT_ENABLED', enable_rmnet)
 
 # runtime MM check is optional, enabled by default
@@ -228,7 +223,12 @@
   subdir('docs/reference/libqmi-glib')
 endif
 
-help2man = find_program('help2man', required: false)
+help2man = find_program(
+  'help2man',
+# When meson >= 0.59 is popular enough, replace with
+# required: get_option('man').require(meson.can_run_host_binaries())
+  required: get_option('man'),
+)
 subdir('docs/man', if_found: help2man)
 
 configure_file(
@@ -242,6 +242,7 @@
   'Documentation': enable_gtk_doc,
   'bash completion': enable_bash_completion,
   'gobject introspection': enable_gir,
+  'man pages': help2man.found(),
 }, section: 'Build')
 
 summary({
diff --git a/meson_options.txt b/meson_options.txt
index 4d4f913..bee5daa 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -16,5 +16,6 @@
 
 option('introspection', type: 'feature', value: 'auto', description: 'build introspection support')
 option('gtk_doc', type: 'boolean', value: false, description: 'use gtk-doc to build documentation')
+option('man', type: 'feature', value: 'auto', description: 'build man pages using help2man')
 
 option('bash_completion', type: 'boolean', value: true, description: 'install bash completion files')
diff --git a/src/libqmi-glib/kernel/if_link_rmnet.h b/src/libqmi-glib/kernel/if_link_rmnet.h
index 7800e6b..19aebf1 100644
--- a/src/libqmi-glib/kernel/if_link_rmnet.h
+++ b/src/libqmi-glib/kernel/if_link_rmnet.h
@@ -8,14 +8,8 @@
 /* safe guard to avoid redefininig all these symbols if
  * the system provided kernel or libc headers already
  * define them */
-
 #if !defined IFLA_RMNET_MAX
 
-#define RMNET_FLAGS_INGRESS_DEAGGREGATION         (1U << 0)
-#define RMNET_FLAGS_INGRESS_MAP_COMMANDS          (1U << 1)
-#define RMNET_FLAGS_INGRESS_MAP_CKSUMV4           (1U << 2)
-#define RMNET_FLAGS_EGRESS_MAP_CKSUMV4            (1U << 3)
-
 enum {
 	IFLA_RMNET_UNSPEC,
 	IFLA_RMNET_MUX_ID,
@@ -32,4 +26,33 @@
 
 #endif /* IFLA_RMNET_MAX */
 
+/* per-flag safe guards, because these symbols may have been
+ * introduced in different kernel versions; we should only
+ * define those symbols not already defined by the available
+ * kernel headers */
+
+#if !defined RMNET_FLAGS_INGRESS_DEAGGREGATION
+# define RMNET_FLAGS_INGRESS_DEAGGREGATION (1U << 0)
+#endif
+
+#if !defined RMNET_FLAGS_INGRESS_MAP_COMMANDS
+# define RMNET_FLAGS_INGRESS_MAP_COMMANDS (1U << 1)
+#endif
+
+#if !defined RMNET_FLAGS_INGRESS_MAP_CKSUMV4
+# define RMNET_FLAGS_INGRESS_MAP_CKSUMV4 (1U << 2)
+#endif
+
+#if !defined RMNET_FLAGS_EGRESS_MAP_CKSUMV4
+# define RMNET_FLAGS_EGRESS_MAP_CKSUMV4 (1U << 3)
+#endif
+
+#if !defined RMNET_FLAGS_INGRESS_MAP_CKSUMV5
+#define RMNET_FLAGS_INGRESS_MAP_CKSUMV5 (1U << 4)
+#endif
+
+#if !defined RMNET_FLAGS_EGRESS_MAP_CKSUMV5
+#define RMNET_FLAGS_EGRESS_MAP_CKSUMV5 (1U << 5)
+#endif
+
 #endif /* _QMI_IF_LINK_RMNET_H */
diff --git a/src/libqmi-glib/qmi-device.h b/src/libqmi-glib/qmi-device.h
index 4fb71b5..ce45cca 100644
--- a/src/libqmi-glib/qmi-device.h
+++ b/src/libqmi-glib/qmi-device.h
@@ -953,6 +953,8 @@
  * @QMI_DEVICE_ADD_LINK_FLAGS_NONE: none.
  * @QMI_DEVICE_ADD_LINK_FLAGS_INGRESS_MAP_CKSUMV4: checksum offload (v4) is enabled in ingress path.
  * @QMI_DEVICE_ADD_LINK_FLAGS_EGRESS_MAP_CKSUMV4: checksum offload (v4) is enabled in egress path.
+ * @QMI_DEVICE_ADD_LINK_FLAGS_INGRESS_MAP_CKSUMV5: checksum offload (v5) is enabled in ingress path. Since 1.32.
+ * @QMI_DEVICE_ADD_LINK_FLAGS_EGRESS_MAP_CKSUMV5: checksum offload (v5) is enabled in egress path. Since 1.32.
  *
  * Flags specifying the behavior of the new link.
  *
@@ -962,6 +964,8 @@
     QMI_DEVICE_ADD_LINK_FLAGS_NONE                = 0,
     QMI_DEVICE_ADD_LINK_FLAGS_INGRESS_MAP_CKSUMV4 = 1 << 1,
     QMI_DEVICE_ADD_LINK_FLAGS_EGRESS_MAP_CKSUMV4  = 1 << 2,
+    QMI_DEVICE_ADD_LINK_FLAGS_INGRESS_MAP_CKSUMV5 = 1 << 3,
+    QMI_DEVICE_ADD_LINK_FLAGS_EGRESS_MAP_CKSUMV5  = 1 << 4,
 } QmiDeviceAddLinkFlags;
 
 /**
diff --git a/src/libqmi-glib/qmi-enums-dms.h b/src/libqmi-glib/qmi-enums-dms.h
index 0434801..4cf8097 100644
--- a/src/libqmi-glib/qmi-enums-dms.h
+++ b/src/libqmi-glib/qmi-enums-dms.h
@@ -81,6 +81,7 @@
  * @QMI_DMS_RADIO_INTERFACE_GSM: GSM.
  * @QMI_DMS_RADIO_INTERFACE_UMTS: UMTS.
  * @QMI_DMS_RADIO_INTERFACE_LTE: LTE.
+ * @QMI_DMS_RADIO_INTERFACE_TDS: TDS. Since 1.32.
  * @QMI_DMS_RADIO_INTERFACE_5GNR: 5G NR. Since 1.26.
  *
  * Radio interface type.
@@ -93,6 +94,7 @@
     QMI_DMS_RADIO_INTERFACE_GSM        = 4,
     QMI_DMS_RADIO_INTERFACE_UMTS       = 5,
     QMI_DMS_RADIO_INTERFACE_LTE        = 8,
+    QMI_DMS_RADIO_INTERFACE_TDS        = 9,
     QMI_DMS_RADIO_INTERFACE_5GNR       = 10,
 } QmiDmsRadioInterface;
 
diff --git a/src/libqmi-glib/qmi-net-port-manager-rmnet.c b/src/libqmi-glib/qmi-net-port-manager-rmnet.c
index f10862f..887ad7e 100644
--- a/src/libqmi-glib/qmi-net-port-manager-rmnet.c
+++ b/src/libqmi-glib/qmi-net-port-manager-rmnet.c
@@ -543,8 +543,15 @@
         rmnet_flags |= RMNET_FLAGS_INGRESS_MAP_CKSUMV4;
     if (flags & QMI_DEVICE_ADD_LINK_FLAGS_EGRESS_MAP_CKSUMV4)
         rmnet_flags |= RMNET_FLAGS_EGRESS_MAP_CKSUMV4;
+    if (flags & QMI_DEVICE_ADD_LINK_FLAGS_INGRESS_MAP_CKSUMV5)
+        rmnet_flags |= RMNET_FLAGS_INGRESS_MAP_CKSUMV5;
+    if (flags & QMI_DEVICE_ADD_LINK_FLAGS_EGRESS_MAP_CKSUMV5)
+        rmnet_flags |= RMNET_FLAGS_EGRESS_MAP_CKSUMV5;
+
     rmnet_mask = (RMNET_FLAGS_EGRESS_MAP_CKSUMV4  |
                   RMNET_FLAGS_INGRESS_MAP_CKSUMV4 |
+                  RMNET_FLAGS_EGRESS_MAP_CKSUMV5  |
+                  RMNET_FLAGS_INGRESS_MAP_CKSUMV5 |
                   RMNET_FLAGS_INGRESS_DEAGGREGATION);
 
     msg = netlink_message_new_link (ctx->mux_id, ctx->ifname, base_if_index, rmnet_flags, rmnet_mask);
diff --git a/src/qmi-firmware-update/qfu-firehose-message.c b/src/qmi-firmware-update/qfu-firehose-message.c
index bc58024..24b7a19 100644
--- a/src/qmi-firmware-update/qfu-firehose-message.c
+++ b/src/qmi-firmware-update/qfu-firehose-message.c
@@ -57,7 +57,7 @@
                 "<configure MemoryName=\"eMMC\" Verbose=\"0\" AlwaysValidate=\"0\" MaxDigestTableSizeInBytes=\"8192\" MaxPayloadSizeToTargetInBytes=\"%u\" ZlpAwareHost=\"0\" SkipStorageInit=\"0\" TargetName=\"8960\" />"
                 "%s",
                 FIREHOSE_MESSAGE_HEADER,
-                /* if not a specific value given, pass some dummy big value; we expect the modem
+                /* if not a specific value given, pass some placeholder big value; we expect the modem
                  * to return a NAK with the correct value to use after that. */
                 max_payload_size_to_target_in_bytes ? max_payload_size_to_target_in_bytes : 1048576,
                 FIREHOSE_MESSAGE_TRAILER);
diff --git a/src/qmi-firmware-update/qfu-sahara-device.c b/src/qmi-firmware-update/qfu-sahara-device.c
index dc239b1..583a906 100644
--- a/src/qmi-firmware-update/qfu-sahara-device.c
+++ b/src/qmi-firmware-update/qfu-sahara-device.c
@@ -50,7 +50,9 @@
 
 static GParamSpec *properties[PROP_LAST];
 
-#define MAX_PRINTABLE_SIZE 80
+#define DEFAULT_SECTOR_SIZE_IN_BYTES 4096
+#define DEFAULT_PAGES_IN_BLOCK       64
+#define MAX_PRINTABLE_SIZE           80
 
 struct _QfuSaharaDevicePrivate {
     GFile      *file;
@@ -60,8 +62,6 @@
     /* target and transfer settings */
     guint max_payload_size_to_target_in_bytes;
     guint sector_size_in_bytes;
-    guint num_partition_sectors;
-    guint total_sector_size_in_bytes;
     guint pages_in_block;
     /* computed from settings */
     guint transfer_block_size;
@@ -874,8 +874,6 @@
     FirehoseInitStep step;
     guint            max_payload_size_to_target_in_bytes;
     guint            sector_size_in_bytes;
-    guint            num_partition_sectors;
-    guint            total_sector_size_in_bytes;
     guint            pages_in_block;
 } FirehoseInitContext;
 
@@ -896,10 +894,6 @@
         g_strstrip (strv[1]);
         if (g_ascii_strcasecmp (strv[0], "sector_size_in_bytes") == 0)
             ctx->sector_size_in_bytes = atoi (strv[1]);
-        else if (g_ascii_strcasecmp (strv[0], "num_partition_sectors") == 0)
-            ctx->num_partition_sectors = atoi (strv[1]);
-        else if (g_ascii_strcasecmp (strv[0], "total_sector_size_in_bytes") == 0)
-            ctx->total_sector_size_in_bytes = atoi (strv[1]);
         else if (g_ascii_strcasecmp (strv[0], "pages_in_block") == 0)
             ctx->pages_in_block = atoi (strv[1]);
     }
@@ -1020,8 +1014,6 @@
         .step                                = FIREHOSE_INIT_STEP_PING,
         .max_payload_size_to_target_in_bytes = 0,
         .sector_size_in_bytes                = 0,
-        .num_partition_sectors               = 0,
-        .total_sector_size_in_bytes          = 0,
         .pages_in_block                      = 0,
     };
 
@@ -1037,21 +1029,23 @@
                                  error))
         return FALSE;
 
-#define VALIDATE_FIELD(FIELD,DESCR) do {                                          \
-        if (!ctx.FIELD) {                                                         \
-            g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED, "unknown " DESCR); \
-            return FALSE;                                                         \
-        }                                                                         \
-        self->priv->FIELD = ctx.FIELD;                                                \
-    } while (0)
+    if (!ctx.sector_size_in_bytes) {
+        g_debug ("[qfu-sahara-device] using default sector size (%u bytes)", DEFAULT_SECTOR_SIZE_IN_BYTES);
+        self->priv->sector_size_in_bytes = DEFAULT_SECTOR_SIZE_IN_BYTES;
+    } else
+        self->priv->sector_size_in_bytes = ctx.sector_size_in_bytes;
 
-    VALIDATE_FIELD (max_payload_size_to_target_in_bytes, "max payload size");
-    VALIDATE_FIELD (sector_size_in_bytes,                "sector size");
-    VALIDATE_FIELD (num_partition_sectors,               "number of partition sectors");
-    VALIDATE_FIELD (total_sector_size_in_bytes,          "total sector size");
-    VALIDATE_FIELD (pages_in_block,                      "pages in block");
+    if (!ctx.pages_in_block) {
+        g_debug ("[qfu-sahara-device] using default pages in block (%u)", DEFAULT_PAGES_IN_BLOCK);
+        self->priv->pages_in_block = DEFAULT_PAGES_IN_BLOCK;
+    } else
+        self->priv->pages_in_block = ctx.pages_in_block;
 
-#undef VALIDATE_FIELD
+    if (!ctx.max_payload_size_to_target_in_bytes) {
+        g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED, "unknown max payload size");
+        return FALSE;
+    }
+    self->priv->max_payload_size_to_target_in_bytes = ctx.max_payload_size_to_target_in_bytes;
 
     /* compute transfer block size, which will be equal to the max payload size
      * to target if it's multiple of sector size */
diff --git a/src/qmi-proxy/meson.build b/src/qmi-proxy/meson.build
index dd8f818..fa00c4a 100644
--- a/src/qmi-proxy/meson.build
+++ b/src/qmi-proxy/meson.build
@@ -16,7 +16,7 @@
   configure_file(
     input: '76-qmi-proxy-device-ownership.rules.in',
     output: '@BASENAME@',
-    configuration: config_h,
+    configuration: {'QMI_USERNAME': qmi_username},
     install_dir: udev_udevdir / 'rules.d',
   )
 endif
diff --git a/src/qmicli/qmicli-gms.c b/src/qmicli/qmicli-gms.c
index 98e3f30..e0050d3 100644
--- a/src/qmicli/qmicli-gms.c
+++ b/src/qmicli/qmicli-gms.c
@@ -187,7 +187,6 @@
         parts = g_strsplit_set (str, ",", -1);
         if (g_strv_length (parts) != 2) {
             g_printerr ("error: failed to parse test value: '%s'\n", str);
-            g_strfreev (parts);
             goto out;
         }
         mand_value_str = parts[0];
diff --git a/src/qmicli/qmicli-uim.c b/src/qmicli/qmicli-uim.c
index ff5b9fd..d88c73a 100644
--- a/src/qmicli/qmicli-uim.c
+++ b/src/qmicli/qmicli-uim.c
@@ -311,9 +311,9 @@
         qmicli_read_enable_disable_from_string (split[1], &enable_disable) &&
         qmicli_read_non_empty_string (split[2], "current PIN", &current_pin)) {
         GError *error = NULL;
-        GArray *dummy_aid;
+        GArray *placeholder_aid;
 
-        dummy_aid = g_array_new (FALSE, FALSE, sizeof (guint8));
+        placeholder_aid = g_array_new (FALSE, FALSE, sizeof (guint8));
 
         input = qmi_message_uim_set_pin_protection_input_new ();
         if (!qmi_message_uim_set_pin_protection_input_set_info (
@@ -325,7 +325,7 @@
             !qmi_message_uim_set_pin_protection_input_set_session (
                 input,
                 QMI_UIM_SESSION_TYPE_CARD_SLOT_1,
-                dummy_aid, /* ignored */
+                placeholder_aid, /* ignored */
                 &error)) {
             g_printerr ("error: couldn't create input data bundle: '%s'\n",
                         error->message);
@@ -333,7 +333,7 @@
             qmi_message_uim_set_pin_protection_input_unref (input);
             input = NULL;
         }
-        g_array_unref (dummy_aid);
+        g_array_unref (placeholder_aid);
     }
     g_strfreev (split);
 
@@ -407,9 +407,9 @@
     if (qmicli_read_uim_pin_id_from_string (split[0], &pin_id) &&
         qmicli_read_non_empty_string (split[1], "current PIN", &current_pin)) {
         GError *error = NULL;
-        GArray *dummy_aid;
+        GArray *placeholder_aid;
 
-        dummy_aid = g_array_new (FALSE, FALSE, sizeof (guint8));
+        placeholder_aid = g_array_new (FALSE, FALSE, sizeof (guint8));
 
         input = qmi_message_uim_verify_pin_input_new ();
         if (!qmi_message_uim_verify_pin_input_set_info (
@@ -420,7 +420,7 @@
             !qmi_message_uim_verify_pin_input_set_session (
                 input,
                 QMI_UIM_SESSION_TYPE_CARD_SLOT_1,
-                dummy_aid, /* ignored */
+                placeholder_aid, /* ignored */
                 &error)) {
             g_printerr ("error: couldn't create input data bundle: '%s'\n",
                         error->message);
@@ -428,7 +428,7 @@
             qmi_message_uim_verify_pin_input_unref (input);
             input = NULL;
         }
-        g_array_unref (dummy_aid);
+        g_array_unref (placeholder_aid);
     }
     g_strfreev (split);
 
@@ -504,9 +504,9 @@
         qmicli_read_non_empty_string (split[1], "PUK", &puk) &&
         qmicli_read_non_empty_string (split[2], "new PIN", &new_pin)) {
         GError *error = NULL;
-        GArray *dummy_aid;
+        GArray *placeholder_aid;
 
-        dummy_aid = g_array_new (FALSE, FALSE, sizeof (guint8));
+        placeholder_aid = g_array_new (FALSE, FALSE, sizeof (guint8));
 
         input = qmi_message_uim_unblock_pin_input_new ();
         if (!qmi_message_uim_unblock_pin_input_set_info (
@@ -518,7 +518,7 @@
             !qmi_message_uim_unblock_pin_input_set_session (
                 input,
                 QMI_UIM_SESSION_TYPE_CARD_SLOT_1,
-                dummy_aid, /* ignored */
+                placeholder_aid, /* ignored */
                 &error)) {
             g_printerr ("error: couldn't create input data bundle: '%s'\n",
                         error->message);
@@ -526,7 +526,7 @@
             qmi_message_uim_unblock_pin_input_unref (input);
             input = NULL;
         }
-        g_array_unref (dummy_aid);
+        g_array_unref (placeholder_aid);
     }
     g_strfreev (split);
 
@@ -602,9 +602,9 @@
         qmicli_read_non_empty_string (split[1], "old PIN", &old_pin) &&
         qmicli_read_non_empty_string (split[2], "new PIN", &new_pin)) {
         GError *error = NULL;
-        GArray *dummy_aid;
+        GArray *placeholder_aid;
 
-        dummy_aid = g_array_new (FALSE, FALSE, sizeof (guint8));
+        placeholder_aid = g_array_new (FALSE, FALSE, sizeof (guint8));
 
         input = qmi_message_uim_change_pin_input_new ();
         if (!qmi_message_uim_change_pin_input_set_info (
@@ -616,7 +616,7 @@
             !qmi_message_uim_change_pin_input_set_session (
                 input,
                 QMI_UIM_SESSION_TYPE_CARD_SLOT_1,
-                dummy_aid, /* ignored */
+                placeholder_aid, /* ignored */
                 &error)) {
             g_printerr ("error: couldn't create input data bundle: '%s'\n",
                         error->message);
@@ -624,7 +624,7 @@
             qmi_message_uim_change_pin_input_unref (input);
             input = NULL;
         }
-        g_array_unref (dummy_aid);
+        g_array_unref (placeholder_aid);
     }
     g_strfreev (split);
 
@@ -1721,18 +1721,18 @@
     QmiMessageUimReadTransparentInput *input;
     guint16 file_id = 0;
     GArray *file_path = NULL;
-    GArray *dummy_aid;
+    GArray *placeholder_aid;
 
     if (!get_sim_file_id_and_path (file_path_str, &file_id, &file_path))
         return NULL;
 
-    dummy_aid = g_array_new (FALSE, FALSE, sizeof (guint8));
+    placeholder_aid = g_array_new (FALSE, FALSE, sizeof (guint8));
 
     input = qmi_message_uim_read_transparent_input_new ();
     qmi_message_uim_read_transparent_input_set_session (
         input,
         QMI_UIM_SESSION_TYPE_PRIMARY_GW_PROVISIONING,
-        dummy_aid, /* ignored */
+        placeholder_aid, /* ignored */
         NULL);
     qmi_message_uim_read_transparent_input_set_file (
         input,
@@ -1741,7 +1741,7 @@
         NULL);
     qmi_message_uim_read_transparent_input_set_read_information (input, 0, 0, NULL);
     g_array_unref (file_path);
-    g_array_unref (dummy_aid);
+    g_array_unref (placeholder_aid);
     return input;
 }
 
@@ -1893,7 +1893,7 @@
     };
     guint16 file_id = 0;
     GArray *file_path = NULL;
-    GArray *dummy_aid;
+    GArray *placeholder_aid;
 
     if (!qmicli_parse_key_value_string (str,
                                         &error,
@@ -1909,14 +1909,14 @@
     if (!get_sim_file_id_and_path_with_separator (props.file, &file_id, &file_path, "-"))
         goto out;
 
-    dummy_aid = g_array_new (FALSE, FALSE, sizeof (guint8));
+    placeholder_aid = g_array_new (FALSE, FALSE, sizeof (guint8));
 
     input = qmi_message_uim_read_record_input_new ();
 
     qmi_message_uim_read_record_input_set_session (
         input,
         QMI_UIM_SESSION_TYPE_PRIMARY_GW_PROVISIONING,
-        dummy_aid, /* ignored */
+        placeholder_aid, /* ignored */
         NULL);
     qmi_message_uim_read_record_input_set_file (
         input,
@@ -1929,7 +1929,7 @@
         props.record_length,
         NULL);
 
-    g_array_unref (dummy_aid);
+    g_array_unref (placeholder_aid);
 
 out:
     free (props.file);
@@ -2089,25 +2089,25 @@
     QmiMessageUimGetFileAttributesInput *input;
     guint16 file_id = 0;
     GArray *file_path = NULL;
-    GArray *dummy_aid;
+    GArray *placeholder_aid;
 
     if (!get_sim_file_id_and_path (file_path_str, &file_id, &file_path))
         return NULL;
 
-    dummy_aid = g_array_new (FALSE, FALSE, sizeof (guint8));
+    placeholder_aid = g_array_new (FALSE, FALSE, sizeof (guint8));
 
     input = qmi_message_uim_get_file_attributes_input_new ();
     qmi_message_uim_get_file_attributes_input_set_session (
         input,
         QMI_UIM_SESSION_TYPE_PRIMARY_GW_PROVISIONING,
-        dummy_aid, /* ignored */
+        placeholder_aid, /* ignored */
         NULL);
     qmi_message_uim_get_file_attributes_input_set_file (
         input,
         file_id,
         file_path,
         NULL);
-    g_array_unref (dummy_aid);
+    g_array_unref (placeholder_aid);
     g_array_unref (file_path);
     return input;
 }
@@ -2148,15 +2148,15 @@
                   gboolean success)
 {
     QmiMessageUimRefreshCompleteInput *refresh_complete_input;
-    GArray *dummy_aid;
+    GArray *placeholder_aid;
 
-    dummy_aid = g_array_new (FALSE, FALSE, sizeof (guint8));
+    placeholder_aid = g_array_new (FALSE, FALSE, sizeof (guint8));
 
     refresh_complete_input = qmi_message_uim_refresh_complete_input_new ();
     qmi_message_uim_refresh_complete_input_set_session (
         refresh_complete_input,
         QMI_UIM_SESSION_TYPE_CARD_SLOT_1,
-        dummy_aid, /* ignored */
+        placeholder_aid, /* ignored */
         NULL);
     qmi_message_uim_refresh_complete_input_set_info (
         refresh_complete_input,
@@ -2171,7 +2171,7 @@
         (GAsyncReadyCallback) refresh_complete_ready,
         NULL);
     qmi_message_uim_refresh_complete_input_unref (refresh_complete_input);
-    g_array_unref (dummy_aid);
+    g_array_unref (placeholder_aid);
 }
 
 static void
@@ -2280,7 +2280,7 @@
 register_refresh_events (gchar **file_path_array)
 {
     QmiMessageUimRefreshRegisterInput *refresh_input;
-    GArray *dummy_aid;
+    GArray *placeholder_aid;
     GArray *file_list;
     QmiMessageUimRefreshRegisterInputInfoFilesElement file_element;
     guint i;
@@ -2295,12 +2295,12 @@
         file_path_array++;
     }
 
-    dummy_aid = g_array_new (FALSE, FALSE, sizeof (guint8));
+    placeholder_aid = g_array_new (FALSE, FALSE, sizeof (guint8));
     refresh_input = qmi_message_uim_refresh_register_input_new ();
     qmi_message_uim_refresh_register_input_set_session (
         refresh_input,
         QMI_UIM_SESSION_TYPE_CARD_SLOT_1,
-        dummy_aid, /* ignored */
+        placeholder_aid, /* ignored */
         NULL);
     qmi_message_uim_refresh_register_input_set_info (
         refresh_input,
@@ -2317,7 +2317,7 @@
         (GAsyncReadyCallback) register_refresh_events_ready,
         NULL);
     qmi_message_uim_refresh_register_input_unref (refresh_input);
-    g_array_unref (dummy_aid);
+    g_array_unref (placeholder_aid);
 
 out:
     for (i = 0; i < file_list->len; i++) {
@@ -2374,14 +2374,14 @@
 register_refresh_all_events (void)
 {
     QmiMessageUimRefreshRegisterAllInput *refresh_all_input;
-    GArray *dummy_aid;
+    GArray *placeholder_aid;
 
     refresh_all_input = qmi_message_uim_refresh_register_all_input_new ();
-    dummy_aid = g_array_new (FALSE, FALSE, sizeof (guint8));
+    placeholder_aid = g_array_new (FALSE, FALSE, sizeof (guint8));
     qmi_message_uim_refresh_register_all_input_set_session (
         refresh_all_input,
         QMI_UIM_SESSION_TYPE_CARD_SLOT_1,
-        dummy_aid, /* ignored */
+        placeholder_aid, /* ignored */
         NULL);
 
     qmi_message_uim_refresh_register_all_input_set_info (
@@ -2396,7 +2396,7 @@
         (GAsyncReadyCallback) register_refresh_all_events_ready,
         NULL);
     qmi_message_uim_refresh_register_all_input_unref (refresh_all_input);
-    g_array_unref (dummy_aid);
+    g_array_unref (placeholder_aid);
 }
 
 #endif /* HAVE_QMI_MESSAGE_UIM_REFRESH_REGISTER_ALL */
diff --git a/utils/swi-update.c b/utils/swi-update.c
index d046d88..609c5ba 100644
--- a/utils/swi-update.c
+++ b/utils/swi-update.c
@@ -922,7 +922,7 @@
 /* FIXME: should do the following for a complete image upload*
  *
  *  For CWE images:
- *    - verify image sanity and retrive model/version data for next step if applicable
+ *    - verify image and retrive model/version data for next step if applicable
  *    - if application mode:
  *       + verify qmi model/version matching image
  *       + check usb sysfs (serial++) to match against bootloader mode
