Documentation for IDF v4.1.1 is available at https://docs.espressif.com/projects/esp-idf/en/v4.1.1/
ESP-IDF v4.1.1 is a bugfix update for ESP-IDF v4.1. ESP-IDF v4.2 is the latest stable release at time of writing.
ESP-IDF v4.1.x will be supported until February 2023, according to the ESP-IDF Support Policy.
Obtaining v4.1.1
For full installation instructions, see the ESP-IDF Programming Guide.
The source files attached to this release will not work due to our use of git submodules. Use one of the following methods instead:
Using git
To get this release, use the following commands:
git clone -b v4.1.1 --recursive https://github.com/espressif/esp-idf.git esp-idf-v4.1.1
cd esp-idf-4.1.1/
This is the recommended way of obtaining v4.1.1 of ESP-IDF.
Download an archive with submodules included
Attached to this release is an esp-idf-v4.1.1.zip
archive. It includes .git
directory and all the submodules, so can be used out of the box. This archive is provided for users who have connectivity issues preventing them from cloning from GitHub.
This archive can also be downloaded from Espressif's download server:
https://dl.espressif.com/dl/esp-idf/releases/esp-idf-v4.1.1.zip
Changelog
This is the list of changes since release v4.1:
Major Bug Fixes
- Bluedroid: Fixed ‘Impersonation in the Passkey Entry Protocol’ Vulnerability: CVE-2020-26558
- Bluedroid: Added comments to avoid ‘Impersonation in the Pin Pairing Protocol' Vulnerability: (CVE-2020-26555)
- Bluedroid: Added comments to avoid ‘Authentication of the LE Legacy Pairing Protocol' Vulnerability.
- Bluedroid: Fixed the issue that bluedroid may accept connection request if BD_ADDR of peer is same as ours (CVE-2020-26555).
- Secure Boot: Fixed crash in app if signature verification fails (#6210)
Bluetooth
Classic Bluetooth
Controller
- Fixed BT controller dead if CLKN overflow
- Provided a workaround for an issue when entering sniff mode
- Rewrite ld_acl_frm_isr to make clock read more precise and use less IRAM
- Remove dummy assert when ESP32 receives a passkey request
- Fixed incorrect time computation and replaced the use of "+" with CLK_ADD2()
- Rewrite ld_acl_frm_isr to make clock read more precise
- Fixed memory corruption caused by bluetooth memory release
Bluedroid
-
Separated BTA_JV_L2CAP to reduce bin size of SPP profile
-
SPP: Added API esp_spp_stop_srv()
-
SPP: Fixed the error parameter in spp examples (#5408)
-
SPP: Moved RFCOMM rx flow control in btc layer
-
SPP: Fixed the parameter size of API spp_vfs_write cannot exceed 1000
-
SPP: Fixed task watch dog when running SPP demo in VFS mode
-
SPP: Fix SPP using NULL pointer when bluedroid dynamic memory option is enabled
-
SPP: Added events if there are some internal errors when calling esp_spp_xxx API
-
HID: Added support for more Bluetooth HID devices (#5481)
-
HFP AG: fixed error of AG API return line (#5554)
-
HFP AG: fixed AG Example Outgoing Callback Not Triggered (#4967)
-
HFP: Enabled PCM config in menuconfig and controller
-
A2DP: Added information to Application layer that the A2DP is connecting to peer device
-
A2DP: Added reaction for A2DP SNK & SRC disconn req when no link up
-
A2DP: Added a2dp init & deinit state variable to inidcate a2dp statement
-
Separate A2DP and AVRC init procedure and set the sequence of initialization of them
-
Added bool open_fail to choose whether post disconnection event to app layer
-
GAP: Fixed read rssi delta issue in bredr (#5660)
-
GAP: Authentication fixes in Legacy and Secure Connection
-
GAP: Calling esp_bt_gap_get_bond_device_list in some scenarios may return invalid Bluetooth address (#5395)
-
GAP: Fixed redundant events of ESP_BT_GAP_DISC_STATE_CHANGED_EVT occurring in registering GAP callback function
-
Added BTC Init failure protection
-
Changed state machine set before EVT up to APP layer in some cases
-
Fixed BTC task name mismatch (#4966)
-
Fixed issue that bluedroid enable takes long time
-
Fixed the issue that state failed to synchronize between controller and host when disconnected
-
Fixed crash caused by calling a2dp_deinit directly when a2dp connected
-
Fixed ‘Impersonation in the Passkey Entry Protocol’ Vulnerability: CVE-2020-26558
-
Added comments to avoid ‘Impersonation in the Pin Pairing Protocol' Vulnerability: (CVE-2020-26555)
-
Added comments to avoid ‘Authentication of the LE Legacy Pairing Protocol' Vulnerability.
-
Fixed the issue that bluedroid may accept connection request if BD_ADDR of peer is same as ours (CVE-2020-26555).
Bluetooth Low Energy
Controller
- Added BLE connection paramter check
- Fixed channel map instant reverse
- Fixed the issue that supervision timeout in LLC DISC busy state can not disconnect
- Fixed cache disable crash
- Fixed tx_prog insert error
- Changed the default value of the TxOctets support length from 27 to 251
- Fixed hci timeout, added timer to monitor scan event
- Fixed assert(9, 10) when rx and evt_end interrupts exist at the same time, use the information of rx to determine the execution order
- Fix ble assert(1024, 0), ADV_UNDERRUN error
- Fixed ble assert(512, 0), IFS_UNDERRUN error
- Fixed assert(10, 9) when the AFPM happens
- Fixed exl200, add btdm_disable_adv_delay, fix RPA addr update error
- Fixed the problem of early release of pointer(p_ccb) in function
- Fixed HCI Timeout by 0x40F or 0x41C by freeing ACL RX Buffer in Exchange Memory
- Added protection for ACL-U packet type exchange procedure
- Fixed a potential double free error
Bluedroid
- Added support of BLE Authorization
- Added support of BLE Application Layer Encryption key size check
- Added support of BLE Read Attribute value by UUID
- Added support of BLE Non-Resolvable Private Address setting
- Fixed BLE incorrect encryption flag setting
- Fixed the btu task watchdog timeout during multi-connection
- Fixed name typo of BTA_GATTS_CREATE_SRVC_EVT event (#5446)
Blufi
- Fixed the issue that sending longer customer data will cause congestion
- Fixed the issue that the sequence still increases when Blufi is sending data on disconnection
- Fixed an error caused by incorrect conn_id parameters
- Add a macro to control the compilation of blufi
NimBLE
- Added Non Resolvable Private Address support to existing Host based Privacy framework
- Added header guards and closing bracket conditional for c++ in ble_hs_pvcy.h (espressif/esp-nimble#12)
- Fixed repeated pairing failure in RPA (#5530)
- Fixed potential issue with strncpy in os_mempool.c (apache/mynewt-nimble#843)
- Check for received buffer size less than configured event buffer size
- Fixed some bugs in NimBLE NVS storage and ble_eddystone
- Remove recursive call (apache/mynewt-nimble#857)
- Added missing MYNEWT_VAL_BLE_L2CAP_COC_MPS definition (#5825)
ESP-BLE-Mesh
- Updated connection parameters used by Central
- Added Node local NetKey & AppKey get/add/bind functions
- New Kconfig options introduced to reduce code size
- Fixed wrong description of BLE Mesh server model auto_rsp flag (#5966)
- Fixed info not erased when deinit node with "erase_flag" set to true
- No store pending timeout will be used when node is not provisioned or Provisioner is disabled with erase operation performed
- Make mesh stack net buf debug option invisible
- Updated mesh device property to v2
- Check device role when enabling node/Provisioner functionality
- Added mutex to protect settings operations
- Optimized Provisioner erase info operations
- Optimized Provisioner delete device function
- Check if stack is initialized before initializing vendor client
- Fixed not using the latest iv_index for provisioning
- Synchronized a few BLE Mesh updates from Zephyr
- Using callbacks for model init operations
- Optimized model recv message operation
- Added net_buf_simple_init_with_data
- Porting the full implementation of tinycrypt
- Avoid unnecessary assert in mesh stack
- Fixed updating ccc handle incorrectly when using NimBLE host
- Client model related miscellaneous optimizations
- Fixed handling health current status incorrectly
- Added proxy cfg pdu length check
- Reworked using dev flag to check scan status
- Added more checks of input provisioning bearers
- Updated options of using PSRAM for BLE Mesh
- Updated send_ttl in btc layer when receiving a message (#5300)
- Added support to get node info with pre-configured node name (#5397)
- Fixed compile error when only proxy enabled
- Fixed the issue that recv_rssi of received messages is always 0 (#5505)
- Added a few checks of model status with variable length
- Added check of if subnet exists before updating beacon_sent
- Fixed the issue of DO NOT #define bool when compiling in C++ (#5100)
- Fixed wrong log output when using bt_hex
- Fixed node failed to send messages to 0xFFFF
- Added support of subscribing group address by a local model (#4044)
- Added BLE mesh coex test demo
Wi-Fi Coexistence
- Fixed an issue that BLE terminate ack packet cannot be received with a high probability in coex mode
- Rewrite BLE dynamic priority in connection establishment
- Rewrite BLE dynamic priority to fix ble disconn in conn_param_update/channel_map_update
- Fixed status bit set error when conn fail
- Fixed ble dynamic prio with latency
- Reduced image size of Wi-Fi and Bluetooth by not linking coexist code
Wi-Fi
- Update WiFi toolchain to 1.22.0-97-gc752ad5
- Added Failure reason code for WPS event
- Added IRAM_ATTR periph_ll_wifi_bt_module_enable_clk_clear_rst and IRAM_ATTR periph_ll_wifi_bt_module_disable_clk_set_rstto fit O0 optimization level
- wpa_supplicant: fixed wpa memory leak in softap mode
- wpa_supplicant: Allow NULL-padded WPS attributes
- wpa_supplicant: Bypass WPS-Config method validation
- wpa_supplicant: Deinit wpa2 states in wifi deinit
- wpa_supplicant: added support for mbedtls tls handshake
- wpa_supplicant: fixed invalid pointer deference and memleak
- wpa_supplicant: fixed IOT issue with latest freeradius (#5273)
- wpa_supplicant: fixed WPA3 and WPA2 transition related failures
- wpa_supplicant: fixed linker errors depending on link order on some systems (#5641)
- wpa_supplicant: increased PMK lifetime to 100 days
- Replaced periph_module_enable/disable by periph_wifi_bt_common_module_enable which are in IRAM
- Deleted duplicated spinlock and counter
- Fixed the crash when wifi stops after deinit
- Fixed an issue when setting TX DMA buffer above 32 would not take effect
- Configure bandwidth and phy mode to store NVS
- Added TBTT update when AP reset TSF
- Fixed the issue of regdomian update
- Added API to get available internal heap size
- Fixed the issue of memory stepped on when reorganizing WiFi fragment packets
- Do not reset softAP's TSF except it restarts
- Added sending sta connection event again after ap sent disconnect event
- Added API of setting/getting inactive time
- Fixed the issue when station connects to hidden AP, fails to update rssi value of hidden AP
- Set default AP handlers in wifi_create_and_start_ap() (#5844)
- Fixed SPIFFS conflicts with WIFI when using SPIRAM (#5629)
- Modified LR for ESP32
- Optimize some debug logs for probe response
- Fixed the issue of no event for connection
- Fixed an issue for timestamp check, didn't disconnect AP when AP's timestamp decrease abnormally
- Fixed obsolete interface gethostbyname (#4510)
- Disabling Menuconfig option "Enable WPA3-Personal" now disables WPA3 code, reduces code size by around 7.7kB (#5971)
- Fixed PMF related issue
- Implemented ESPNOW + PMF coexistence
- Optimize 4-way handshake failure time
- Fixed null pointer dereferences in MGMT RX
- Fixed esp_wifi log levels
- Added wpa_supllicant debug logging as a configurable option
- Fixed high loss ratio of receiving broadcast data on ESP32-S2 station when it connects to an ESP32-S2 softAP
- Fixed links to example directories for fast_scan and scan (#5186)
- Shortened the TCP timer intervals
- Fixed an issue that PMF stop working after dynamic mode change
- wpa_supplicant: Fixed NULL pointer dereference in EAP Client
ESP-WIFI-MESH
- If a
FIXED-ROOT
root is set byesp_mesh_set_type
oresp_mesh_set_parent
, its ie.mesh_type will be changed toMESH_ROOT
before it connects to the router - Release
esp_mesh_recv_toDS
when a root becomes a non-root esp_mesh_set_type
supportsMESH_IDLE
andMESH_STA
- Fix ie.rc_rssi is not updated during scan and vote
- Fix parent switch causes ie.mesh type does not match to ie.layer
- Fix during root switch, the original root doesn't disconnect from the router after it receives the switch request from the new voted root. (root switch happens by invoking
esp_mesh_waive_root
) - Fix the routing announce timer is not stopped right after a non-root becomes a root
- Modify to select a parent candidate with less ie.assoc when doing parent switch
- Remove coexist warnings in ESP_WIFI_MESH
- Fix a
FIXED-ROOT
root does not reconnect to the router when the disconnect reason is too many - Add
esp_mesh_print_scan_result
for debug - In flush_upstream_packets, modify not to clear the values of mesh_xonseq for node itself and children nodes
- Modify not switch to a parent candidate which has the same layer and assoc as the current parent
- Fix parent monitor function isnot triggered anymore when the parent candidate is cleared without sending an event to mesh layer
- Fix a new voted root does not reconnect to the router if the rssi is weak
Ethernet
- Added Ethernet driver flow control
- Added the support of pin emac task to core
- Fixed Ethernet RX issue, handle rx early event
- Support PHY power on timeout (#5425)
- Insert mininum assert time for PHY HW reset (#5528)
- Fixed C++ linkage moving extern "C" after includes (#5699)
Peripheral Drivers
- ADC: fixed DAC influenced by ADC bug by disabling the synchronization operation from ADC1 to DAC
- ADC: fixed hall read, invert, pattern table issues
- ADC: fixed GPIO init bug in DMA mode on ESP32
- FREEMODBUS: highlight long frame buffer limitations in the documents
- FREEMODBUS: fixed event processing failure after driver destroy (#5275)
- I2C: fixed issue of I2C slave rxfifo_full interrupt enabled incorrectly
- I2S: fixed I2S word-order issue caused by incomplete reset (#5410)
- MCPWM: fixed fault pin initialization issue
- PCNT: fixed issue in clear interrupt status
- RMT: fixed TX data truncated issue when memory block > 1 (#5992)
- RTCIO: fixed the issue in force hold disable
- SPI: Set CS polarity correctly
- SPI: turned off DMA before CPU reset to avoid memory corruption after the reset
- TWAI: fixed size of RX message count field on ESP32
- TWAI: removed asserts used for program logic
- UART: fixed RXFIFO_CNT bug on ESP32
- UART: fixed issue that uart_wait_tx_done return ESP_OK when failed
- UART: fixed uart module reset issue
- UART: fixed uart_ll_is_tx_idle to inline into handler correctly when opt for size (#5694)
- UART: apply FORCE_INLINE_ATTR to all UART LL functions to inline them ccorrectly with "-O2" option
- PSRAM: Fixed the read id failure for 16mbit PSRAM
- SDMMC: fixed the probe issue that forbid sdspi working in high speed mode
- SDMMC: Added support of checking slot_config for null before using it (#5000)
Core System
- Added soft solution for esp32 eco3 live lock issue
- Added PSRAM stack check in backtrace
- FreeRTOS: Increased portmux timeouts to avoid crashing when using debug feature (#3629)
- FreeRTOS: Fixed clobbering of a4 while spilling register windows (#5758)
- panic: Skip over the first invalid PC in case of InstrFetchProhibited
- FreeRTOS: Fixed compilation warning at -O2 level (#5525)
- shared_stack: Fixed task stack not being replaced by shared stack correctly
- Fixed anti-rollback feature memory map bug for partition size greater than 3.2MB (#5911)
- esp-event: AP_STAIPASSIGNED now passes the IP through 'event_data' (#3605)
- pthread: Fixed the issue when pthread_mutex_destroy is used to release mutex, pthread_mutex_lock_internal is used which increased uxmutexehold and no recovery base priority
- Switched SPIRAM stack in esp_restart_noos() to internal stack (#5107)
- Added new esp_efuse_write_field_bit() convenience function
Debugging
- core dump: fixed error reported for blank partition
- core dump: fixed size of memory region read by espcoredump.py
newlib libc
- Fixed adjtime, returns the amount of time remaining from any previous adjustment (#5194)
LWIP
- esp_netif: Removed restarting DHCP client/server if it has already been started
- esp-netif: ppp netif to use netif_is_link_up() to update interface state (#5069)
- esp-netif: fixed PPP interface to call set_default_netif() from lwIP context
- esp_netif: Added support for Tx by reference (optimization for WiFi TX performance)
- Fixed the issue with Ping using custom payload size receiving fixed size
- Updated LwIP TCP rto time to be configurable
- IPv6: Fixed the issue that packets exceeding MTU can still be sent and received when IP fragmentation is turned off
- IPv6: Fixed the issue that IPv6 ND6 queuing too much packets cause no memory issue
- IPv6: Fixed sending ipv6 multicast data when source address is null
- IPv6: Fixed the issue of failing to send ipv6 ping packet
- Fixed the issue of UDP packets loss in ARP in UDP tx performance testing
- Added custom TCP initial sequence number (ISN) randomization hook
- Fixed missing C++ header guards in netdb.h (#5900)
- Fixed the issue that the structure cannot contain IPv4 and IPv6 at the same time
- Fixed bug for tcp recv assert
mDNS
- Added support for queries in responses, so the mDNS responder works correctly with lwIP resolver (#5521)
- Fixed query ID in responses (#5574)
- Fixed wrong mdns source address if lwIP zoning disabled (#6055)
- Fixed the resolver to accept non-strict answers (allowing non empty question field within answers)
Provisioning
- BLE provisioning: added check for valid ble read offset (x)
- protocomm_httpd: Restart security session if request is received on a new session
- Use memcpy instead of strncpy for copying SSID (#5866)
- wifi_provisioning_manager: fixed issue faced while adding 2 or more endpoints in wifi_provisioning_manager
TCP Transport
- Fixed issue in SSL mode: if esp_transport_poll_read function is used, the cache data in mebdtls will block
- Fixed internal DNS resolve function to use getaddrinfo() instead of gethostbyname()
HTTP Server
- Fixed an issue which could cause issues with LRU purge
- Updated LRU counter on accepting a new connection (#3851)
HTTP Client
- Fixed error handling in esp_http_client_read and esp_https_ota_perform (#4960)
mbedTLS
- Updated to mbedTLS release v2.16.7
- Fixed result of mpi_montgomery_exp_calc() when Z is not initialized (#5605)
- Don't compile hardware MPI & SHA files if disabled in config
ULP
- ulp: fixed ULP assembler version detection for localized systems
Bootloader
- Fixed bootloader_common_get_sha256_of_partition() which can handle a long image ()
- bootloader_support: don't check signature when JTAG is attached (#4734)
- Fixed esp_get_flash_encryption_mode() (#5747)
ESP-TLS
- esp_tls_wolfssl: fixed incorrect error message after handshake fails
- esp-tls: enabled TLS renegotiation using explicit API call
- openssl: Fixed verification mode conversion to mbetls modes to make it more strict
Websocket
- Updated the client to abort the connection if send fails
- Fixed possible deadlock if stop called from event handler
- Fixed posting the disconnect event twice on read error
- Fixed possible deadlock in starting the client after being stopped while sending data
- Updated the client to block timeout times when set disable_auto_connect
ESP-MQTT
- SSL: Added config option for skipping common name check (espressif/esp-mqtt#158)
- SSL: Added support for tls with secure element (ATECC608A) (espressif/esp-mqtt#156)
- Websocket: Allow the query part of the uri to be a part of the path (espressif/esp-mqtt#161)
- Config: Add check for consistency between config settings
- Fixed esp_mqtt_client_stop deadlock ( espressif/esp-mqtt#163)
- Added dispatch error event for read errors (#5704)
- Cleanup expired messages when offline (#5668)
- Renamed error type MQTT_ERROR_TYPE_ESP_TLS to MQTT_ERROR_TYPE_TCP_TRANSPORT
- Added configuration value to set network timeout
- Used size_t for all lengths to allow for other architectures
- mqtt_outbox: Removed unused retry_count field from outbox_item_t
- config: Fixed typo for configuring OUTBOX_EXPIRED_TIMEOUT_MS
- Fixed missing MQTT_API_UNLOCK in esp_mqtt_client_stop error path (espressif/esp-mqtt#173)
- Added esp_mqtt_client_get_outbox_size API
- Added config value to disable keepalive mechanism
Security
- Secure Boot: Fixed Secure Boot signing step on Windows when using CMake (#5557)
- Secure Boot: Added cpp macro guards in esp32 secure boot rom functions (#5878)
- Secure Boot: Fixed enabling of Secure Boot V2 with pre-burned key digest (#6050)
- Added ESP32 V3 "UART Download Disable" efuse option
- Secure Boot: Fixed the issue when the bootloader image size is exactly equal to the size between the bootloader offset and partitions offset when secure boot v2 and flash encryption are enabled
- Secure Boot: Fixed the issue which checks the signature block digest instead of the flash digest during OTA validation (note: not a security issue as the bootloader will still refuse to boot the incorrectly signed app and fall back to the existing one.)
- Secure Boot: Fixed crash in app if signature verification fails (#6210)
Storage
- NVS: Allow specifying custom partition by esp_partition_t pointer (#5172)
- vfs: Support setting UART line endings for specified UART number
- SPI_FLASH: Don't call vTaskDelay in non-os context, fixing situation when coredump is triggered from an interrupt handler
- SPI_FLASH: fixed the write performance regression in new API after v4.0
- SPI_FLASH: fixed the regression of non-quad mode by default chip driver, bugs in CS init, and add_device
Power Management
- Sleep: enable sleep reject when entering light sleep
External Libraries
- Updated to mbedTLS release v2.16.7
Tools
- Update toolchain to esp-2020r3
- Toolchain: disable C++ exception FDE sorting to save RAM
- Updated OpenOCD version to 'v0.10.0-esp32-20200709'
- Added deprecation warning for Python 2 and Python 3.5 and older
- C++: fixed non-working init_priority attribute and moved all C++ init tests to separate file (#5038)
- Don't generate pyc files
- idf.py: Added "idf.py python-clean" command to clean Python bytecode files
- idf.py: Now disables CMake uninitialized variable warnings by default (#5753)
- Mention ESPPORT and ESPBAUD in idf.py --help (#5461)
- mfg_util: Update file handling to maintain line endings across various OS (#4888)
- Fixed Python 3 incompatibility for building with Eclipse on Windows
- gdb: Modify PC in case of invalid PC
- docker: Added libpython2.7 in order to satisfy GDB dependencies (#5817)
- Fixed path handling errors in gen_esp_err_to_name.py for Windows
- ldgen: Added support for paths with Unicode characters in archive files parsed by ldgen (#5996)
- esptool: Updated to fix Python 3 key generation for Secure boot v2 (#5786)
- parttool.py: Add file stream parameter and log stdout and stderr to same stream
- Added check for existence build directory
Build System
- cmake: Fixed issue with setting defaults in idf_build_process (#5053)
- cmake: Fixed C identifier generation from embedded file (#4927)
- idf_as_lib example now places sdkconfig file outside the build directory
- Now always logs the sdkconfig file path from CMake (#5251 (comment))
Examples
- ble_mesh: Fixed example README & tutorial link errors
- ble_mesh: Added more checks of input parameters
- ble_mesh: Added nvs operations for some mesh examples (#5359)
- ble_mesh: Added result check of mesh initialization
- ble_mesh: Fixed example compile warning (#5745)
- ble_mesh: Fixed sensor data wrong iteration (#5818)
- ble_mesh: Delete local variables to avoid null global variables in coexistence example
- Gatt_Client_Example_Walkthrough: added 128-bit UUID description
- ble_hid_device_demo: fix build if building with c++ (#5191)
- Example connect: Added unregister shutdown handler on disconnection in Common connect component
- PPPoS Client: fixed esp_modem switch mode timeout and RX timeout interrupt (#3506, #4324)
- PPPoS client: fixed UART configuration to use REF_TICK and install the driver after proper config (#4616, #4904, #4801)
- [esp_local_ctrl_example] fixed expired x509 certificate
- Fixed an issue in IPerf example
- Fixed a broken link to examples/temp_sensor_esp32s2
Documentation
- Added documentation for ble_hs_pvcy_rpa_config() API in its declaration
- Added note about ESP-IDF FreeRTOS version
- Added description of python-clean command
- Added profile file name used by zsh shell
- Fixed setup instructions in the main README and fixed broken links
- Updated Versions file in line with the latest Support Policy document
- Removed potentially confusing links to building the toolchain from scratch from from Getting Started guide
- Specify that sleep wakeup source restrictions apply to all current ESP32 revisions (#4681)
- Updated Chinese translation for get-started/index.rst file and fixed minor mistake in the EN version of the file