<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        
        
        <!-- This is broken by doc revisioning.
         -->
        <link rel="shortcut icon" href="../../../img/favicon.ico">

        <title>newtmgr image - Apache Mynewt</title>

        <link href="../../../css/bootstrap-3.0.3.min.css" rel="stylesheet">
        <link rel="stylesheet" href="../../../css/highlight.css">
        <link href="../../../css/base.css" rel="stylesheet">
        <link href="../../../css/custom.css" rel="stylesheet">
        <link href="../../../css/v2.css" rel="stylesheet">
        <link href="https://fonts.googleapis.com/css?family=Lato" rel="stylesheet">
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">

        <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
        <!--[if lt IE 9]>
            <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
            <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
        <![endif]-->

        
            <script>
            (function(i, s, o, g, r, a, m) {
    i["GoogleAnalyticsObject"] = r;
    (i[r] =
        i[r] ||
        function() {
            (i[r].q = i[r].q || []).push(arguments);
        }),
        (i[r].l = 1 * new Date());
    (a = s.createElement(o)), (m = s.getElementsByTagName(o)[0]);
    a.async = 1;
    a.src = g;
    m.parentNode.insertBefore(a, m);
})(window, document, "script", "//www.google-analytics.com/analytics.js", "ga");

ga("create", "UA-72162311-1", "auto");
ga("send", "pageview");
</script>
        
    </head>


    <body class="newtmgr image">


        <div class="container">
    <div class="row v2-main-banner">
        <a class="logo-cell" href="/">
            <img class="logo" src="/img/logo.png">
        </a>
        <div class="tagline-cell">
            <h4 class="tagline">An OS to build, deploy and securely manage billions of devices</h4>
        </div>
        <div class="news-cell">
            <div class="well">
                <h4>Latest News:</h4> <a href="/download">Apache Mynewt 1.12.0, Apache NimBLE 1.7.0 </a> released (April 4, 2024)
            </div>
        </div>
    </div>
</div>

        






<nav id="navbar" class="navbar navbar-inverse affix-top" data-spy="affix" data-offset-top="150" role="navigation">
    <div class="container">
        <!-- Collapsed navigation -->
        <div class="navbar-header">
            <!-- Expander button -->
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>

        </div>

        <!-- Expanded navigation -->
        <div class="navbar-collapse collapse">
            <!-- Main navigation -->
            <ul class="nav navbar-nav navbar-right">
                <li 
  class=""
>
                    <a href="/"><i class="fa fa-home" style="font-size: larger;"></i></a>
                </li>
                <li 
  class="important"
>
                    <a href="/quick-start/">Quick Start</a>
                </li>
                <li 
  class=""
>
                    <a href="/about/">About</a>
                </li>
                <li 
  class=""
>
                    <a href="/talks/">Talks</a>
                </li>
                <li 
  class="active"
>
                    <a href="/documentation/">Documentation</a>
                </li>
                <li 
  class=""
>
                    <a href="/download/">Download</a>
                </li>
                <li 
  class=""
>
                    <a href="/community/">Community</a>
                </li>
                <li 
  class=""
>
                    <a href="/events/">Events</a>
                </li>
            </ul>

        </div>
    </div>
</nav>

        

        <div class="container">
            
                <div class="row">
                    <div class="col-md-3 v2-sidebar sidebar-container"><div id="docSidebar" class="hidden-print" role="complementary">
    <div class="top">
        <div role="search">
            <form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get">
                <div class="form-group">
                    <input type="text" name="q" class="form-control" placeholder="Search documentation" />
                </div>
            </form>
        </div>
    </div>
    <ul class="toc-nav">
      <li class="doc-version"><select class="form-control" onchange="if (this.value) window.location.href=this.value">
  <option value="/latest">
    Version: master
  </option>
  <option value="/v1_12_0/" >
    Version: 1.12.0
  </option>
  <option value="/v1_11_0/" >
    Version: 1.11.0
  </option>
  <option value="/v1_10_0/" >
    Version: 1.10.0
  </option>
  <option value="/v1_9_0/" >
    Version: 1.9.0
  </option>
    <option value="/v1_8_0/" >
    Version: 1.8.0
  </option>
  <option value="/v1_7_0/" >
    Version: 1.7.0
  </option>
  <option value="/v1_6_0/" >
    Version: 1.6.0
  </option>
  <option value="/v1_5_0/" >
    Version: 1.5.0
  </option>
  <option value="/v1_4_0/" >
    Version: 1.4.0
  </option>
  <option value="/v1_3_0/os/introduction" selected="selected" >
    Version: 1.3.0
  </option>
  <option value="/v1_2_0/os/introduction" >
    Version: 1.2.0
  </option>
  <option value="/v1_1_0/os/introduction" >
    Version: 1.1.0
  </option>
  <option value="/v1_0_0/os/introduction" >
    Version: 1.0.0
  </option>
  <option value="/v0_9_0/os/introduction" >
    Version: 0.9.0
  </option>
</select></li>
      
        
      
        
      
        
      
        
      
        
      
        
      
        
      
        
      
        
      
        
          
  
  
    <li ><a href="../../../os/introduction/">Mynewt Documentation</a>
  
  
    <ul>
          
              
          
              
                
  
  
    <li ><a href="../../../os/get_started/get_started/">Basic Setup</a>
  
  
    </li>

              
          
              
                
  <li >
    <a href="../../../os/get_started/vocabulary/">Concepts</a>
  </li>

              
          
              
                
  
  
    <li ><a href="../../../os/tutorials/tutorials/">Tutorials</a>
  
  
    </li>

              
          
              
                
  
  
    <li ><a href="../../../os/os_user_guide/">OS User Guide</a>
  
  
    </li>

              
          
              
                
  
  
    <li><a href="
  ../../../network/ble/ble_intro/
">BLE User Guide</a>
  
  
    </li>

              
          
              
                
  
  
    <li ><a href="../../../newt/newt_intro/">Newt Tool Guide</a>
  
  
    </li>

              
          
              
                
  
  
    <li ><a href="../../overview/">Newt Manager Guide</a>
  
  
    <ul>
          
              
          
              
                
  
  
    <li><a href="
  ../newtmgr_config/
">Command Guide</a>
  
  
    <ul>
          
              
                
  <li >
    <a href="../newtmgr_config/">newtmgr config</a>
  </li>

              
          
              
                
  <li >
    <a href="../newtmgr_conn/">newtmgr conn</a>
  </li>

              
          
              
                
  <li >
    <a href="../newtmgr_crash/">newtmgr crash</a>
  </li>

              
          
              
                
  <li >
    <a href="../newtmgr_datetime/">newtmgr datetime</a>
  </li>

              
          
              
                
  <li >
    <a href="../newtmgr_echo/">newtmgr echo</a>
  </li>

              
          
              
                
  <li >
    <a href="../newtmgr_fs/">newtmgr fs</a>
  </li>

              
          
              
                
  <li class="active">
    <a href="./">newtmgr image</a>
  </li>

              
          
              
                
  <li >
    <a href="../newtmgr_logs/">newtmgr log</a>
  </li>

              
          
              
                
  <li >
    <a href="../newtmgr_mpstats/">newtmgr mpstat</a>
  </li>

              
          
              
                
  <li >
    <a href="../newtmgr_reset/">newtmgr reset</a>
  </li>

              
          
              
                
  <li >
    <a href="../newtmgr_run/">newtmgr run</a>
  </li>

              
          
              
                
  <li >
    <a href="../newtmgr_stat/">newtmgr stat</a>
  </li>

              
          
              
                
  <li >
    <a href="../newtmgr_taskstats/">newtmgr taskstat</a>
  </li>

              
          
    </ul>
  
    </li>

              
          
              
                
  
  
    <li><a href="
  ../../install_mac/
">Install</a>
  
  
    </li>

              
          
    </ul>
  
    </li>

              
          
              
                
  <li >
    <a href="../../../known_issues/">Known Issues</a>
  </li>

              
          
    </ul>
  
    </li>

        
      
        
          
  
  
    <li><a href="
  ../../../newt/install/prev_releases/
">Appendix</a>
  
  
    </li>

        
      
    </ul>
</div></div>

                    <div class="col-md-9" role="main">
                        <div class="doc-header">
                            <div role="navigation" aria-label="breadcrumbs navigation">
  <ul class="wy-breadcrumbs">
    <li><a href="/documentation/">Docs</a></li>
    
    
        
          <li>&raquo; <a href="newtmgr/command_list/newtmgr_config/">Command Guide</a></li>
        
      
        
          <li>&raquo; <a href="newtmgr/overview/">Newt Manager Guide</a></li>
        
      
        
          <li>&raquo; <a href="os/introduction/">Mynewt Documentation</a></li>
        
      
      
        <li>&raquo; newtmgr image</li>
      
    
    
      <li class="wy-breadcrumbs-aside">
        
          <a href="https://github.com/apache/mynewt-site/blob/master/docs/newtmgr/command_list/newtmgr_image.md"
            class="icon icon-github"> Edit on GitHub</a>
        
      </li>
    
  </ul>
</div>
                        </div>
                        
                          
                        
                          
                        
                          
                        
                          
                        
                          
                        
                          
                        
                          
                            <div class="alert alert-warning">
                                <p>
                                    Version 1.3.0 is not the most recent version of the Apache Mynewt
                                    documentation. Click <a href="/latest">here</a> to read the latest
                                    version.
                                </p>
                            </div>
                          
                        
                        
                            <h2 id="newtmgr-image"><font color="#F2853F" style="font-size:24pt">newtmgr image </font></h2>
<p>Manage images on a device.</p>
<h4 id="usage">Usage:</h4>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>    newtmgr image [command] -c &lt;connection_profile&gt; [flags] 
</code></pre></div>

<h4 id="flags">Flags:</h4>
<p>The coredownload subcommand uses the following local flags:</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>    -n, --bytes uint32         Number of bytes of the core to download 
    -e, --elfify               Create an ELF file 
        --offset unint32       Offset of the core file to start the download 
</code></pre></div>

<p><br></p>
<h4 id="global-flags">Global Flags:</h4>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>  -c, --conn string       connection profile to use
  -h, --help              help for newtmgr
  -l, --loglevel string   log level to use (default &quot;info&quot;)
      --name string       name of target BLE device; overrides profile setting
  -t, --timeout float     timeout in seconds (partial seconds allowed) (default 10)
  -r, --tries int         total number of tries in case of timeout (default 1)
</code></pre></div>

<p><br></p>
<h4 id="description">Description</h4>
<p>The image command provides subcommands to manage core and image files on a device.  Newtmgr uses the <code>conn_profile</code> connection profile to connect to the device.</p>
<table>
<thead>
<tr>
<th>Sub-command</th>
<th>Explanation</th>
</tr>
</thead>
<tbody>
<tr>
<td>confirm</td>
<td>The newtmgr image confirm [hex-image-hash] command makes an image setup permanent on a device. If a <code>hex-image-hash</code> hash value is specified, Mynewt permanently switches to the image identified by the hash value. If a hash value is not specified, the current image is made permanent.</td>
</tr>
<tr>
<td>coreconvert</td>
<td>The newtmgr image coreconvert &lt;core-filename&gt; &lt;elf-file&gt; command converts the <code>core-filename</code> core file to an ELF format and names it <code>elf-file</code>. <br><br> <strong>Note</strong>: This command does not download the core file from a device. The core file must exist on your host.</td>
</tr>
<tr>
<td>coredownload</td>
<td>The newtmgr image coredownload &lt;core-filename&gt; command downloads the core file from a device and names the file <code>core-filename</code> on your host. Use the local flags under Flags to customize the command.</td>
</tr>
<tr>
<td>coreerase</td>
<td>The newtmgr image coreerase command erases the core file on a device.</td>
</tr>
<tr>
<td>corelist</td>
<td>The newtmgr image corelist command lists the core(s) on a device.</td>
</tr>
<tr>
<td>erase</td>
<td>The newtmgr image erase command erases an unused image from the secondary image slot on a device. The image cannot be erased if the image is a confirmed image, is marked for test on the next reboot, or is an active image for a split image setup.</td>
</tr>
<tr>
<td>list</td>
<td>The newtmgr image list command displays information for the images on a device.</td>
</tr>
<tr>
<td>test</td>
<td>The newtmgr test &lt;hex-image-hash&gt; command tests the image, identified by the <code>hex-image-hash</code> hash value, on next reboot.</td>
</tr>
<tr>
<td>upload</td>
<td>The newtmgr image upload &lt;image-file&gt; command uploads the <code>image-file</code> image file to a device.</td>
</tr>
</tbody>
</table>
<h4 id="examples">Examples</h4>
<table>
<thead>
<tr>
<th>Sub-command</th>
<th>Usage</th>
<th>Explanation</th>
</tr>
</thead>
<tbody>
<tr>
<td>confirm</td>
<td>newtmgr confirm<br>-c profile01</td>
<td>Makes the current image setup on a device permanent.  Newtmgr connects to the device over a connection specified in the <code>profile01</code> connection profile.</td>
</tr>
<tr>
<td>confirm</td>
<td>newtmgr confirm<br>be9699809a049...73d77f<br>-c profile01</td>
<td>Makes the image, identified by the <code>be9699809a049...73d77f</code> hash value, setup on a device permanent.  Newtmgr connects to the device over a connection specified in the <code>profile01</code> connection profile.</td>
</tr>
<tr>
<td>coreconvert</td>
<td>newtmgr image coreconvert mycore mycore.elf</td>
<td>Converts the <code>mycore</code> file to the ELF format and saves it in the <code>mycore.elf</code> file.</td>
</tr>
<tr>
<td>coredownload</td>
<td>newtmgr image coredownload <br>mycore -c profile01</td>
<td>Downloads the core from a device and saves it in the <code>mycore</code> file.   Newtmgr connects to the device over a connection specified in the <code>profile01</code> connection profile.</td>
</tr>
<tr>
<td>coredownload</td>
<td>newtmgr image coredownload <br>mycore -e <br>-c profile01</td>
<td>Downloads the core from a device, converts the core file into the ELF format, and saves it in the <code>mycore</code> file.   Newtmgr connects to the device over a connection specified in the <code>profile01</code> connection profile.</td>
</tr>
<tr>
<td>coredownload</td>
<td>newtmgr image coredownload <br>mycore <br>--offset 10 -n 30<br>-c profile01</td>
<td>Downloads 30 bytes, starting at offset 10, of the core from a device and saves it in the <code>mycore</code> file.   Newtmgr connects to the device over a connection specified in the <code>profile01</code> connection profile.</td>
</tr>
<tr>
<td>coreerase</td>
<td>newtmgr image coreerase <br>-c profile01</td>
<td>Erases the core file on a device.  Newtmgr connects to the device over a connection specified in the <code>profile01</code> connection profile.</td>
</tr>
<tr>
<td>corelist</td>
<td>newtmgr image corelist<br>-c profile01</td>
<td>Lists the core files on a device.  Newtmgr connects to the device over a connection specified in the <code>profile01</code> connection profile.</td>
</tr>
<tr>
<td>erase</td>
<td>newtmgr image erase<br>-c profile01</td>
<td>Erases the image, if unused, from the secondary image slot on a device.  Newtmgr connects to the device over a connection specified in the <code>profile01</code> connection profile.</td>
</tr>
<tr>
<td>list</td>
<td>newtmgr image list<br>-c profile01</td>
<td>Lists the images on a device.  Newtmgr connects to the device over a connection specified in the <code>profile01</code> connection profile.</td>
</tr>
<tr>
<td>test</td>
<td>newtmgr image test <br>be9699809a049...73d77f</td>
<td>Tests the image, identified by the <code>be9699809a049...73d77f</code> hash value, during the next reboot on a device. Newtmgr connects to the device over a connection specified in the <code>profile01</code> connection profile.</td>
</tr>
<tr>
<td>upload</td>
<td>newtmgr image <br>upload btshell.img<br>-c profile01</td>
<td>Uploads the <code>btshell.img</code> image to a device.  Newtmgr connects to the device over a connection specified in the <code>profile01</code> connection profile.</td>
</tr>
</tbody>
</table>
                        
                        <div class="row">
                            



<ul class="nav nav-pills" style="margin-bottom: 10px">
    <li>
    
    </li>
    <li class="pull-right">
    
    </li>
</ul>
                        </div>
                        <footer class="row">
    <div class="col-xs-12">
        
            <p class="copyright">Apache Mynewt is available under Apache License, version 2.0.</p>
        
    </div>
    <div class="col-xs-12">
        <div class="logos">
            <a href="https://www.apache.org/">
                <img src="/img/asf_logo_wide_small.png" alt="Apache" title="Apache">
            </a>
            <p>
                Copyright © 2015-2021 The Apache Software Foundation.<br>
                <small class="footnote">
                    Apache Mynewt, Mynewt, Apache, the Apache feather logo, and the Apache Mynewt
                    project logo are either registered trademarks or trademarks of the Apache
                    Software Foundation in the United States and other countries.
                </small>
            </p>
            <a href="">
                <img src="https://www.countit.com/images/add_to_slack.png" alt="Slack Icon" title="Join our Slack Community" />
            </a>
        </div>
    </div>
    <a href="https://www.apache.org/licenses/">
        <button class="button-footer-asf">
            License
        </button>
    </a>
    <a href="https://www.apache.org/foundation/sponsorship.html">
        <button class="button-footer-asf">
            Sponsorship
        </button>
    </a>
    <a href="https://www.apache.org/foundation/thanks.html">
        <button class="button-footer-asf">
            Thanks
        </button>
    </a>
    <a href="https://www.apache.org/security/">
        <button class="button-footer-asf">
            Security
        </button>
    </a>
    <a href="https://apache.org/events/current-event">
        <button class="button-footer-asf">
            ASF Events
        </button>
    </a>
</footer>
                    </div>
                </div>
            
            
        </div>

        <script src="../../../js/jquery-1.10.2.min.js"></script>
        <script src="../../../js/bootstrap-3.0.3.min.js"></script>
        <script src="../../../js/highlight.pack.js"></script>
        <script src="../../../js/base.js"></script>
        <script src="../../../js/custom.js"></script>
            <script src="search/main.js"></script>

    </body>
</html>