Skip to content
Tag: 19.11.0
Commits on Jan 14, 2020
  1. [Docs] Add Release notes for 19.11

    sarraly authored and CoRfr committed Nov 14, 2019
    Resolves: LE-13746
    Change-Id: Ie9781efb3d3c1cada17a1fc17567858f65b310b8
    (cherry picked from commit 21f5914)
Commits on Jan 10, 2020
  1. [sbhelper] Update to openat hook and ignore directory access

    stan-podin committed Mar 28, 2019
    Issue Description:
    Sbhelper fails to import directory '/data/le_fs/' and ignore
    to import file which is used by system call open().
    Root Cause:
    If the app attempts to access the resource which is a directory,
    SBhelper will fail.
    Sbhelper can't hook system call open() because Glibc version 2.26
    switched to implementing open with openat. It uses __NR_openat as
    default syscall for open{64}.
    The fix is to check whether the resource is a directory, and if
    it is, silently ignore it and proceed without aborting the sbhelper.
    Add syscall __NR_openat in sbtrace which is used by sbhelper.
    Resolves: LE-13669 LE-11395
    Change-Id: Id8e71ab9383789c82540feb35c6d051994f0b600
    Signed-off-by: Rinne Zhang <>
    (cherry picked from commit cf1aa01)
  2. Fix fwupdate app fails to responds to host command

    Kevin Liu authored and stan-podin committed Jan 10, 2020
    The essence is that the permissions were granted to "root",
    and we changed it to "powerMgr". The fix is about granting
    permissions to subject with SMACK label "app.powerMgr".
    The definition file is used to create the "bindings" section
    in the config tree, which in turn is used to give the
    permission. So binding to "root" or "powerMgr" is equivalent
    from the execution viewpoint, but produces different results
    in terms of permission.
    Resolves: LE-14080
    Related: LE-4096
    Change-Id: I8f47235493ae171025d574097a18c7b58ccf739b
Commits on Jan 9, 2020
  1. [smack] [cm] Gives Legato apps append access to "_"

    Kevin Liu Kevin Liu
    Kevin Liu authored and Kevin Liu committed Jan 3, 2020
    Smack distinguishes write and append operations. The smack
    rule between labels "app.<appName>" and "_" is now only
    "rwx". This creates problem for apps that manipulate files
    using append instead of write.
    For example, the command "cm data connect" is denied from
    appending to the file /etc/resolv.conf with DNS info
    ("" on "_"). As a result, dnsmasq is not able to
    perform DNS forwarding.
    Giving additional append permission should bring minimal
    impact to the system since there is already a write
    permission granted.
    Resolves: LE-13961
    Related: LE-13807
    Change-Id: I16b3ff48bc51b92c9fcd87f7f8df534fb39240b8
    (cherry pick from 821377b)
  2. Fix segFault in running Inspect on mutexes

    Andrew Au Andrew Au
    Andrew Au authored and Andrew Au committed Jan 8, 2020
    Initialize localThreadObjRef->timerRecPtr[] and remove the unnecessary le_mem_Release()
    on it upon Inspect's running with a non-timer option.
    Resolves: LE-14065
    Change-Id: I677819d4e7a56da5f243ddb94d1db651b8dac056
Commits on Jan 7, 2020
  1. [Start] Fix device stuck in sleep during rebooting

    Rinne Zhang authored and stan-podin committed Nov 8, 2019
    Issue Description:
    Device sleeps while legato reboots device by EXIT_FAILURE.
    Root Cause:
    Device sleeps before /etc/rcS.d/ is executed.
    Acquire a wake lock before initiating rebooting.
    Resolves: LE-13748
    Change-Id: If9433f6740f5d999656a4ab8274f3347314670e2
    Signed-off-by: Rinne Zhang <>
    (cherry picked from commit 855e0b8)
Commits on Jan 2, 2020
  1. Improve package downloader suspend/resume handling

    NshafiSWI authored and stan-podin committed Nov 6, 2019
    Resolves: LE-13724 LE-12711 LE-13674
    Change-Id: I8179400119432cc4e5723508adede3a175021510
Commits on Dec 30, 2019
  1. Inspect retrieves timer records from remote process

    cfhk authored and Andrew Au committed Dec 17, 2019
    The timerRecPtr inside thread_Obj_t is now an array of pointers. These
    pointers are under remote process memory space. The inspect utility
    need to convert them via TargetReadAddress.
    Resolves: LE-13512
    Change-Id: Id106e66bfec510340366064b8e8610a7aa9d2d3e
    Signed-off-by: Calvin Fong <>
Commits on Dec 17, 2019
  1. [CM] Fix cm's wrong behavior upon dual stack PDP

    Kevin Liu
    Kevin Liu committed Dec 6, 2019
    Current implementaion of cm script will call the fucntion
    update_dns for each supported IP protocol. It will back-
    up the existing /etc/resolv.conf and create a new copy.
    If supported PDPs are both IPv4 and IPv6, this function
    is called twice. The second time it is called (for IPv6),
    it wipes the one previously created (for IPv4). This
    leads to a /etc/resolv.conf contains only DNS for IPv6
    in this case.
    Now moving the call to the function out of the loop, and
    passing a list of all DNS's could resolve the issue.
    Resolves: LE-13807
    Change-Id: I521888e723a0d60e134117d9629958547f260c3b
    (cherry pick from 1694e10)
  2. Enable ENABLE_ETHERNET by default on Linux

    kevincaocanada authored and stan-podin committed Dec 4, 2019
    Resolves: LE-13853
    Change-Id: Ib08f5f78e7ac4c56f9a4453fb6bee0ec10267ca3
    (cherry picked from commit 2e6ec62)
Commits on Dec 13, 2019
  1. Fix for FOTA being interrupted by sleep/ULPM

    stan-podin committed Dec 6, 2019
    For the duration of Download and Install, establish a wake lock,
    if Power Service is running. Connect to PowerService via optional
    binding mechanism. If connection is successful, acquire
    a wake lock; if not, proceed normally without wake lock.
    Resolves: LE-4096
    Change-Id: I83513b4678a84f0a187e77a0879448101c606793
    (cherry picked from commit bf959a2)
Commits on Nov 14, 2019
  1. Add build vars to exclude libs

    jtchitty authored and CoRfr committed Aug 17, 2019
    Inclusion of zlib, curl and openSSL libraries into apps
    causes a massive increase in the size of the legato.cwe,
    preventing it from fitting on some devices when combined
    with apps, such as the mangOH apps and Octave edge apps.
    Three variables are added to help reduce the size by
    excluding libs from the built legato system.  This is
    possible because those libs are also available in the
    root file system.  The variables are:
    Set them to 1 to cause exclusion.
    Using the rootfs lib has some downsides in term of compatibility
    between what the software was built with (toolchain)
    and the libraries present on the rootfs.
    Since this is an opt-in change, it is assumed that people
    taking libraries from the rootfs understand that risk.
    Resolves: LE-13277
    Change-Id: I35aac284442c888cdcff66cda0300cf2569b34f0
    (cherry picked from commit dc965f1)
Commits on Nov 7, 2019
  1. Resolve build errors

    kdunwoody authored and jbacksierrawireless committed Nov 6, 2019
    Resolve two build errors which are causing CI to fail:
     - Instability with npm connecting to the network is causing build
       failures.  Disable languageServer builds until a solution
       is found.
     - GCC warns a constant is only unsigned in C90.  Make the constant
       explicitly unsigned.
    Resolves: FARM-2822
    Change-Id: I6aa654be98b8d4a73a773748713e893785202f31
Commits on Nov 6, 2019
  1. Fix for getting/setting unrecognized UART modes

    stan-podin authored and jbacksierrawireless committed Oct 11, 2019
    - Define UART modes to numerically match QMI definitions
    - Do not generate errors if the value is outside of the defined set.
    Resolves: LE-12594
    Change-Id: I4dbeb97607b11b722ad6256918b4bddef8a53063
Commits on Nov 5, 2019
  1. Make le_dcs_GetChannels() return a channel's admin state than operati…

    Andrew Au Andrew Au
    Andrew Au authored and Andrew Au committed Nov 1, 2019
    …onal state
    The external API le_dcs_GetState() returns a given data channel's admin state while
    le_dcs_GetChannels() returned the operational state of each. This fix unifies both
    into returning a channel's admin state.
    Resolves: LE-13703
    Change-Id: I453e8a7e01a0f836c253579903b061d9a6d1c855
  2. Fix le_dcsTech_GetDNSAddresses passing le_data_Technology_t

    kevincaocanada committed Nov 5, 2019
    Add the conversion dcsTechRank_ConvertToDcsTechEnum in argument
    Resolves: LE-13725
    Change-Id: I1b6148a2f409f3f97a289382fb8f6af07db230f8
Commits on Nov 4, 2019
  1. [LTE] Add support for LTE band 66 and 71

    Kevin Liu authored and stan-podin committed Oct 17, 2019
    Add enum definitions for LTE band 66 and 71 support. This is the
    pre-requisite for the band expansion for:
    * le_mrc_GetLteBandPreferences
    * le_mrc_SetLteBandPreferences
    * le_mrc_GetLteBandCapabilities
    Resolves: LE-13612
    Related: FOX-655
    Change-Id: I7d60134ef4a4c1a490215354b34ac74be947c7b0
  2. Add hidden setting to turn off QMUX

    Andrew MacIsaac authored and kdunwoody committed Oct 3, 2019
    QMUX is not supported on Qualcomm ThreadX platforms.
    Resolves: LE-13554
    Change-Id: I90ef56f69519e16eed82f4970196bb5f0aa7be4c
  3. [RC76xx] Create a shared API to get legato version

    azhao authored and kdunwoody committed Oct 18, 2019
    In threadx, swiapp need get legato version to handle ATI command.
    However the swiapp code is compiled before legato code, so it's
    unable to directly use the VERSION macro generated in le_config.h.
    We created a new shared API le_microSupervisor_GetLegatoVersion()
    in supervisor code for swiapp to get the legato version.
    Resolves: LE-13661
    Change-Id: I51605575c3f19d117813900d2492b44743c7f859
    Signed-off-by: azhao <>
Commits on Nov 1, 2019
  1. Add le_clk_SetTimezoneFile to le_clock API

    Oscar Oscar Hou
    Oscar authored and Oscar Hou committed Oct 7, 2019
    Added a new external interface to set the timezone file on the system.
    The function is unsupported on linux and still needs to be integrated
    with HL78. Moved tests from TX frameworkAdaptor to the legato test
    Resolves: LE-13375
    Change-Id: Idef7395bcadcb37a94da4729bf9480ea141c0eeb
  2. [Docs] Describe new way to enable SecStore Admin API

    stan-podin authored and nushcone committed Oct 17, 2019
    Instead of setting the build variable, enable the Kconfig flag.
    Resolves: LE-13274
    Change-Id: I5633f97760350394865a9451533ad2fbab0cdf9c
  3. Port modemServices to HL76 on default PA

    kdunwoody committed Nov 1, 2019
    Some compilation errors are fixed and features are aligned with
    HL78 to build modemSerivces on the default platform adaptor.
    This is version 2 of this patch as the first version broke modemServices
    on Linux.  Adjusting the initialization order to be more similar
    to the order on Linux appears to have fixed that problem.
    Resolves: LE-13484
    Change-Id: I48db8f5d83ec81074117e241f2f0bf878bdce0a2
  4. Correct interface name for require api type-only

    Huy Bui authored and stan-podin committed Sep 23, 2019
    The interface name for require api type-only uses default prefix
    which is not correct.
    To make sure interface name generated correctly, the alias should
    be used as prefix.
    Resolves: LE-12988
    Change-Id: I73bc757e0b72107ffd5fa294ba197ef4e0383577
  5. Fix continuous reboot caused by atomics

    Graham Allegretto authored and kdunwoody committed Oct 31, 2019
    Resolves: LE-13707
    Change-Id: I0e889a08c34ad3c097c27d414bcb25c521e75208
Commits on Oct 31, 2019
  1. Revert "Port modemServices to HL76 on default PA"

    kdunwoody committed Oct 31, 2019
    This reverts commit 63e7f02.
    Reason for revert: Breaks modemServices on Linux.
    Change-Id: I275ae49c6335869e93a01e0e29c335f72e568ffe
    Resolves: LE-13707
  2. Port modemServices to HL76 on default PA

    vgao authored and kdunwoody committed Sep 27, 2019
    Some compilation errors are fixed and features are aligned with
    HL78 to build modemSerivces on the default platform adaptor.
    Resolves: LE-13484
    Change-Id: I31969a106b497ab4934ffac796a0d849a1e8a72e
Commits on Oct 30, 2019
  1. Add abstraction layer for GCC primitives

    Graham Allegretto authored and kdunwoody committed Sep 19, 2019
    Introduces an abstraction layer for GCC primitives that are built
    in to the GCC compiler but not available for compilers.
    Also included in this commit is the enablement of watchdog tests
    Relates: LE-13496
    Resolves: LE-13492
    Change-Id: I33d6e62e581d3dfe78f394727cf0c9f760fbe351
Commits on Oct 28, 2019
  1. Fix robustness and add/improve LSP features.

    Chloe Strainge
    Chloe Strainge committed Jul 25, 2019
    * Move all of the included sdef apps into a System Includes sub-folder.
    * Make sure that the main sdef always is added to the tree view, even
      if it has no apps.
    * Started work on a relaxed parsing mode for the mktools.  Used for
      error recovery.
      - New relaxed strictness parser mode for when we need to continue
        trying to load the model even if there are errors.
      - Will mkedit now ignore missing apps/components/interfaces when
        edit .*def files.
      - Start of error recovery added to the parser to be used with relaxed
        strictness mode.
      - Enabled mkedit to use relaxed strictness mode.
      - Making mkparse generate it's binApps extraction directory under the
        normal default build directory like the other mktools do.
    * Report the error text the language server log if the parse json is
    * The generated json model from mkparse now includes environment
      variables so that the language server can properly decode them.
    * Added more exception handling to the core LSP handlers so that the
      language server is more robust.
    * Added support for language server events to enable more features.
      Notably improved intellisense support.
    * Added support for calling mkedit to update search paths from the
      language server.
    * Added support to the language server to scan the workspace for
      definition files if a proper model can't we loaded.  These definition
      files will be watched and if any changes occur to them, it attempts
      to load the model again.
    * Stop generating component and binApps directories in users workspace
      root when using mkparse.
    * Add APIs to the system view.
    * Do not show components for #included apps.
    Resolves: LETOOLS-920 LETOOLS-956 LETOOLS-956 LE-13247
    Change-Id: Ib2c88be28a5fa10e7121ed8d3a3387dae6a80067
  2. [kmod] Trim excessive token in program name

    Kevin Liu
    Kevin Liu committed Oct 28, 2019
    Legato appends the instance number of an app in the app's program
    name. E.g. "kmod@0". The part of "@0" will be shown in the output
    of `kmod --help`, which could be misleading.
    A simple string manipulation can fix this problem and avoid
    changing the real program name.
    Resolves: LE-12282
    Change-Id: I5b66549f9446bdefd7af5ce75dc3224d4aa0e9d3
Commits on Oct 25, 2019
  1. Upgrade pytest from Python2 to Python3

    Tom G. Huang authored and kdunwoody committed Oct 23, 2019
    Fix Python and pytest version compatibility issues.
    Resolves: LE-13679
    Change-Id: I6a63eb26e9b1b9b97f83c9a27cc049dfdb67b15a
Commits on Oct 23, 2019
  1. Merge tinydtls master to master-swi

    ppalanicha authored and nushcone committed Aug 8, 2019
    Resolves: LE-13234
    Change-Id: I2132ec36a7fee16ee9c449e6cf5f49f4f5b9e753
  2. Fix bugs enabling reset command.

    kdunwoody committed Oct 22, 2019
    When dev-threadx was merged to master, some bugs were introduced
    with the reset command which is used on hl76.  Fix those bugs
    so reset can now be enabled on hl76.
    Resolves: LE-13469
    Change-Id: I8461e12e5e3d37b7f7d5dc50c8b939c8be1334f0
  3. Deprecate DCS's auto-install of modem's default APN when empty

    Andrew Au Andrew Au
    Andrew Au authored and Andrew Au committed Oct 8, 2019
    This patch is to implement the removal of this stated DCS functionality
    & code 6 months after its advance notice. Empty APN is a legitimate
    config not to be automatically overwritten.
    Resolves: LE-12880
    Change-Id: I7ab692e8d313f9cf8201ec79d59f4048594bf7dc
Commits on Oct 21, 2019
  1. Merge branch 'dev-threadx' into master

    kdunwoody committed Oct 21, 2019
    Resolves: LE-13469
    Change-Id: Icce0634bf5e49b6b097b0f6851c4bfc641b72923
Commits on Oct 18, 2019
  1. Switch to gill code name in Legato

    kdunwoody committed Oct 17, 2019
    Previously the product was referred to as hl76; however that is no
    longer the name being used.  Use the project name (gill) to
    avoid dependency on marketing names which can change arbitrarily.
    Resolves: LE-13651
    Change-Id: If0bf0e29483355811618a90575a3bbcffcc4991a
You can’t perform that action at this time.