Giter VIP home page Giter VIP logo

corbindavenport / nexus-tools Goto Github PK

View Code? Open in Web Editor NEW
832.0 832.0 85.0 15.64 MB

Installer for ADB, Fastboot, and other Android tools on Linux, macOS, Chrome OS, and Windows

Home Page: http://forum.xda-developers.com/general/general/tool-nexus-tools-2-8-featured-xda-t3258661

License: GNU General Public License v3.0

Shell 14.55% Dart 80.39% PowerShell 5.06%
adb android bash dart dartlang fastboot linux mac macos script wsl wsl2

nexus-tools's Introduction

nexus-tools's People

Contributors

ardakilic avatar cameronaaron avatar corbindavenport avatar herna1994 avatar karlsebal avatar mbochynski avatar trisk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nexus-tools's Issues

Windows ARM detection

The wrapper script for Windows should detect ARM devices, and only proceed with the installation if it actually works. I'm not sure if Platform Tools and/or Nexus Tools functions under the x86 emulation layer, I'll need to test with a VM or something.

Move PATH command

Good day!
I have installed nexustools to my Linux Mint 20.3 Una.
The program has been installed successfully, but adding the directory to systems path did not worked. After some help in Linux Mint forum, I have been adviced, that instead of creating ~/.bash_profile file, the script should add path information to ~./profile. Then it works correctly. That is because the login shell is not bash on Ubuntu/Mint/Debian but dash.
Please look at this topic: https://forums.linuxmint.com/viewtopic.php?p=2297663#p2297663

Apple Silicon support

Google doesn't yet provide Platform Tools for ARM macOS, so Nexus Tools quits when it checks the architecture. Need to check if the Rosetta compatibility layer applies to command-line applications, and if so, add the proper handling code to Nexus Tools.

Update adb and fastboot binaries

Please update the adb and fastboot binaries for Linux (Intel) PCs. Current binaries are out of date and can't be used to flash factory images on Nexus devices. Example: Nexus 6.

Log:
sending 'system' (1737204 KB)...
(bootloader) Data size exceeds download buffer
FAILED (remote failure)
finished. total time: 0.795s

Windows support

Nexus Tools could add native Windows support after the Dart rewrite (#58) is completed, since the Dart SDK can compile Windows executable. The installation process would likely be completely different, and all the code that interacts with Unix components (like moving files, checking the CPU, etc.) would have to be updated to support both Unix and Windows.

The best way to do this would probably to move whatever code can be shared to a library, then have one Dart file for Linux (currently main.dart) and one for Windows, which both import that library.

udev file have the wrong source code in it

After running the install script the udev file have the wrong source code in it. You missed the ?raw=true part in the url!

~ $ cat /etc/udev/rules.d/51-android.rules

<!DOCTYPE html>
<html>
  <head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# object: http://ogp.me/ns/object# article: http://ogp.me/ns/article# profile: http://ogp.me/ns/profile#">
    <meta charset='utf-8'>
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <title>nexus-tools/udev.txt at master · corbindavenport/nexus-tools · GitHub</title>
    <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub" />
    <link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub" />
    <link rel="apple-touch-icon" sizes="57x57" href="/apple-touch-icon-114.png" />
    <link rel="apple-touch-icon" sizes="114x114" href="/apple-touch-icon-114.png" />
    <link rel="apple-touch-icon" sizes="72x72" href="/apple-touch-icon-144.png" />
    <link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon-144.png" />
    <meta property="fb:app_id" content="1401488693436528"/>

      <meta content="@github" name="twitter:site" /><meta content="summary" name="twitter:card" /><meta content="corbindavenport/nexus-tools" name="twitter:title" /><meta content="nexus-tools - Tool to install ADB and Fastboot on Mac OS X, Linux, and Chrome OS" name="twitter:description" /><meta content="https://1.gravatar.com/avatar/7889314bc97439d16be4e9f56d069386?d=https%3A%2F%2Fidenticons.github.com%2Fa36c9260868465c2a1e8271bc684273d.png&amp;r=x&amp;s=400" name="twitter:image:src" />
<meta content="GitHub" property="og:site_name" /><meta content="object" property="og:type" /><meta content="https://1.gravatar.com/avatar/7889314bc97439d16be4e9f56d069386?d=https%3A%2F%2Fidenticons.github.com%2Fa36c9260868465c2a1e8271bc684273d.png&amp;r=x&amp;s=400" property="og:image" /><meta content="corbindavenport/nexus-tools" property="og:title" /><meta content="https://github.com/corbindavenport/nexus-tools" property="og:url" /><meta content="nexus-tools - Tool to install ADB and Fastboot on Mac OS X, Linux, and Chrome OS" property="og:description" />

    <meta name="hostname" content="github-fe117-cp1-prd.iad.github.net">
    <meta name="ruby" content="ruby 2.1.0p0-github-tcmalloc (87d8860372) [x86_64-linux]">
    <link rel="assets" href="https://github.global.ssl.fastly.net/">
    <link rel="conduit-xhr" href="https://ghconduit.com:25035/">
    <link rel="xhr-socket" href="/_sockets" />


    <meta name="msapplication-TileImage" content="/windows-tile.png" />
    <meta name="msapplication-TileColor" content="#ffffff" />
    <meta name="selected-link" value="repo_source" data-pjax-transient />
    <meta content="collector.githubapp.com" name="octolytics-host" /><meta content="collector-cdn.github.com" name="octolytics-script-host" /><meta content="github" name="octolytics-app-id" /><meta content="5DD5A4F4:2471:3DA2983:52FC8B3D" name="octolytics-dimension-request_id" />




    <link rel="icon" type="image/x-icon" href="/favicon.ico" />

    <meta content="authenticity_token" name="csrf-param" />
<meta content="B8vv/uK1Zzf3jrJnoNVfjGH3kf+rswcIOtEYbdRqKLM=" name="csrf-token" />

    <link href="https://github.global.ssl.fastly.net/assets/github-1d6e450b54230462761f7f0fb692c60039b0e67c.css" media="all" rel="stylesheet" type="text/css" />
    <link href="https://github.global.ssl.fastly.net/assets/github2-b4dcbb73b0e43228627f42f62e0587eed9d692fb.css" media="all" rel="stylesheet" type="text/css" />



      <script src="https://github.global.ssl.fastly.net/assets/frameworks-693e11922dcacc3a7408a911fe1647da4febd3bd.js" type="text/javascript"></script>
      <script async="async" defer="defer" src="https://github.global.ssl.fastly.net/assets/github-507be188ac8cabd0c8e7c219805b9a5c3b6bebca.js" type="text/javascript"></script>

      <meta http-equiv="x-pjax-version" content="f6ddfa42dbd89f29347ade6c8b5dd6b4">

        <link data-pjax-transient rel='permalink' href='/corbindavenport/nexus-tools/blob/a632dff28bd22716d6104496d50a3942d4035021/udev.txt'>

  <meta name="description" content="nexus-tools - Tool to install ADB and Fastboot on Mac OS X, Linux, and Chrome OS" />

  <meta content="3879063" name="octolytics-dimension-user_id" /><meta content="corbindavenport" name="octolytics-dimension-user_login" /><meta content="15083039" name="octolytics-dimension-repository_id" /><meta content="corbindavenport/nexus-tools" name="octolytics-dimension-repository_nwo" /><meta content="true" name="octolytics-dimension-repository_public" /><meta content="false" name="octolytics-dimension-repository_is_fork" /><meta content="15083039" name="octolytics-dimension-repository_network_root_id" /><meta content="corbindavenport/nexus-tools" name="octolytics-dimension-repository_network_root_nwo" />
  <link href="https://github.com/corbindavenport/nexus-tools/commits/master.atom" rel="alternate" title="Recent Commits to nexus-tools:master" type="application/atom+xml" />

  </head>


  <body class="logged_out  env-production  vis-public page-blob">
    <div class="wrapper">







      <div class="header header-logged-out">
  <div class="container clearfix">

    <a class="header-logo-wordmark" href="https://github.com/">
      <span class="mega-octicon octicon-logo-github"></span>
    </a>

    <div class="header-actions">
        <a class="button primary" href="/join">Sign up</a>
      <a class="button signin" href="/login?return_to=%2Fcorbindavenport%2Fnexus-tools%2Fblob%2Fmaster%2Fudev.txt">Sign in</a>
    </div>

    <div class="command-bar js-command-bar  in-repository">

      <ul class="top-nav">
          <li class="explore"><a href="/explore">Explore</a></li>
        <li class="features"><a href="/features">Features</a></li>
          <li class="enterprise"><a href="https://enterprise.github.com/">Enterprise</a></li>
          <li class="blog"><a href="/blog">Blog</a></li>
      </ul>
        <form accept-charset="UTF-8" action="/search" class="command-bar-form" id="top_search_form" method="get">

<input type="text" data-hotkey="/ s" name="q" id="js-command-bar-field" placeholder="Search or type a command" tabindex="1" autocapitalize="off"


      data-repo="corbindavenport/nexus-tools"
      data-branch="master"
      data-sha="f29426735cb2c9e4fe1eddf550f420fa35520d65"
  >

    <input type="hidden" name="nwo" value="corbindavenport/nexus-tools" />

    <div class="select-menu js-menu-container js-select-menu search-context-select-menu">
      <span class="minibutton select-menu-button js-menu-target">
        <span class="js-select-button">This repository</span>
      </span>

      <div class="select-menu-modal-holder js-menu-content js-navigation-container">
        <div class="select-menu-modal">

          <div class="select-menu-item js-navigation-item js-this-repository-navigation-item selected">
            <span class="select-menu-item-icon octicon octicon-check"></span>
            <input type="radio" class="js-search-this-repository" name="search_target" value="repository" checked="checked" />
            <div class="select-menu-item-text js-select-button-text">This repository</div>
          </div> <!-- /.select-menu-item -->

          <div class="select-menu-item js-navigation-item js-all-repositories-navigation-item">
            <span class="select-menu-item-icon octicon octicon-check"></span>
            <input type="radio" name="search_target" value="global" />
            <div class="select-menu-item-text js-select-button-text">All repositories</div>
          </div> <!-- /.select-menu-item -->

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

  <span class="octicon help tooltipped downwards" title="Show command bar help">
    <span class="octicon octicon-question"></span>
  </span>


  <input type="hidden" name="ref" value="cmdform">

</form>
    </div>

  </div>
</div>




          <div class="site" itemscope itemtype="http://schema.org/WebPage">

    <div class="pagehead repohead instapaper_ignore readability-menu">
      <div class="container">


<ul class="pagehead-actions">


  <li>
    <a href="/login?return_to=%2Fcorbindavenport%2Fnexus-tools"
    class="minibutton with-count js-toggler-target star-button tooltipped upwards"
    title="You must be signed in to use this feature" rel="nofollow">
    <span class="octicon octicon-star"></span>Star
  </a>

    <a class="social-count js-social-count" href="/corbindavenport/nexus-tools/stargazers">
      11
    </a>

  </li>

    <li>
      <a href="/login?return_to=%2Fcorbindavenport%2Fnexus-tools"
        class="minibutton with-count js-toggler-target fork-button tooltipped upwards"
        title="You must be signed in to fork a repository" rel="nofollow">
        <span class="octicon octicon-git-branch"></span>Fork
      </a>
      <a href="/corbindavenport/nexus-tools/network" class="social-count">
        4
      </a>
    </li>
</ul>

        <h1 itemscope itemtype="http://data-vocabulary.org/Breadcrumb" class="entry-title public">
          <span class="repo-label"><span>public</span></span>
          <span class="mega-octicon octicon-repo"></span>
          <span class="author">
            <a href="/corbindavenport" class="url fn" itemprop="url" rel="author"><span itemprop="title">corbindavenport</span></a>
          </span>
          <span class="repohead-name-divider">/</span>
          <strong><a href="/corbindavenport/nexus-tools" class="js-current-repository js-repo-home-link">nexus-tools</a></strong>

          <span class="page-context-loader">
            <img alt="Octocat-spinner-32" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" />
          </span>

        </h1>
      </div><!-- /.container -->
    </div><!-- /.repohead -->

    <div class="container">


      <div class="repository-with-sidebar repo-container new-discussion-timeline js-new-discussion-timeline  ">
        <div class="repository-sidebar">


<div class="sunken-menu vertical-right repo-nav js-repo-nav js-repository-container-pjax js-octicon-loaders">
  <div class="sunken-menu-contents">
    <ul class="sunken-menu-group">
      <li class="tooltipped leftwards" title="Code">
        <a href="/corbindavenport/nexus-tools" aria-label="Code" class="selected js-selected-navigation-item sunken-menu-item" data-gotokey="c" data-pjax="true" data-selected-links="repo_source repo_downloads repo_commits repo_tags repo_branches /corbindavenport/nexus-tools">
          <span class="octicon octicon-code"></span> <span class="full-word">Code</span>
          <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" />
</a>      </li>

        <li class="tooltipped leftwards" title="Issues">
          <a href="/corbindavenport/nexus-tools/issues" aria-label="Issues" class="js-selected-navigation-item sunken-menu-item js-disable-pjax" data-gotokey="i" data-selected-links="repo_issues /corbindavenport/nexus-tools/issues">
            <span class="octicon octicon-issue-opened"></span> <span class="full-word">Issues</span>
            <span class='counter'>1</span>
            <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" />
</a>        </li>

      <li class="tooltipped leftwards" title="Pull Requests">
        <a href="/corbindavenport/nexus-tools/pulls" aria-label="Pull Requests" class="js-selected-navigation-item sunken-menu-item js-disable-pjax" data-gotokey="p" data-selected-links="repo_pulls /corbindavenport/nexus-tools/pulls">
            <span class="octicon octicon-git-pull-request"></span> <span class="full-word">Pull Requests</span>
            <span class='counter'>0</span>
            <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" />
</a>      </li>


    </ul>
    <div class="sunken-menu-separator"></div>
    <ul class="sunken-menu-group">

      <li class="tooltipped leftwards" title="Pulse">
        <a href="/corbindavenport/nexus-tools/pulse" aria-label="Pulse" class="js-selected-navigation-item sunken-menu-item" data-pjax="true" data-selected-links="pulse /corbindavenport/nexus-tools/pulse">
          <span class="octicon octicon-pulse"></span> <span class="full-word">Pulse</span>
          <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" />
</a>      </li>

      <li class="tooltipped leftwards" title="Graphs">
        <a href="/corbindavenport/nexus-tools/graphs" aria-label="Graphs" class="js-selected-navigation-item sunken-menu-item" data-pjax="true" data-selected-links="repo_graphs repo_contributors /corbindavenport/nexus-tools/graphs">
          <span class="octicon octicon-graph"></span> <span class="full-word">Graphs</span>
          <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" />
</a>      </li>

      <li class="tooltipped leftwards" title="Network">
        <a href="/corbindavenport/nexus-tools/network" aria-label="Network" class="js-selected-navigation-item sunken-menu-item js-disable-pjax" data-selected-links="repo_network /corbindavenport/nexus-tools/network">
          <span class="octicon octicon-git-branch"></span> <span class="full-word">Network</span>
          <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" />
</a>      </li>
    </ul>


  </div>
</div>

              <div class="only-with-full-nav">




<div class="clone-url open"
  data-protocol-type="http"
  data-url="/users/set_protocol?protocol_selector=http&amp;protocol_type=clone">
  <h3><strong>HTTPS</strong> clone URL</h3>
  <div class="clone-url-box">
    <input type="text" class="clone js-url-field"
           value="https://github.com/corbindavenport/nexus-tools.git" readonly="readonly">

    <span class="js-zeroclipboard url-box-clippy minibutton zeroclipboard-button" data-clipboard-text="https://github.com/corbindavenport/nexus-tools.git" data-copied-hint="copied!" title="copy to clipboard"><span class="octicon octicon-clippy"></span></span>
  </div>
</div>



<div class="clone-url "
  data-protocol-type="subversion"
  data-url="/users/set_protocol?protocol_selector=subversion&amp;protocol_type=clone">
  <h3><strong>Subversion</strong> checkout URL</h3>
  <div class="clone-url-box">
    <input type="text" class="clone js-url-field"
           value="https://github.com/corbindavenport/nexus-tools" readonly="readonly">

    <span class="js-zeroclipboard url-box-clippy minibutton zeroclipboard-button" data-clipboard-text="https://github.com/corbindavenport/nexus-tools" data-copied-hint="copied!" title="copy to clipboard"><span class="octicon octicon-clippy"></span></span>
  </div>
</div>


<p class="clone-options">You can clone with
      <a href="#" class="js-clone-selector" data-protocol="http">HTTPS</a>,
      or <a href="#" class="js-clone-selector" data-protocol="subversion">Subversion</a>.
  <span class="octicon help tooltipped upwards" title="Get help on which URL is right for you.">
    <a href="https://help.github.com/articles/which-remote-url-should-i-use">
    <span class="octicon octicon-question"></span>
    </a>
  </span>
</p>



                <a href="/corbindavenport/nexus-tools/archive/master.zip"
                   class="minibutton sidebar-button"
                   title="Download this repository as a zip file"
                   rel="nofollow">
                  <span class="octicon octicon-cloud-download"></span>
                  Download ZIP
                </a>
              </div>
        </div><!-- /.repository-sidebar -->

        <div id="js-repo-pjax-container" class="repository-content context-loader-container" data-pjax-container>



<!-- blob contrib key: blob_contributors:v21:220235e0e4437bb0afe0bb2e63bbb441 -->

<p title="This is a placeholder element" class="js-history-link-replace hidden"></p>

<a href="/corbindavenport/nexus-tools/find/master" data-pjax data-hotkey="t" class="js-show-file-finder" style="display:none">Show File Finder</a>

<div class="file-navigation">


<div class="select-menu js-menu-container js-select-menu" >
  <span class="minibutton select-menu-button js-menu-target" data-hotkey="w"
    data-master-branch="master"
    data-ref="master"
    role="button" aria-label="Switch branches or tags" tabindex="0">
    <span class="octicon octicon-git-branch"></span>
    <i>branch:</i>
    <span class="js-select-button">master</span>
  </span>

  <div class="select-menu-modal-holder js-menu-content js-navigation-container" data-pjax>

    <div class="select-menu-modal">
      <div class="select-menu-header">
        <span class="select-menu-title">Switch branches/tags</span>
        <span class="octicon octicon-remove-close js-menu-close"></span>
      </div> <!-- /.select-menu-header -->

      <div class="select-menu-filters">
        <div class="select-menu-text-filter">
          <input type="text" aria-label="Filter branches/tags" id="context-commitish-filter-field" class="js-filterable-field js-navigation-enable" placeholder="Filter branches/tags">
        </div>
        <div class="select-menu-tabs">
          <ul>
            <li class="select-menu-tab">
              <a href="#" data-tab-filter="branches" class="js-select-menu-tab">Branches</a>
            </li>
            <li class="select-menu-tab">
              <a href="#" data-tab-filter="tags" class="js-select-menu-tab">Tags</a>
            </li>
          </ul>
        </div><!-- /.select-menu-tabs -->
      </div><!-- /.select-menu-filters -->

      <div class="select-menu-list select-menu-tab-bucket js-select-menu-tab-bucket" data-tab-filter="branches">

        <div data-filterable-for="context-commitish-filter-field" data-filterable-type="substring">


            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/corbindavenport/nexus-tools/blob/development/udev.txt"
                 data-name="development"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
                 title="development">development</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item selected">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/corbindavenport/nexus-tools/blob/master/udev.txt"
                 data-name="master"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
                 title="master">master</a>
            </div> <!-- /.select-menu-item -->
        </div>

          <div class="select-menu-no-results">Nothing to show</div>
      </div> <!-- /.select-menu-list -->

      <div class="select-menu-list select-menu-tab-bucket js-select-menu-tab-bucket" data-tab-filter="tags">
        <div data-filterable-for="context-commitish-filter-field" data-filterable-type="substring">


            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/corbindavenport/nexus-tools/tree/2.0/udev.txt"
                 data-name="2.0"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
                 title="2.0">2.0</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/corbindavenport/nexus-tools/tree/1.2.2/udev.txt"
                 data-name="1.2.2"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
                 title="1.2.2">1.2.2</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/corbindavenport/nexus-tools/tree/1.2.1/udev.txt"
                 data-name="1.2.1"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
                 title="1.2.1">1.2.1</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/corbindavenport/nexus-tools/tree/1.2/udev.txt"
                 data-name="1.2"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
                 title="1.2">1.2</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/corbindavenport/nexus-tools/tree/1.1/udev.txt"
                 data-name="1.1"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
                 title="1.1">1.1</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/corbindavenport/nexus-tools/tree/1.0/udev.txt"
                 data-name="1.0"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
                 title="1.0">1.0</a>
            </div> <!-- /.select-menu-item -->
        </div>

        <div class="select-menu-no-results">Nothing to show</div>
      </div> <!-- /.select-menu-list -->

    </div> <!-- /.select-menu-modal -->
  </div> <!-- /.select-menu-modal-holder -->
</div> <!-- /.select-menu -->

  <div class="breadcrumb">
    <span class='repo-root js-repo-root'><span itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb"><a href="/corbindavenport/nexus-tools" data-branch="master" data-direction="back" data-pjax="true" itemscope="url"><span itemprop="title">nexus-tools</span></a></span></span><span class="separator"> / </span><strong class="final-path">udev.txt</strong> <span class="js-zeroclipboard minibutton zeroclipboard-button" data-clipboard-text="udev.txt" data-copied-hint="copied!" title="copy to clipboard"><span class="octicon octicon-clippy"></span></span>
  </div>
</div>


  <div class="commit commit-loader file-history-tease js-deferred-content" data-url="/corbindavenport/nexus-tools/contributors/master/udev.txt">
    Fetching contributors…

    <div class="participation">
      <p class="loader-loading"><img alt="Octocat-spinner-32-eaf2f5" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32-EAF2F5.gif" width="16" /></p>
      <p class="loader-error">Cannot retrieve contributors at this time</p>
    </div>
  </div>

<div class="file-box">
  <div class="file">
    <div class="meta">
      <div class="info file-name">
        <span class="icon"><b class="octicon octicon-file-text"></b></span>
        <span class="mode" title="File Mode">file</span>
        <span class="meta-divider"></span>
          <span>31 lines (31 sloc)</span>
          <span class="meta-divider"></span>
        <span>1.704 kb</span>
      </div>
      <div class="actions">
        <div class="button-group">
              <a class="minibutton disabled tooltipped leftwards" href="#"
                 title="You must be signed in to make or propose changes">Edit</a>
          <a href="/corbindavenport/nexus-tools/raw/master/udev.txt" class="button minibutton " id="raw-url">Raw</a>
            <a href="/corbindavenport/nexus-tools/blame/master/udev.txt" class="button minibutton js-update-url-with-hash">Blame</a>
          <a href="/corbindavenport/nexus-tools/commits/master/udev.txt" class="button minibutton " rel="nofollow">History</a>
        </div><!-- /.button-group -->
          <a class="minibutton danger disabled empty-icon tooltipped leftwards" href="#"
             title="You must be signed in to make or propose changes">
          Delete
        </a>
      </div><!-- /.actions -->
    </div>
        <div class="blob-wrapper data type-text js-blob-data">
        <table class="file-code file-diff tab-size-8">
          <tr class="file-code-line">
            <td class="blob-line-nums">
              <span id="L1" rel="#L1">1</span>
<span id="L2" rel="#L2">2</span>
<span id="L3" rel="#L3">3</span>
<span id="L4" rel="#L4">4</span>
<span id="L5" rel="#L5">5</span>
<span id="L6" rel="#L6">6</span>
<span id="L7" rel="#L7">7</span>
<span id="L8" rel="#L8">8</span>
<span id="L9" rel="#L9">9</span>
<span id="L10" rel="#L10">10</span>
<span id="L11" rel="#L11">11</span>
<span id="L12" rel="#L12">12</span>
<span id="L13" rel="#L13">13</span>
<span id="L14" rel="#L14">14</span>
<span id="L15" rel="#L15">15</span>
<span id="L16" rel="#L16">16</span>
<span id="L17" rel="#L17">17</span>
<span id="L18" rel="#L18">18</span>
<span id="L19" rel="#L19">19</span>
<span id="L20" rel="#L20">20</span>
<span id="L21" rel="#L21">21</span>
<span id="L22" rel="#L22">22</span>
<span id="L23" rel="#L23">23</span>
<span id="L24" rel="#L24">24</span>
<span id="L25" rel="#L25">25</span>
<span id="L26" rel="#L26">26</span>
<span id="L27" rel="#L27">27</span>
<span id="L28" rel="#L28">28</span>
<span id="L29" rel="#L29">29</span>
<span id="L30" rel="#L30">30</span>
<span id="L31" rel="#L31">31</span>

            </td>
            <td class="blob-line-code"><div class="code-body highlight"><pre><div class='line' id='LC1'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;0bb4&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC2'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;0e79&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC3'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;0502&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC4'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;0b05&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC5'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;413c&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC6'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;0489&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC7'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;091e&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC8'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;18d1&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC9'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;0bb4&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC10'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;12d1&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC11'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;24e3&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC12'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;2116&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC13'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;0482&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC14'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;17ef&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC15'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;1004&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC16'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;22b8&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC17'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;0409&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC18'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;2080&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC19'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;0955&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC20'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;2257&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC21'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;10a9&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC22'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;1d4d&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC23'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;0471&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC24'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;04da&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC25'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;05c6&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC26'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;1f53&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC27'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;04e8&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC28'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;04dd&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC29'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;0fce&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC30'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;0930&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC31'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;19d2&quot;, MODE=&quot;0666&quot;</div></pre></div></td>
          </tr>
        </table>
  </div>

  </div>
</div>

<a href="#jump-to-line" rel="facebox[.linejump]" data-hotkey="l" class="js-jump-to-line" style="display:none">Jump to Line</a>
<div id="jump-to-line" style="display:none">
  <form accept-charset="UTF-8" class="js-jump-to-line-form">
    <input class="linejump-input js-jump-to-line-field" type="text" placeholder="Jump to line&hellip;" autofocus>
    <button type="submit" class="button">Go</button>
  </form>
</div>

        </div>

      </div><!-- /.repo-container -->
      <div class="modal-backdrop"></div>
    </div><!-- /.container -->
  </div><!-- /.site -->


    </div><!-- /.wrapper -->

      <div class="container">
  <div class="site-footer">
    <ul class="site-footer-links right">
      <li><a href="https://status.github.com/">Status</a></li>
      <li><a href="http://developer.github.com">API</a></li>
      <li><a href="http://training.github.com">Training</a></li>
      <li><a href="http://shop.github.com">Shop</a></li>
      <li><a href="/blog">Blog</a></li>
      <li><a href="/about">About</a></li>

    </ul>

    <a href="/">
      <span class="mega-octicon octicon-mark-github" title="GitHub"></span>
    </a>

    <ul class="site-footer-links">
      <li>&copy; 2014 <span title="0.02119s from github-fe117-cp1-prd.iad.github.net">GitHub</span>, Inc.</li>
        <li><a href="/site/terms">Terms</a></li>
        <li><a href="/site/privacy">Privacy</a></li>
        <li><a href="/security">Security</a></li>
        <li><a href="/contact">Contact</a></li>
    </ul>
  </div><!-- /.site-footer -->
</div><!-- /.container -->


    <div class="fullscreen-overlay js-fullscreen-overlay" id="fullscreen_overlay">
  <div class="fullscreen-container js-fullscreen-container">
    <div class="textarea-wrap">
      <textarea name="fullscreen-contents" id="fullscreen-contents" class="js-fullscreen-contents" placeholder="" data-suggester="fullscreen_suggester"></textarea>
          <div class="suggester-container">
              <div class="suggester fullscreen-suggester js-navigation-container" id="fullscreen_suggester"
                 data-url="/corbindavenport/nexus-tools/suggestions/commit">
              </div>
          </div>
    </div>
  </div>
  <div class="fullscreen-sidebar">
    <a href="#" class="exit-fullscreen js-exit-fullscreen tooltipped leftwards" title="Exit Zen Mode">
      <span class="mega-octicon octicon-screen-normal"></span>
    </a>
    <a href="#" class="theme-switcher js-theme-switcher tooltipped leftwards"
      title="Switch themes">
      <span class="octicon octicon-color-mode"></span>
    </a>
  </div>
</div>



    <div id="ajax-error-message" class="flash flash-error">
      <span class="octicon octicon-alert"></span>
      <a href="#" class="octicon octicon-remove-close close js-ajax-error-dismiss"></a>
      Something went wrong with that request. Please try again.
    </div>

  </body>
</html>

Error on downloading: "RangeError (length): invalid value"

While trying to install on ChromeOS (crostini linux), getting this error
There was an error downloading Platform Tools: RangeError (length): Invalid value: Not in inclusive range 0..271: 272

First attempt, I copied and pasted the bash install command
Second attempt, I download the linux zip file with wget, unzipped, chmod +x nexustools, ./nexustools -i but resulted in the same message.

Edit: I also tried the zip file download (expand zip, set exec priv, ./nexustools -i) with the prior stable version (.52, I think) with the same result. I will do the screenshot tomorrow.

mac os x 10.7.5

errors:

MacBook-Air-Efim:~ jfima$ adb
Illegal instruction: 4
MacBook-Air-Efim:~ jfima$ fastboot devices
Illegal instruction: 4
MacBook-Air-Efim:~ jfima$ adb
Illegal instruction: 4

Custom path additions seemingly overwritten after install

On macOS Ventura on an Apple Silicon device, after running the nexus-tools install script, my custom path configuration seems to have been overwritten. Other applications not in the default path, like homebrew, are no longer usable without using their full paths.

Is this reversible? Also, this seems like it should be fixed.

ARM Linux support

Google doesn't offer official Platform Tools for ARM Linux, but the android-sdk-platform-tools package in the Ubuntu repositories have a somewhat-recent version available for arm64 that might work: https://packages.ubuntu.com/hirsute/android-sdk-platform-tools

Everything that would need to happen:

  • Add a Nexus Tools compile target for ARM Linux
  • Detect ARM Linux and download Ubuntu's binaries instead of the Google zip package
  • Add a warning when the download source is not Google
  • Update the Bash wrapper script to detect ARM Linux and serve the ARM Linux build of Nexus Tools

Dart rewrite (Nexus Tools 5)

I'm currently in the process of rewriting Nexus Tools as a command-line application written in Dart. The current shell script version has become difficult to maintain, especially compensating for every possible variation of operating system, shell, and CPU architecture.

A version of Nexus Tools that functions similarly to the existing install.sh is already in the dart branch. To maintain compatibility with all the online guides and forum threads that include the web install command for Nexus Tools, the existing install.sh bash script will become a wrapper that downloads and executes the Dart file.

There are a few upsides to this approach:

  • More features can be added
  • The varying syntax for scripting across different shells won't cause weird bugs anymore
  • Nexus Tools can download and unzip the Platform Tools package itself, instead of relying on the host's copies of curl and unzip
  • Cleaner code
  • Windows support

There are also a few downsides:

  • Nexus Tools will have to be compiled for each platform, but since Google only provides x86 Platform Tools binaries, Nexus Tools only needs to support x86 macOS and x86 Linux right now.
  • Dart CLI apps cannot be signed for macOS right now, so install.sh will have to include steps for bypassing the signing requirement on macOS. This isn't a problem: #58 (comment)

The work that still needs to be done:

  • Add support for command-line arguments, with one for installing and one for uninstalling. When Nexus Tools is started without an argument, it should display a help message.
  • The install.sh and uninstall.sh scripts should download and execute Nexus Tools with the install and uninstall arguments, respectively.
  • Add support for the no-analytics argument already available in the current version, with pass-through support from the bash script installer (like running install.sh no-analytics right now).
  • Test and build Dart application and install.sh wrapper on macOS
  • Test and build for Windows
  • Nexus Tools executable should be installed to the same directory
  • Update the readme file with instructions for downloading and running Nexus Tools locally, in addition to the existing install.sh method.
  • Add update check
  • Add web install for Windows
  • Bug: The code for adding Nexus Tools to $PATH doesn't seem to make a new line.
  • Bug: Empty folder detected as fully installed

Nexus Tools install failed on Asus 13" chromebook

Hi
Trying to install ADB and fastboot on Asus 2015 chromebook. Below is the logging output. Any help?

chronos@localhost / $ bash <(curl -s https://raw.githubusercontent.com/corbindavenport/nexus-tools/master/install.sh)
[INFO] Nexus Tools 3.1
/dev/fd/63: line 97: gcc: command not found
[INFO] Please enter sudo password for install.
[ OK ] Sudo access granted.
/dev/fd/63: line 110: gcc: command not found
[INFO] Linux is detected but dpkg is either not working or not installing, now attempting dirty removal.
[INFO] Linux is detected but dpkg is either not working or not installing, now attempting dirty removal.
[INFO] Downloading ADB for Linux [Intel CPU]...
[ OK ] Download succeeded.
[INFO] Downloading Fastboot for Linux [Intel CPU]...
[ OK ] Download succeeded.
[INFO] Downloading udev list...
[EROR] Download failed.
[EROR] chmod: cannot access ‘/etc/udev/rules.d/51-android.rules’: No such file or directory
[EROR] chown: cannot access ‘/etc/udev/rules.d/51-android.rules’: No such file or directory
[ OK ] Marked ADB as executable.
[ OK ] Marked ADB as executable.
[INFO] Adding /home/chronos/user/.nexustools to $PATH...
[EROR] Install failed.
[EROR] Report bugs at: github.com/corbindavenport/nexus-tools/issues
[EROR] Report the following information in the bug report:
[EROR] OS: Linux
[EROR] ARCH: x86_64

Reopened: Fastboot too old error while flashing Android 8.1 Oreo

Because this problem still persists, and I'm not the only one, I reopened this issue...

No, my fastboot is not too old:

apt install fastboot
Reading package lists... Done
Building dependency tree
Reading state information... Done
fastboot is already the newest version (1:7.0.0+r33-2).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

But still I get this message and am not able to proceed with flashing.

angler-opm6.171019.030.h1# ./flash-all.sh
fastboot too old

I had the same issue some 2 month before, got always this error message. Tried a few days later again, everything went smoothly.

Now it's like deja vu all over again...

Fastboot too old error while flashing Android 8.1 Oreo

This is what I get when trying to flash Android 8.1 Oreo on my Nexus 6P. I'm using a MacBook running MacOS High Sierra.

fastboot too old
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.

[Process completed]

/proc/self/fd/11 command not found (with version 2.6.2)

~  bash <(curl -s https://raw.githubusercontent.com/corbindavenport/nexus-tools/master/install.sh)
[INFO] Nexus Tools 2.6
[INFO] Please enter sudo password for install.
root's password:
[ OK ] Sudo access granted.
[WARN] ADB is already present, press ENTER to overwrite or x to cancel.
[WARN] Fastboot is already present, press ENTER to overwrite or x to cancel.
[INFO] Downloading ADB for Linux [Intel CPU]...
[INFO] Success.
[INFO] Downloading Fastboot for Linux [Intel CPU]...
[INFO] Success.
/proc/self/fd/11: Zeile 31: [-n: Kommando nicht gefunden.
[INFO] Making ADB and Fastboot executable...
[INFO] ADB OK.
[INFO] Fastboot OK.
[ OK ] Done, type adb or fastboot to run!

...and first info line shows [INFO] Nexus Tools 2.6 instead of [INFO] Nexus Tools 2.6.2

"wrong" error on uninstall!?

Install script is succesfull after changing the parts mentioned in #4 and #5, also uninstalling is working (the files were deleted) but on fastboot file there is an error message shown here

~/tmp $ ll /usr/bin/fastboot /usr/bin/adb
-rwxr-xr-x 1 root root 1231255 13. Feb 10:14 /usr/bin/adb
-rwxr-xr-x 1 root root  197736 13. Feb 10:14 /usr/bin/fastboot
~/tmp $ bash <(curl https://raw.github.com/corbindavenport/nexus-tools/master/uninstall.sh)
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1547  100  1547    0     0   6205      0 --:--:-- --:--:-- --:--:--  6212
[INFO] Nexus Tools 2.0
[INFO] Please enter sudo password for uninstall.
[ OK ] Sudo access granted.
[ OK ] ADB removed.
[ OK ] Fastboot removed.
rm: das Entfernen von „/usr/bin/fastboot“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden
[ OK ] Udev list removed.
[ OK ] Done uninstalling!
~/tmp $ ll /usr/bin/fastboot /usr/bin/adb
ls: Zugriff auf /usr/bin/fastboot nicht möglich: Datei oder Verzeichnis nicht gefunden
ls: Zugriff auf /usr/bin/adb nicht möglich: Datei oder Verzeichnis nicht gefunden

Generate udev

A small check if there are already an udev rules file present would be a nice addition. If not adding a new file (/etc/udev/rules.d/51-android.rules) with the following content:

SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0e79", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0502", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0b05", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="413c", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0489", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="091e", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="12d1", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="24e3", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2116", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0482", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="17ef", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1004", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="22b8", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0409", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2080", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0955", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2257", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="10a9", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1d4d", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0471", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="04da", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="05c6", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1f53", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="04e8", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="04dd", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fce", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0930", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="19d2", MODE="0666"

Installation failed.

I try to install on OS X, with both the instructions, but without result.

This is what terminal says:

[INFO] Nexus Tools 2.6.3
[INFO] Please enter sudo password for install.
[ OK ] Sudo access granted.
[INFO] Downloading ADB for Mac OS X...
[EROR] Download failed.
[INFO] Downloading Fastboot for Mac OS X...
[EROR] Download failed.
expr: syntax error
[INFO] Making ADB and Fastboot executable...
[EROR] chmod: /usr/bin/adb: No such file or directory
[EROR] chmod: /usr/bin/fastboot: No such file or directory
[EROR] Install failed

Command not found

It didn't work.
When I try to install the drivers it writes:

ADB=/usr/bin/adb: Command not found.
FASTBOOT=/usr/bin/fastboot: Command not found.
UDEV=/etc/udev/rules.d/51-android.rules: Command not found.
Illegal variable name.

Moreover, I precise I'm on an iMac 32bits on mac osX Lion, and the first command didn't work at all, so I had to use the second one.

How to update binaries?

Trying to install on RPi Kali Linux, getting an error saying I don't have my binaries up-to-date...

Fastboot: waiting for any device

I'm getting this error when I run fastboot oen unlock. I've done my goggles regarding this error, and it's most likely a driver issue. Is there any work around for this on a Mac?

$ fastboot oem unlock
< waiting for any device >
_

Platform Tools universal binaries on macOS

https://android-developers.googleblog.com/2022/01/android-studio-bumblebee-202111-stable.html

For those using macOS on Apple Silicon (arm64) hardware, Android Studio Arctic Fox and the Android Emulator have supported this new architecture since last year. However, with this release, we have now updated the Android SDK platform tools v32.0.0 (which includes ADB and fastboot) and build tools v32.1.0 (which includes aapt) to be universal binaries so that your Android developer tools no longer need the Rosetta binary translator to run. Based on community feedback, those developers on this hardware platform have seen notable performance improvements. See release notes.

The download package used by Nexus Tools has not been updated yet, but once it is, the Rosetta detection code and compatibility layer warnings can be removed from Nexus Tools.

Incorrect logic on ARCH check

Seems you need to use = rather than == on line 146. Testing example below (done on an x86_64 machine; uname -m prints out "x86_64")

$ if [ $(uname -m) = 'x86_64' ] ; then
> echo 'True'
> fi
True
$ if [ $(uname -m) == 'x86_64' ] ; then
> echo 'True'
> fi
sh: 4: [: x86_64: unexpected operator
$ if [ "$(uname -m)" == "x86_64" ] ; then
> echo "True"
> fi
sh: 7: [: x86_64: unexpected operator
$ if [ "$(uname -m)" = "x86_64" ] ; then
> echo "True"
> fi
True

BUG: Missing to handle the absence of $HOME/.bashrc or $HOME/.zshrc

The PATH is was not added when I run the install.

After noticing that the Nexus tools directory was not in the PATH, I reviewed the install.sh document and I noticed that the code does not cover handle the absence of $HOME/.bashrc or $HOME/.zshrc. (As you can imagine by now I'm running a UNIX system, a Mac) :)

Have you considered adding also support for ~/.bash_profile? 👍

Here are the lines of code mentioned above:

install.sh:64

# Nexus Tools directory needs to be added to $PATH
		if [ -f "$HOME/.bashrc" ]; then
			echo 'export PATH=$PATH:'$DIR >> $HOME/.bashrc
			source "$HOME/.bashrc"
			echo "[ OK ] Added $DIR/ to $HOME/.bashrc."
		fi
		if [ -f "$HOME/.zshrc" ]; then
			echo 'export PATH=$PATH:'$DIR >> $HOME/.zshrc
			source "$HOME/.zshrc"
			echo "[ OK ] Added $DIR/ to $HOME/.zshrc."
		fi

bash: /usr/bin/adb not found!?

Done the bash one liner for the install part, everything went ok. But I can't use adb/fastboot in terminal, I get:

/usr/bin $ bash <(curl -s https://raw.githubusercontent.com/corbindavenport/nexus-tools/master/install.sh)
[INFO] Nexus Tools 2.7.1
[INFO] Please enter sudo password for install.
[ OK ] Sudo access granted.
[WARN] ADB is already present, press ENTER to overwrite or x to cancel.
[WARN] Fastboot is already present, press ENTER to overwrite or x to cancel.
[INFO] Downloading ADB for Linux [Intel CPU]...
[INFO] Success.
[INFO] Downloading Fastboot for Linux [Intel CPU]...
[INFO] Success.
[WARN] Udev rules are already present, press ENTER to overwrite or x to skip
[INFO] Downloading udev list...
[INFO] Success.
[INFO] Fix permissions
[ OK ] Fixed.
[INFO] Fix ownership
[ OK ] Fixed.
[INFO] Making ADB and Fastboot executable...
[INFO] ADB OK.
[INFO] Fastboot OK.
[ OK ] Done, type adb or fastboot to run!

/usr/bin $ uname -a
Linux eos-desktop 3.19.0-30-generic #34~14.04.1-Ubuntu SMP Fri Oct 2 22:09:39 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

/usr/bin $ ll /usr/bin/adb /usr/bin/fastboot 
-rwxr-xr-x 1 root root 1221846 Okt  7 23:00 /usr/bin/adb
-rwxr-xr-x 1 root root  556700 Okt  7 23:00 /usr/bin/fastboot

/usr/bin $ adb
bash: /usr/bin/adb: Datei oder Verzeichnis nicht gefunden

/usr/bin $ fastboot 
bash: /usr/bin/fastboot: Datei oder Verzeichnis nicht gefunden

(ubuntu 14.04)

If zsh is the active terminal, PATHs are not added

I'm using zsh + oh-my-zsh instead of bash as default terminal, and after I install nexus tools, because export PATH=$PATH:~/.nexustools is not added to .zshrc, I cannot run adb or fastboot directly.

So my suggestion is to check this file and append to it if exists.

Thanks in advance,

ReactOS support

ReactOS is an open-source clone of Windows NT: https://reactos.org/

It might be a fun project to try to get Nexus Tools in a functional state on ReactOS, but I'm not sure if that's feasible at all. I know a few issues already would have to be addressed:

  • ReactOS is 32-bit only, so the GitHub Action for compiling Nexus Tools would need to generate a 32-bit x86 executable, in addition to the current x64 executable. I don't think dart compile supports building for both architectures, so this might require installing the 32-bit Dart SDK with a Choco flag so we get the 32-bit compiler.
  • ReactOS doesn't have PowerShell, and GitHub doesn't load properly in most of the browsers available for ReactOS, so a different quick install method is needed (maybe a short URL that points to the .exe?)
  • I have no idea if Dart executables can run on ReactOS, even if they are built for 32-bit.
  • The Universal Drivers package might not work, haven't tested it yet.

One arch missing (x86_64)

~ $ bash <(curl https://raw.github.com/corbindavenport/nexus-tools/master/install.sh)
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  5351  100  5351    0     0  25051      0 --:--:-- --:--:-- --:--:-- 25122
[INFO] Nexus Tools 2.0
[INFO] Please enter sudo password for install.
[ OK ] Sudo access granted.
[EROR] Your CPU platform could not be detected. Now exiting.

~ $ expr substr $(uname -s) 1 5
Linux
~ $ arch
x86_64

Acer C720 Chromos adb "permission denied"

This did nothing after entering shell:

bash <(curl -s https://raw.githubusercontent.com/corbindavenport/nexus-tools/master/install.sh)

So I downloading the raw script and ran it after making my / partition rw:

wget https://raw.githubusercontent.com/corbindavenport/nexus-tools/master/install.sh
sudo chmod +x install.sh
./install.sh

This installed the tools fine, but I had to do this, per the readme below. I don't think nexus tools is properly added to path. Any new tab with shell doesn't show it.

PATH=~/.nexustools:$PATH

This piece of code seems to do nothing to ~/.bash_profile:

echo "[INFO] Adding $HOME/.nexustools to \$PATH..."
PATH=~/.nexustools:$PATH echo 'export PATH=$PATH:~/.nexustools' >> ~/.bash_profile

Running that last command as a normal user adds it fine. Once I added this to the path, everything worked.

So... I would suggest this be added to the readme for ChromeOS folks

If you have read/write access to your file system first, or bash execute will not work, in which you must run 'bash install.sh'. Otherwise, './install.sh' will work fine.

wget https://raw.githubusercontent.com/corbindavenport/nexus-tools/master/install.sh
sudo chmod +x install.sh
./install.sh

Run the following command if ~/.bash_profile is unaltered:

PATH=/.nexustools:$PATH echo 'export PATH=$PATH:/.nexustools' >> ~/.bash_profile

udev file have the wrong source code in it

After running the install script the udev file have the wrong source code in it

~ $ cat /etc/udev/rules.d/51-android.rules

<!DOCTYPE html>
<html>
  <head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# object: http://ogp.me/ns/object# article: http://ogp.me/ns/article# profile: http://ogp.me/ns/profile#">
    <meta charset='utf-8'>
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <title>nexus-tools/udev.txt at master · corbindavenport/nexus-tools · GitHub</title>
    <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub" />
    <link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub" />
    <link rel="apple-touch-icon" sizes="57x57" href="/apple-touch-icon-114.png" />
    <link rel="apple-touch-icon" sizes="114x114" href="/apple-touch-icon-114.png" />
    <link rel="apple-touch-icon" sizes="72x72" href="/apple-touch-icon-144.png" />
    <link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon-144.png" />
    <meta property="fb:app_id" content="1401488693436528"/>

      <meta content="@github" name="twitter:site" /><meta content="summary" name="twitter:card" /><meta content="corbindavenport/nexus-tools" name="twitter:title" /><meta content="nexus-tools - Tool to install ADB and Fastboot on Mac OS X, Linux, and Chrome OS" name="twitter:description" /><meta content="https://1.gravatar.com/avatar/7889314bc97439d16be4e9f56d069386?d=https%3A%2F%2Fidenticons.github.com%2Fa36c9260868465c2a1e8271bc684273d.png&amp;r=x&amp;s=400" name="twitter:image:src" />
<meta content="GitHub" property="og:site_name" /><meta content="object" property="og:type" /><meta content="https://1.gravatar.com/avatar/7889314bc97439d16be4e9f56d069386?d=https%3A%2F%2Fidenticons.github.com%2Fa36c9260868465c2a1e8271bc684273d.png&amp;r=x&amp;s=400" property="og:image" /><meta content="corbindavenport/nexus-tools" property="og:title" /><meta content="https://github.com/corbindavenport/nexus-tools" property="og:url" /><meta content="nexus-tools - Tool to install ADB and Fastboot on Mac OS X, Linux, and Chrome OS" property="og:description" />

    <meta name="hostname" content="github-fe117-cp1-prd.iad.github.net">
    <meta name="ruby" content="ruby 2.1.0p0-github-tcmalloc (87d8860372) [x86_64-linux]">
    <link rel="assets" href="https://github.global.ssl.fastly.net/">
    <link rel="conduit-xhr" href="https://ghconduit.com:25035/">
    <link rel="xhr-socket" href="/_sockets" />


    <meta name="msapplication-TileImage" content="/windows-tile.png" />
    <meta name="msapplication-TileColor" content="#ffffff" />
    <meta name="selected-link" value="repo_source" data-pjax-transient />
    <meta content="collector.githubapp.com" name="octolytics-host" /><meta content="collector-cdn.github.com" name="octolytics-script-host" /><meta content="github" name="octolytics-app-id" /><meta content="5DD5A4F4:2471:3DA2983:52FC8B3D" name="octolytics-dimension-request_id" />




    <link rel="icon" type="image/x-icon" href="/favicon.ico" />

    <meta content="authenticity_token" name="csrf-param" />
<meta content="B8vv/uK1Zzf3jrJnoNVfjGH3kf+rswcIOtEYbdRqKLM=" name="csrf-token" />

    <link href="https://github.global.ssl.fastly.net/assets/github-1d6e450b54230462761f7f0fb692c60039b0e67c.css" media="all" rel="stylesheet" type="text/css" />
    <link href="https://github.global.ssl.fastly.net/assets/github2-b4dcbb73b0e43228627f42f62e0587eed9d692fb.css" media="all" rel="stylesheet" type="text/css" />



      <script src="https://github.global.ssl.fastly.net/assets/frameworks-693e11922dcacc3a7408a911fe1647da4febd3bd.js" type="text/javascript"></script>
      <script async="async" defer="defer" src="https://github.global.ssl.fastly.net/assets/github-507be188ac8cabd0c8e7c219805b9a5c3b6bebca.js" type="text/javascript"></script>

      <meta http-equiv="x-pjax-version" content="f6ddfa42dbd89f29347ade6c8b5dd6b4">

        <link data-pjax-transient rel='permalink' href='/corbindavenport/nexus-tools/blob/a632dff28bd22716d6104496d50a3942d4035021/udev.txt'>

  <meta name="description" content="nexus-tools - Tool to install ADB and Fastboot on Mac OS X, Linux, and Chrome OS" />

  <meta content="3879063" name="octolytics-dimension-user_id" /><meta content="corbindavenport" name="octolytics-dimension-user_login" /><meta content="15083039" name="octolytics-dimension-repository_id" /><meta content="corbindavenport/nexus-tools" name="octolytics-dimension-repository_nwo" /><meta content="true" name="octolytics-dimension-repository_public" /><meta content="false" name="octolytics-dimension-repository_is_fork" /><meta content="15083039" name="octolytics-dimension-repository_network_root_id" /><meta content="corbindavenport/nexus-tools" name="octolytics-dimension-repository_network_root_nwo" />
  <link href="https://github.com/corbindavenport/nexus-tools/commits/master.atom" rel="alternate" title="Recent Commits to nexus-tools:master" type="application/atom+xml" />

  </head>


  <body class="logged_out  env-production  vis-public page-blob">
    <div class="wrapper">







      <div class="header header-logged-out">
  <div class="container clearfix">

    <a class="header-logo-wordmark" href="https://github.com/">
      <span class="mega-octicon octicon-logo-github"></span>
    </a>

    <div class="header-actions">
        <a class="button primary" href="/join">Sign up</a>
      <a class="button signin" href="/login?return_to=%2Fcorbindavenport%2Fnexus-tools%2Fblob%2Fmaster%2Fudev.txt">Sign in</a>
    </div>

    <div class="command-bar js-command-bar  in-repository">

      <ul class="top-nav">
          <li class="explore"><a href="/explore">Explore</a></li>
        <li class="features"><a href="/features">Features</a></li>
          <li class="enterprise"><a href="https://enterprise.github.com/">Enterprise</a></li>
          <li class="blog"><a href="/blog">Blog</a></li>
      </ul>
        <form accept-charset="UTF-8" action="/search" class="command-bar-form" id="top_search_form" method="get">

<input type="text" data-hotkey="/ s" name="q" id="js-command-bar-field" placeholder="Search or type a command" tabindex="1" autocapitalize="off"


      data-repo="corbindavenport/nexus-tools"
      data-branch="master"
      data-sha="f29426735cb2c9e4fe1eddf550f420fa35520d65"
  >

    <input type="hidden" name="nwo" value="corbindavenport/nexus-tools" />

    <div class="select-menu js-menu-container js-select-menu search-context-select-menu">
      <span class="minibutton select-menu-button js-menu-target">
        <span class="js-select-button">This repository</span>
      </span>

      <div class="select-menu-modal-holder js-menu-content js-navigation-container">
        <div class="select-menu-modal">

          <div class="select-menu-item js-navigation-item js-this-repository-navigation-item selected">
            <span class="select-menu-item-icon octicon octicon-check"></span>
            <input type="radio" class="js-search-this-repository" name="search_target" value="repository" checked="checked" />
            <div class="select-menu-item-text js-select-button-text">This repository</div>
          </div> <!-- /.select-menu-item -->

          <div class="select-menu-item js-navigation-item js-all-repositories-navigation-item">
            <span class="select-menu-item-icon octicon octicon-check"></span>
            <input type="radio" name="search_target" value="global" />
            <div class="select-menu-item-text js-select-button-text">All repositories</div>
          </div> <!-- /.select-menu-item -->

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

  <span class="octicon help tooltipped downwards" title="Show command bar help">
    <span class="octicon octicon-question"></span>
  </span>


  <input type="hidden" name="ref" value="cmdform">

</form>
    </div>

  </div>
</div>




          <div class="site" itemscope itemtype="http://schema.org/WebPage">

    <div class="pagehead repohead instapaper_ignore readability-menu">
      <div class="container">


<ul class="pagehead-actions">


  <li>
    <a href="/login?return_to=%2Fcorbindavenport%2Fnexus-tools"
    class="minibutton with-count js-toggler-target star-button tooltipped upwards"
    title="You must be signed in to use this feature" rel="nofollow">
    <span class="octicon octicon-star"></span>Star
  </a>

    <a class="social-count js-social-count" href="/corbindavenport/nexus-tools/stargazers">
      11
    </a>

  </li>

    <li>
      <a href="/login?return_to=%2Fcorbindavenport%2Fnexus-tools"
        class="minibutton with-count js-toggler-target fork-button tooltipped upwards"
        title="You must be signed in to fork a repository" rel="nofollow">
        <span class="octicon octicon-git-branch"></span>Fork
      </a>
      <a href="/corbindavenport/nexus-tools/network" class="social-count">
        4
      </a>
    </li>
</ul>

        <h1 itemscope itemtype="http://data-vocabulary.org/Breadcrumb" class="entry-title public">
          <span class="repo-label"><span>public</span></span>
          <span class="mega-octicon octicon-repo"></span>
          <span class="author">
            <a href="/corbindavenport" class="url fn" itemprop="url" rel="author"><span itemprop="title">corbindavenport</span></a>
          </span>
          <span class="repohead-name-divider">/</span>
          <strong><a href="/corbindavenport/nexus-tools" class="js-current-repository js-repo-home-link">nexus-tools</a></strong>

          <span class="page-context-loader">
            <img alt="Octocat-spinner-32" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" />
          </span>

        </h1>
      </div><!-- /.container -->
    </div><!-- /.repohead -->

    <div class="container">


      <div class="repository-with-sidebar repo-container new-discussion-timeline js-new-discussion-timeline  ">
        <div class="repository-sidebar">


<div class="sunken-menu vertical-right repo-nav js-repo-nav js-repository-container-pjax js-octicon-loaders">
  <div class="sunken-menu-contents">
    <ul class="sunken-menu-group">
      <li class="tooltipped leftwards" title="Code">
        <a href="/corbindavenport/nexus-tools" aria-label="Code" class="selected js-selected-navigation-item sunken-menu-item" data-gotokey="c" data-pjax="true" data-selected-links="repo_source repo_downloads repo_commits repo_tags repo_branches /corbindavenport/nexus-tools">
          <span class="octicon octicon-code"></span> <span class="full-word">Code</span>
          <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" />
</a>      </li>

        <li class="tooltipped leftwards" title="Issues">
          <a href="/corbindavenport/nexus-tools/issues" aria-label="Issues" class="js-selected-navigation-item sunken-menu-item js-disable-pjax" data-gotokey="i" data-selected-links="repo_issues /corbindavenport/nexus-tools/issues">
            <span class="octicon octicon-issue-opened"></span> <span class="full-word">Issues</span>
            <span class='counter'>1</span>
            <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" />
</a>        </li>

      <li class="tooltipped leftwards" title="Pull Requests">
        <a href="/corbindavenport/nexus-tools/pulls" aria-label="Pull Requests" class="js-selected-navigation-item sunken-menu-item js-disable-pjax" data-gotokey="p" data-selected-links="repo_pulls /corbindavenport/nexus-tools/pulls">
            <span class="octicon octicon-git-pull-request"></span> <span class="full-word">Pull Requests</span>
            <span class='counter'>0</span>
            <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" />
</a>      </li>


    </ul>
    <div class="sunken-menu-separator"></div>
    <ul class="sunken-menu-group">

      <li class="tooltipped leftwards" title="Pulse">
        <a href="/corbindavenport/nexus-tools/pulse" aria-label="Pulse" class="js-selected-navigation-item sunken-menu-item" data-pjax="true" data-selected-links="pulse /corbindavenport/nexus-tools/pulse">
          <span class="octicon octicon-pulse"></span> <span class="full-word">Pulse</span>
          <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" />
</a>      </li>

      <li class="tooltipped leftwards" title="Graphs">
        <a href="/corbindavenport/nexus-tools/graphs" aria-label="Graphs" class="js-selected-navigation-item sunken-menu-item" data-pjax="true" data-selected-links="repo_graphs repo_contributors /corbindavenport/nexus-tools/graphs">
          <span class="octicon octicon-graph"></span> <span class="full-word">Graphs</span>
          <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" />
</a>      </li>

      <li class="tooltipped leftwards" title="Network">
        <a href="/corbindavenport/nexus-tools/network" aria-label="Network" class="js-selected-navigation-item sunken-menu-item js-disable-pjax" data-selected-links="repo_network /corbindavenport/nexus-tools/network">
          <span class="octicon octicon-git-branch"></span> <span class="full-word">Network</span>
          <img alt="Octocat-spinner-32" class="mini-loader" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32.gif" width="16" />
</a>      </li>
    </ul>


  </div>
</div>

              <div class="only-with-full-nav">




<div class="clone-url open"
  data-protocol-type="http"
  data-url="/users/set_protocol?protocol_selector=http&amp;protocol_type=clone">
  <h3><strong>HTTPS</strong> clone URL</h3>
  <div class="clone-url-box">
    <input type="text" class="clone js-url-field"
           value="https://github.com/corbindavenport/nexus-tools.git" readonly="readonly">

    <span class="js-zeroclipboard url-box-clippy minibutton zeroclipboard-button" data-clipboard-text="https://github.com/corbindavenport/nexus-tools.git" data-copied-hint="copied!" title="copy to clipboard"><span class="octicon octicon-clippy"></span></span>
  </div>
</div>



<div class="clone-url "
  data-protocol-type="subversion"
  data-url="/users/set_protocol?protocol_selector=subversion&amp;protocol_type=clone">
  <h3><strong>Subversion</strong> checkout URL</h3>
  <div class="clone-url-box">
    <input type="text" class="clone js-url-field"
           value="https://github.com/corbindavenport/nexus-tools" readonly="readonly">

    <span class="js-zeroclipboard url-box-clippy minibutton zeroclipboard-button" data-clipboard-text="https://github.com/corbindavenport/nexus-tools" data-copied-hint="copied!" title="copy to clipboard"><span class="octicon octicon-clippy"></span></span>
  </div>
</div>


<p class="clone-options">You can clone with
      <a href="#" class="js-clone-selector" data-protocol="http">HTTPS</a>,
      or <a href="#" class="js-clone-selector" data-protocol="subversion">Subversion</a>.
  <span class="octicon help tooltipped upwards" title="Get help on which URL is right for you.">
    <a href="https://help.github.com/articles/which-remote-url-should-i-use">
    <span class="octicon octicon-question"></span>
    </a>
  </span>
</p>



                <a href="/corbindavenport/nexus-tools/archive/master.zip"
                   class="minibutton sidebar-button"
                   title="Download this repository as a zip file"
                   rel="nofollow">
                  <span class="octicon octicon-cloud-download"></span>
                  Download ZIP
                </a>
              </div>
        </div><!-- /.repository-sidebar -->

        <div id="js-repo-pjax-container" class="repository-content context-loader-container" data-pjax-container>



<!-- blob contrib key: blob_contributors:v21:220235e0e4437bb0afe0bb2e63bbb441 -->

<p title="This is a placeholder element" class="js-history-link-replace hidden"></p>

<a href="/corbindavenport/nexus-tools/find/master" data-pjax data-hotkey="t" class="js-show-file-finder" style="display:none">Show File Finder</a>

<div class="file-navigation">


<div class="select-menu js-menu-container js-select-menu" >
  <span class="minibutton select-menu-button js-menu-target" data-hotkey="w"
    data-master-branch="master"
    data-ref="master"
    role="button" aria-label="Switch branches or tags" tabindex="0">
    <span class="octicon octicon-git-branch"></span>
    <i>branch:</i>
    <span class="js-select-button">master</span>
  </span>

  <div class="select-menu-modal-holder js-menu-content js-navigation-container" data-pjax>

    <div class="select-menu-modal">
      <div class="select-menu-header">
        <span class="select-menu-title">Switch branches/tags</span>
        <span class="octicon octicon-remove-close js-menu-close"></span>
      </div> <!-- /.select-menu-header -->

      <div class="select-menu-filters">
        <div class="select-menu-text-filter">
          <input type="text" aria-label="Filter branches/tags" id="context-commitish-filter-field" class="js-filterable-field js-navigation-enable" placeholder="Filter branches/tags">
        </div>
        <div class="select-menu-tabs">
          <ul>
            <li class="select-menu-tab">
              <a href="#" data-tab-filter="branches" class="js-select-menu-tab">Branches</a>
            </li>
            <li class="select-menu-tab">
              <a href="#" data-tab-filter="tags" class="js-select-menu-tab">Tags</a>
            </li>
          </ul>
        </div><!-- /.select-menu-tabs -->
      </div><!-- /.select-menu-filters -->

      <div class="select-menu-list select-menu-tab-bucket js-select-menu-tab-bucket" data-tab-filter="branches">

        <div data-filterable-for="context-commitish-filter-field" data-filterable-type="substring">


            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/corbindavenport/nexus-tools/blob/development/udev.txt"
                 data-name="development"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
                 title="development">development</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item selected">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/corbindavenport/nexus-tools/blob/master/udev.txt"
                 data-name="master"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
                 title="master">master</a>
            </div> <!-- /.select-menu-item -->
        </div>

          <div class="select-menu-no-results">Nothing to show</div>
      </div> <!-- /.select-menu-list -->

      <div class="select-menu-list select-menu-tab-bucket js-select-menu-tab-bucket" data-tab-filter="tags">
        <div data-filterable-for="context-commitish-filter-field" data-filterable-type="substring">


            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/corbindavenport/nexus-tools/tree/2.0/udev.txt"
                 data-name="2.0"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
                 title="2.0">2.0</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/corbindavenport/nexus-tools/tree/1.2.2/udev.txt"
                 data-name="1.2.2"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
                 title="1.2.2">1.2.2</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/corbindavenport/nexus-tools/tree/1.2.1/udev.txt"
                 data-name="1.2.1"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
                 title="1.2.1">1.2.1</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/corbindavenport/nexus-tools/tree/1.2/udev.txt"
                 data-name="1.2"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
                 title="1.2">1.2</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/corbindavenport/nexus-tools/tree/1.1/udev.txt"
                 data-name="1.1"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
                 title="1.1">1.1</a>
            </div> <!-- /.select-menu-item -->
            <div class="select-menu-item js-navigation-item ">
              <span class="select-menu-item-icon octicon octicon-check"></span>
              <a href="/corbindavenport/nexus-tools/tree/1.0/udev.txt"
                 data-name="1.0"
                 data-skip-pjax="true"
                 rel="nofollow"
                 class="js-navigation-open select-menu-item-text js-select-button-text css-truncate-target"
                 title="1.0">1.0</a>
            </div> <!-- /.select-menu-item -->
        </div>

        <div class="select-menu-no-results">Nothing to show</div>
      </div> <!-- /.select-menu-list -->

    </div> <!-- /.select-menu-modal -->
  </div> <!-- /.select-menu-modal-holder -->
</div> <!-- /.select-menu -->

  <div class="breadcrumb">
    <span class='repo-root js-repo-root'><span itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb"><a href="/corbindavenport/nexus-tools" data-branch="master" data-direction="back" data-pjax="true" itemscope="url"><span itemprop="title">nexus-tools</span></a></span></span><span class="separator"> / </span><strong class="final-path">udev.txt</strong> <span class="js-zeroclipboard minibutton zeroclipboard-button" data-clipboard-text="udev.txt" data-copied-hint="copied!" title="copy to clipboard"><span class="octicon octicon-clippy"></span></span>
  </div>
</div>


  <div class="commit commit-loader file-history-tease js-deferred-content" data-url="/corbindavenport/nexus-tools/contributors/master/udev.txt">
    Fetching contributors…

    <div class="participation">
      <p class="loader-loading"><img alt="Octocat-spinner-32-eaf2f5" height="16" src="https://github.global.ssl.fastly.net/images/spinners/octocat-spinner-32-EAF2F5.gif" width="16" /></p>
      <p class="loader-error">Cannot retrieve contributors at this time</p>
    </div>
  </div>

<div class="file-box">
  <div class="file">
    <div class="meta">
      <div class="info file-name">
        <span class="icon"><b class="octicon octicon-file-text"></b></span>
        <span class="mode" title="File Mode">file</span>
        <span class="meta-divider"></span>
          <span>31 lines (31 sloc)</span>
          <span class="meta-divider"></span>
        <span>1.704 kb</span>
      </div>
      <div class="actions">
        <div class="button-group">
              <a class="minibutton disabled tooltipped leftwards" href="#"
                 title="You must be signed in to make or propose changes">Edit</a>
          <a href="/corbindavenport/nexus-tools/raw/master/udev.txt" class="button minibutton " id="raw-url">Raw</a>
            <a href="/corbindavenport/nexus-tools/blame/master/udev.txt" class="button minibutton js-update-url-with-hash">Blame</a>
          <a href="/corbindavenport/nexus-tools/commits/master/udev.txt" class="button minibutton " rel="nofollow">History</a>
        </div><!-- /.button-group -->
          <a class="minibutton danger disabled empty-icon tooltipped leftwards" href="#"
             title="You must be signed in to make or propose changes">
          Delete
        </a>
      </div><!-- /.actions -->
    </div>
        <div class="blob-wrapper data type-text js-blob-data">
        <table class="file-code file-diff tab-size-8">
          <tr class="file-code-line">
            <td class="blob-line-nums">
              <span id="L1" rel="#L1">1</span>
<span id="L2" rel="#L2">2</span>
<span id="L3" rel="#L3">3</span>
<span id="L4" rel="#L4">4</span>
<span id="L5" rel="#L5">5</span>
<span id="L6" rel="#L6">6</span>
<span id="L7" rel="#L7">7</span>
<span id="L8" rel="#L8">8</span>
<span id="L9" rel="#L9">9</span>
<span id="L10" rel="#L10">10</span>
<span id="L11" rel="#L11">11</span>
<span id="L12" rel="#L12">12</span>
<span id="L13" rel="#L13">13</span>
<span id="L14" rel="#L14">14</span>
<span id="L15" rel="#L15">15</span>
<span id="L16" rel="#L16">16</span>
<span id="L17" rel="#L17">17</span>
<span id="L18" rel="#L18">18</span>
<span id="L19" rel="#L19">19</span>
<span id="L20" rel="#L20">20</span>
<span id="L21" rel="#L21">21</span>
<span id="L22" rel="#L22">22</span>
<span id="L23" rel="#L23">23</span>
<span id="L24" rel="#L24">24</span>
<span id="L25" rel="#L25">25</span>
<span id="L26" rel="#L26">26</span>
<span id="L27" rel="#L27">27</span>
<span id="L28" rel="#L28">28</span>
<span id="L29" rel="#L29">29</span>
<span id="L30" rel="#L30">30</span>
<span id="L31" rel="#L31">31</span>

            </td>
            <td class="blob-line-code"><div class="code-body highlight"><pre><div class='line' id='LC1'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;0bb4&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC2'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;0e79&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC3'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;0502&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC4'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;0b05&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC5'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;413c&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC6'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;0489&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC7'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;091e&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC8'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;18d1&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC9'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;0bb4&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC10'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;12d1&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC11'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;24e3&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC12'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;2116&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC13'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;0482&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC14'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;17ef&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC15'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;1004&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC16'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;22b8&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC17'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;0409&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC18'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;2080&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC19'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;0955&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC20'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;2257&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC21'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;10a9&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC22'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;1d4d&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC23'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;0471&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC24'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;04da&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC25'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;05c6&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC26'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;1f53&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC27'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;04e8&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC28'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;04dd&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC29'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;0fce&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC30'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;0930&quot;, MODE=&quot;0666&quot;</div><div class='line' id='LC31'>SUBSYSTEM==&quot;usb&quot;, ATTRS{idVendor}==&quot;19d2&quot;, MODE=&quot;0666&quot;</div></pre></div></td>
          </tr>
        </table>
  </div>

  </div>
</div>

<a href="#jump-to-line" rel="facebox[.linejump]" data-hotkey="l" class="js-jump-to-line" style="display:none">Jump to Line</a>
<div id="jump-to-line" style="display:none">
  <form accept-charset="UTF-8" class="js-jump-to-line-form">
    <input class="linejump-input js-jump-to-line-field" type="text" placeholder="Jump to line&hellip;" autofocus>
    <button type="submit" class="button">Go</button>
  </form>
</div>

        </div>

      </div><!-- /.repo-container -->
      <div class="modal-backdrop"></div>
    </div><!-- /.container -->
  </div><!-- /.site -->


    </div><!-- /.wrapper -->

      <div class="container">
  <div class="site-footer">
    <ul class="site-footer-links right">
      <li><a href="https://status.github.com/">Status</a></li>
      <li><a href="http://developer.github.com">API</a></li>
      <li><a href="http://training.github.com">Training</a></li>
      <li><a href="http://shop.github.com">Shop</a></li>
      <li><a href="/blog">Blog</a></li>
      <li><a href="/about">About</a></li>

    </ul>

    <a href="/">
      <span class="mega-octicon octicon-mark-github" title="GitHub"></span>
    </a>

    <ul class="site-footer-links">
      <li>&copy; 2014 <span title="0.02119s from github-fe117-cp1-prd.iad.github.net">GitHub</span>, Inc.</li>
        <li><a href="/site/terms">Terms</a></li>
        <li><a href="/site/privacy">Privacy</a></li>
        <li><a href="/security">Security</a></li>
        <li><a href="/contact">Contact</a></li>
    </ul>
  </div><!-- /.site-footer -->
</div><!-- /.container -->


    <div class="fullscreen-overlay js-fullscreen-overlay" id="fullscreen_overlay">
  <div class="fullscreen-container js-fullscreen-container">
    <div class="textarea-wrap">
      <textarea name="fullscreen-contents" id="fullscreen-contents" class="js-fullscreen-contents" placeholder="" data-suggester="fullscreen_suggester"></textarea>
          <div class="suggester-container">
              <div class="suggester fullscreen-suggester js-navigation-container" id="fullscreen_suggester"
                 data-url="/corbindavenport/nexus-tools/suggestions/commit">
              </div>
          </div>
    </div>
  </div>
  <div class="fullscreen-sidebar">
    <a href="#" class="exit-fullscreen js-exit-fullscreen tooltipped leftwards" title="Exit Zen Mode">
      <span class="mega-octicon octicon-screen-normal"></span>
    </a>
    <a href="#" class="theme-switcher js-theme-switcher tooltipped leftwards"
      title="Switch themes">
      <span class="octicon octicon-color-mode"></span>
    </a>
  </div>
</div>



    <div id="ajax-error-message" class="flash flash-error">
      <span class="octicon octicon-alert"></span>
      <a href="#" class="octicon octicon-remove-close close js-ajax-error-dismiss"></a>
      Something went wrong with that request. Please try again.
    </div>

  </body>
</html>

Download Failed on iMac (2013) 10.10.5

Hello, I have been through the XDA thread, and cant seem to find anyone else having the same issue... I dont have El Capitan so not sure what the problem on my end could be?
I type : bash <(curl -s https://raw.githubusercontent.com/corbindavenport/nexus-tools/master/install.sh)
to install, and this is the output:
Tests-iMac:~ joshua$ bash <(curl -s https://raw.githubusercontent.com/corbindavenport/nexus-tools/master/install.sh)
[INFO] Nexus Tools 2.8
[INFO] Please enter sudo password for install.
Password:
[ OK ] Sudo access granted.
[INFO] Downloading ADB for Mac OS X...
[EROR] Download failed.
[INFO] Downloading Fastboot for Mac OS X...
[EROR] Download failed.
[INFO] Making ADB and Fastboot executable...
[EROR] chmod: /usr/local/bin/adb: No such file or directory
[EROR] chmod: /usr/local/bin/fastboot: No such file or directory
[INFO] Adding /usr/local/bin to PATH...
[EROR] Install failed

Please can you help me? What should I try? I dont have any firewalls running, and I uninstalled Little Snitch just in case, same results.

Many thanks
Josh

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.