Commit graph

183 commits

Author SHA1 Message Date
Badhri Jagan Sridharan
bf11095f92 fastboot: Add support for fastboot flashing commands
Commands added:
fastboot flashing lock
      - Prevents flashing partitions
fastboot flashing unlock
      - Enable user to flashing partitions
fastboot flashing lock_critical
      - Prevents flashing bootloader related
        paritions
fastboot flashing unlock_critical
      - Enables user to flash bootloader
        related partitions
fastboot flashing get_unlock_ability
      - Query bootloader to check if device is
        locked.

Change-Id: Id6db16ba32f7a2b1c3f041a76bd3bdf2d3ab471e
2015-05-15 18:00:50 -07:00
Elliott Hughes
fe93e8d2a7 Remove dead files.
Auto-imported from cupcake, not touched since then, or used anyway.

Change-Id: If2d50cddff0238dff818c7bae92fe8e1100fccdf
2015-05-11 21:57:33 -07:00
Narayan Kamath
e97e66ea7c Use base::WriteFully in zip_archive.
We're already linking against libbase but we'll have to add
a libbase dependency to every target that includes libziparchive
as a STATIC_LIBRARY dependency, given that there's no way to
express that what we want (except by adding a LOCAL_WHOLE_STATIC_LIBRARY
dependency on libbase to libziparchive but that seems bad too)

Change-Id: I294ad389a9c61a1134a7bc323da25b0004a8f1e0
2015-04-29 14:31:45 +00:00
Colin Cross
dc1e482b20 Fix windows adb build
libc++ is not available on windows yet, but it already defaults to
static libstdc++.

Change-Id: I85a766ead84f71fe1f2f59be6ac739b0b833b6db
2015-04-20 12:43:02 -07:00
Colin Cross
55bf5f0017 statically link adb and fastboot against libc++
libc++.so is not widely available on the host, so we compile against
one built as part of the platform.  This causes problems for adb and
fastboot, which are distributed through a number of channels - the
sdk, distro packages, downloaded from the build server, or manually
copied.  Instead of forcing all users to handle libc++.so too,
statically link against libc++.

Change-Id: I51b75258653a23558c8b598802005f6c1166a439
2015-04-16 17:09:46 -07:00
Mohamad Ayyash
80cc1f6864 Add verbose param to sparse_file_import_auto
Change-Id: I0c5607f7aa5e964abc2031bbe71ff5c6e6ef56cc
Signed-off-by: Mohamad Ayyash <mkayyash@google.com>
2015-03-31 12:09:37 -07:00
Elliott Hughes
99938804a5 Merge "fastboot/sparse: propagate error code" 2015-03-19 19:05:24 +00:00
Elliott Hughes
a82c89da1f Switch fastboot to ExtractEntryToFile.
Rather than malloc, ExtractToMemory, and write.

Also fix the tmpfile error check (tmpfile returns NULL on failure),
and improve error reporting.

Bug: 19765860
Change-Id: I236923e883128083377607f1519bb2e27b8f03f8
2015-03-19 11:44:32 -07:00
Elliott Hughes
7c6d884e2b Remove a prehistoric fastboot hack.
If you don't have android-info.txt in your zip file, you're probably
not using a current fastboot binary anyway.

Change-Id: Ic721dc5f068f704c6792493d1e99f05f907678ba
2015-03-19 10:30:53 -07:00
Elliott Hughes
d30ad8a2ee Switch fastboot to libziparchive.
Bug: 19765860
Change-Id: I83ea56e3b317893995d7106852b65584f99c0e64
2015-03-18 23:23:11 -07:00
Elliott Hughes
253c18d2fb Prepare for switching to libziparchive.
Bug: 19765860
Change-Id: I58249d28fbc4975428d0dcac5107d1994c35676c
2015-03-18 22:47:54 -07:00
Jeremy Compostella
9f0d6bdd66 fastboot/sparse: propagate error code
sparse_file_write_block calls functions that might failed.  This patch
makes sparse_file_write_block catch the error code and propagate it.

Without this patch, fastboot crashes on a segmentation fault if
usb_write() fail during a sparse file image flashing.

Change-Id: If9c0e8dfac8fa380628a2504e13abe8cf7d62726
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
2015-03-01 11:54:02 +01:00
Elliott Hughes
ca85df0662 Support "fastboot reboot bootloader".
This matches the more general adb syntax, though the fastboot
protocol doesn't support rebooting into the recovery image.

Change-Id: I6d93d4c63d4a9b81c71e681e7a7bf76867fba019
2015-02-25 10:02:00 -08:00
Yabin Cui
71a968602d kill libunz
Bug: 18571533
Change-Id: I4214f9236f80629152d969a6ee9fce489079cefa
2014-12-09 22:24:07 -08:00
Christopher Ferris
67a7a4ae27 Fix adb/fastboot windows compilations.
Many of the windows files where not including stdlib.h even though they
are using malloc/free calls.

(cherry-pick of ae7bf0959bd3f79afbf365e41f015ed1c304afdc.)

Change-Id: If6959df9909d9d9928e9f4a2a96018166361cf3c
2014-12-09 16:03:29 -08:00
Jack Pham
1c02213e89 fastboot: Support USB 3.x SuperSpeed devices on Linux
When enumerating USB 3.x devices, an extra 6-byte SuperSpeed
companion descriptor follows each standard endpoint descriptor.
The loop parsing the descriptors will stumble if they're not
handled. Since they're not needed once the bulk endpoints are
identified, we can simply skip over them.

Change-Id: I7e73bcf9135f23c3059cd7c55b432557b28cb6ef
2014-12-05 12:11:20 -08:00
Badhri Jagan Sridharan
971336213a Merge "system: core: fastboot: Increase USB protocol buffer size to 1024" 2014-12-04 18:58:46 +00:00
Stephen Hines
04f895314d Clarify the strcmp() with the empty string.
Change-Id: Ie246b3c2de3f19b95693f634b0ebd46bdcf3962b
2014-11-26 14:54:43 -08:00
Stephen Hines
f66486ef09 Merge "Fix incorrect path name check." 2014-11-26 22:32:23 +00:00
Stephen Hines
60f21a7f61 Fix incorrect path name check.
This was caught by clang 3.6's -Wpointer-bool-conversion. The device_path
field is a char[256], and thus never NULL. The intention for this code was
to check whether or not there is a named path at all. Checking whether this
is an empty string matches the original intent.

Change-Id: I5ccedc03167e6a457e472089de26130aff7f96e3
2014-11-26 14:30:01 -08:00
Florian Bäuerle
27ded4832d fastboot: add parameter for unbuffered stderr/stdout
This is useful for writing Windows GUIs that want to parse the output of
fastboot before it exits.

Change-Id: Ic0171fe379fc4db7b65b1501e5f2e771ac7c62c4
Signed-off-by: Florian Bäuerle <florian.bae@gmail.com>
2014-11-24 18:12:22 +01:00
Al Sutton
2a4b5f9e80 Remove explict use of ASCII encoding
Replace the use of CFStringGetCString with kCFStringEncodingASCII specified
with CFStringGetFileSystemRepresentation which will ensure the correct
character encoding is used to conver the CFString into a NULL terminated
char array suitable for use with POSIX APIs.

Change-Id: Ibab1dc05c4f4db8604d329a493b4241992b8e69d
2014-11-21 15:56:59 +00:00
Al Sutton
26b53bb75e Return path including executable instead of without
The previous implementation returned the path the executable was in instead
of returning the path including the executable (i.e. it returned ...bin
instead of ...bin/executable). This is not what the original methods did
and caused the process forking of adb to fail.

This patch corrects the implementation.

Change-Id: Ib58497cab35706041f170c1bc97c31fd5d965f90
2014-11-20 13:33:57 +00:00
Al Sutton
f456d47c50 Fix building on modern versions of Xcode and OS X.
Recent versions of XCode fail to compile the adb and fastboot binaries due to
two functions being deprecated in 10.9 (GetCurrentProcess and
ProcessInformationCopyDictionary), and the use of -Werrror.

This patch replaces the method implementations which use calls to methods
deprecated in the 10.9 SDK with versions which only call non-deprecated methods.

Change-Id: I855bf26aff45093ca9022924f3ecd1b80f2305a8
2014-11-19 19:50:48 +00:00
Channagoud Kadabi
b2117739ed system: core: fastboot: Increase USB protocol buffer size to 1024
With USB3.0 SS support the max packet size supported by USB protocol
is 1024 bytes. When connected to a USB device in SuperSpeed, if only
512 bytes are sent at a time the device would interpret each transfer
as a short packet and slows down overall throughput. To accommodate
for SuperSpeed USB bulk endpoints, increase the buffer size to 1024.

Change-Id: I4f447fe38045bc0008e2d6dd3f36c2d6819d6c15
2014-11-07 12:01:33 -08:00
Stephen Hines
1e95e0b19c am 64f44b84: Merge "Remove obsolete reference to ddk; Fixes for -Werror" into lmp-dev
* commit '64f44b8444dabd69cf391d42e10d44e8e926a79d':
  Remove obsolete reference to ddk; Fixes for -Werror
2014-10-01 23:21:09 +00:00
Andrew Hsieh
b75d6f1429 Remove obsolete reference to ddk; Fixes for -Werror
Bug: 14416410

1. The new mingw-w64 toolchain x86_64-w64-mingw32-4.8 has ddk
   in x86_64-w64-mingw32/include/ddk
2. Add -Wno-error=cpp to suppress a warning that turns into error
   thanks to -Werror:

      Please include winsock2.h before windows.h
3. Cast GetLastError() return type DWORD to "int"
4. Include direct.h for _mkdir
5. Include stdint.h for uint8_t on Windows

Change-Id: I4bec0587f6573692f08c760da6c98ae551b8b5eb
2014-09-30 02:24:07 -07:00
Daniel Rosenberg
24e834ab60 am 81b857f3: Merge "fastboot: Remove tos from flashall" into lmp-dev
* commit '81b857f3a21f3ae96a5ec72e54982fe30278049f':
  fastboot: Remove tos from flashall
2014-09-16 21:34:45 +00:00
Daniel Rosenberg
015d73ff4e fastboot: Remove tos from flashall
bug: 17498561
Change-Id: I0190c1a5ac635375404799c040e4be523fa29622
Signed-off-by: Daniel Rosenberg <drosen@google.com>
2014-09-15 13:44:07 -07:00
Jeremy Compostella
310db68903 am a42adff9: fastboot: add the support of the second stage image [DO NOT MERGE]
* commit 'a42adff905600219cbf5ef217d2b46670225aca3':
  fastboot: add the support of the second stage image [DO NOT MERGE]
2014-08-16 05:17:12 +00:00
Jeremy Compostella
a42adff905 fastboot: add the support of the second stage image [DO NOT MERGE]
The AOSP bootimage format allows the use of a second stage image
however the fastboot boot and flash:row commands do not allow the
"secondstage" optional argument.  This patch adds the support of this
argument for both commands.

Change-Id: I00403a95d7460a00233841ba0fe0e8a69d78c7b4
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
2014-08-15 21:21:09 -07:00
Ying Wang
0c3d98b02b am 87ad7cdc: am e1ba39aa: Merge "Fix 64-bit host build."
* commit '87ad7cdc590aa4033f0b7ae23d83e2fbc119d07a':
  Fix 64-bit host build.
2014-08-14 23:20:06 +00:00
Ying Wang
42a809ba06 Fix 64-bit host build.
Bug: 13751317
Change-Id: Ibf62935b7d12a55ffc57242a26a2581b52796847
2014-08-14 15:52:54 -07:00
Tim Murray
b2e13ae4fe am 3a5f3db2: am c894ced1: Merge "Fix fastboot for Darwin."
* commit '3a5f3db2aa5324518eb71c69cd1fb3e2125cbd43':
  Fix fastboot for Darwin.
2014-07-25 02:38:02 +00:00
Tim Murray
bd87944805 Fix fastboot for Darwin.
bug 16172793

Change-Id: Ib58446effc13a6e465d176da141b025d36841b8f
2014-07-24 19:27:37 -07:00
Patrick Tjin
4415e2a269 Scan all descriptors when checking for fastboot [DO NOT MERGE]
For Linux, the USB code was only looking at the first
descriptor when searching for the fastboot interface
which caused some devices to not be found.

Also clarify some code by using the actual USB structures
instead of void or char pointers.

(Cherry Picked from aac89db8a5)
Change-Id: I9e4871c4d477ac10ba75bb17a955f176809af289
Signed-off-by: Patrick Tjin <pattjin@google.com>
2014-07-17 10:07:19 -07:00
Patrick Tjin
3a07ce8c04 am 7793a109: am 5328f671: Merge "Scan all descriptors when checking for fastboot"
* commit '7793a10993a357db6a963760737193992055a690':
  Scan all descriptors when checking for fastboot
2014-07-17 12:59:43 +00:00
Patrick Tjin
aac89db8a5 Scan all descriptors when checking for fastboot
For Linux, the USB code was only looking at the first
descriptor when searching for the fastboot interface
which caused some devices to not be found.

Also clarify some code by using the actual USB structures
instead of void or char pointers.

Change-Id: I9e4871c4d477ac10ba75bb17a955f176809af289
Signed-off-by: Patrick Tjin <pattjin@google.com>
2014-07-11 14:15:30 -07:00
Markus Mayer
c335a3500c Fix typo in fs.h
fs.h defined _FH_H_ rather than _FS_H_

Change-Id: I710ef53e88d3601e486fde9957f6d022871d9602
Signed-off-by: Markus Mayer <code@mmayer.net>
2014-07-09 15:27:53 -07:00
Elliott Hughes
67db9d5f73 am b2ac4243: am f76c8fe6: am 328c3ef6: Merge "Fix typo in fs.h"
* commit 'b2ac4243000057baf1656c93197150ba7665137e':
  Fix typo in fs.h
2014-07-10 00:49:53 +00:00
JP Abgrall
fab6ebafa6 am 47050442: am 31132182: am 07703339: Merge "Wait for device to disappear after "fastboot reboot"."
* commit '4705044243225ffde88910154485a84c27a33709':
  Wait for device to disappear after "fastboot reboot".
2014-06-25 00:28:50 +00:00
Daniel Rosenberg
f530c93c4a Added support for vendor partition and image
Modified fastboot to flash vendor.img as well. Moved symlink
for /vendor to occur after mounting partitions. Changed mount
to also create the mount point.

Change-Id: I78e1ba24e6bb8b4af96a67ee0569af579439e682
Signed-off-by: Daniel Rosenberg <drosen@google.com>
2014-06-24 21:51:31 +00:00
Mark Wachsler
ec25e7bc4b Wait for device to disappear after "fastboot reboot".
This is a follow-up to commit 157b00171a.
After "fastboot reboot", "fastboot devices" was still showing the device as
connected even though it was starting to reboot; now "fastboot reboot" will
wait until the device has disconnected.

The wait timeout is 3 seconds.

Change-Id: I8066741f0be91e53f3e3f5bc968bc1b9de31db05
2014-06-24 22:34:34 +00:00
JP Abgrall
188fdd1c0f Merge "fastboot: Allow searching for needed dynamic libs in '.' (F2FS)" 2014-06-19 20:37:59 +00:00
JP Abgrall
436abebf8c fastboot: Allow searching for needed dynamic libs in '.' (F2FS)
Currently the default rpath includes $ORIGIN/../lib
So we throw in '.' which should help distributions of fastboot.

readelf -d $(which fastboot)|grep RPATH
 0x0000000f (RPATH) Library rpath: [$ORIGIN/../lib:.]

Bug: 15731906
Change-Id: I2f4345d178e5b3c87f6f159faf105ae30f3b52eb
Signed-off-by: JP Abgrall <jpa@google.com>
2014-06-19 14:47:19 -07:00
Ying Wang
6b048ce839 Store libf2fs_fmt_host_dyn on the build server.
It will be dynamically loaded by fastboot.

Bug: 15731906
Change-Id: Iff6f2b745b4ffd2c5fe343160b3efb8dcd5702fa
2014-06-19 14:44:23 -07:00
JP Abgrall
64c0ff21e4 fastboot: correctly set dependency on f2fs dynamic lib
In the past it would incorrectly also link against the dlopen()'d lib.

Now it clearly does not care about it.

ldd $(which fastboot)
        linux-gate.so.1 =>  (0xf7735000)
        libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf76d9000)
        libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf75f4000)
        libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf75c7000)
        libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf75a9000)
        libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf73ff000)
        /lib/ld-linux.so.2 (0xf7736000)

Bug: 15717498
Change-Id: I5465e97a445b17f5493a1f590e181ef98a382451
Signed-off-by: JP Abgrall <jpa@google.com>
2014-06-18 11:13:05 -07:00
Torne (Richard Coles)
11d8ac2afb Only try and use f2fs on linux.
F2FS was already disabled on windows, but the library doesn't build for
mac either, so only try and use it on Linux hosts.

Change-Id: I8bacfa4c01c9ee13123aef6d05d17b3f9094c765
2014-06-18 13:48:38 +01:00
JP Abgrall
6bd72beff6 fastboot: fix windows sdk build (don't do f2fs dyn load on windows)
Only do f2fs dynamic loading on linux.
Adds a stub for windows builds.

Change-Id: I7bbaaa1b2ff5992709d904b7ace40ae263d32922
Signed-off-by: JP Abgrall <jpa@google.com>
2014-06-17 23:43:18 -07:00
JP Abgrall
1235158c29 F2FS support for fastboot format and fsmgr
- Enables fsck.f2fs for partitions with type F2FS.
- Adds support for f2fs as format fs-type.
- f2fs is optional and support is dlopen()d when needed.

Needs changes in
  system/extras/f2fs_utils
  external/f2fs-tools

Change-Id: I8d141a0d4d14df9fe84d3b131484e9696fcd8870
Signed-off-by: JP Abgrall <jpa@google.com>
2014-06-17 17:01:14 -07:00