IP Library › Granted Patent US 10,467,415
Granted Patent B2
US 10,467,415 · App. 15/472,109 · Granted Nov 5, 2019

Conditional updating based on bootloader unlock status

Inventor: Joshua Patrick Finger (Covington, WA)
Assignee: T-Mobile USA, Inc.
G06F21/575G06F9/4406G06F8/654H04W8/245
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,467,415
App. No.
15/472,109
Filed
Mar 28, 2017
Granted
Nov 5, 2019
Kind
B2
Art Unit
2186
USPC
713/2
Abstract

An unlockable bootloader of an electronic device may be unlocked by a user of the electronic device using a sanctioned bootloader unlocking process. An eligibility check may be performed through an interaction between the device and at least one network node(s) to determine whether a user of the electronic device is eligible to unlock the bootloader of the electronic device. If eligible, the user can provide user input to unlock the bootloader, causing the device to send an acknowledgement to the network, and, in response, the device receives a token from the network node. Upon receipt of the token, the electronic device can perform a first reboot, unlock the bootloader using the token, and perform a second reboot into the operating system with an unlocked bootloader. Due to the device-network interactions during the sanctioned bootloader unlocking process, one or more protection measures can be implemented, such as disabling software updates.

Claims (58)

1. A electronic device comprising:

one or more processor; and

memory storing a bootloader and computer-executable instructions that, when executed by the one or more processors, cause the electronic device to:

send, over a computer network, a request for an eligibility status of a user of the electronic device to unlock the bootloader, the request including an identifier associated with the user;

receive a response to the request indicating that the user is eligible to unlock the bootloader;

receive user input requesting to unlock the bootloader;

send, over the computer network and based at least in part on the user input, an acknowledgement that the user requested to unlock the bootloader;

receive a token;

perform a first reboot of the electronic device;

unlock the bootloader based at least in part on the token;

perform a second reboot of the electronic device; and

based at least in part on unlocking the bootloader, refrain from performing an update procedure that checks for, and downloads, available software updates for the electronic device over the computer network.

2. The electronic device of claim 1 , wherein the computer-executable instructions further cause the electronic device to, after receiving the user input requesting to unlock the bootloader, set a flag within a trusted execution environment of the electronic device to indicate that the bootloader has been unlocked.

3. The electronic device of claim 2 , wherein the computer-executable instructions further cause the electronic device to:

prior to setting the flag and prior to unlocking the bootloader, perform, by an over-the-air (OTA) handler executable on the electronic device, the update procedure at least once to check for, and download, an available software update for the electronic device over the computer network; and

after setting the flag, determine, by the OTA handler, that the flag, indicating that the bootloader has been unlocked, has been set within the trusted execution environment prior to refraining from performing the update procedure, wherein refraining from performing the update procedure occurs after, and is based at least in part, on the flag being set.

4. The electronic device of claim 1 , wherein the computer-executable instructions further cause the electronic device to, prior to receiving the user input, present, on a display of the electronic device, information indicating a consequence of providing the user input requesting to unlock the bootloader, the consequence including at least one of: (i) voiding a warranty associated with the electronic device, (ii) the electronic device becoming ineligible for trade-in or resale at an authorized device dealer, or (iii) disabling software updates for the electronic device.

5. The electronic device of claim 1 , wherein the computer-executable instructions further cause the electronic device to, after receiving the user input and prior to sending the acknowledgement, authenticate the user via an authentication procedure using the electronic device.

6. The electronic device of claim 1 , wherein the computer-executable instructions further cause the electronic device to, after receiving the token, persist the token in a trusted execution environment of the electronic device, wherein unlocking the bootloader based at least in part on the token further comprises confirming a presence of the token in the trusted execution environment in response to performing the first reboot.

7. The electronic device of claim 1 , wherein the identifier comprises at least one of a Mobile Station International Subscriber Directory Number (MSISDN) or an International Mobile Equipment Identity (IMEI).

8. The electronic device of claim 1 , wherein performing the first reboot comprises rebooting into a bootloader stage.

9. The electronic device of claim 1 , wherein performing the second reboot comprises rebooting into an operating system stage.

10. A computer-implemented method comprising:

receiving, from an electronic device over a computer network, a request for an eligibility status of a user of the electronic device to unlock a bootloader of the electronic device, the request including an identifier associated with the user;

accessing user data associated with the user or device data associated with the electronic device based at least in part on the identifier;

determining that the user is eligible to unlock the bootloader based at least in part on a set of eligibility rules being satisfied by the user data or the device data;

sending, to the electronic device, a response to the request indicating that the user is eligible to unlock the bootloader;

receiving, from the electronic device, an acknowledgement that the user requested to unlock the bootloader;

sending a token to the electronic device, the token being usable to unlock the bootloader;

updating a status associated the electronic device to an updated status; and

based at least in part on the status, refraining from providing available software updates for the electronic device over the computer network.

11. The computer-implemented method of claim 10 , wherein the set of eligibility rules are satisfied if the user data or the device data indicates that the user has been in good standing with a service provider for at least a period of time.

12. The computer-implemented method of claim 10 , further comprising sending a notification message to the user regarding the updated status.

13. The computer-implemented method of claim 10 , wherein updating the status comprises updating a database with information indicating at least one of: (i) a warranty associated with the electronic device is void, (ii) the electronic device is ineligible for trade-in or resale at an authorized device dealer, or (iii) software updates should not be provided to the electronic device.

14. The computer-implemented method of claim 10 , wherein the identifier comprises at least one of a Mobile Station International Subscriber Directory Number (MSISDN) or an International Mobile Equipment Identity (IMEI).

15. A computer-implemented method comprising:

booting an electronic device;

determining that a trusted execution environment of the electronic device does not contain a token usable to unlock a bootloader of the electronic device;

determining that the electronic device has been tampered with; and

based at least in part on determining that:

the trusted execution environment does not contain the token; and

the electronic device has been tampered with:

sending, by the electronic device over a computer network, an instruction to update a status associated with the electronic device; and

refraining from performing an update procedure that checks for, and downloads, available software updates for the electronic device over the computer network,

wherein the determining that the electronic device has been tampered with is based on at least one of:

that the bootloader has been unlocked;

that an operating system of the electronic device has been modified; or

that a kernel of the electronic device has been modified.

16. The computer-implemented method of claim 15 , further comprising:

setting a flag within the trusted execution environment to indicate that the electronic device has been tampered with,

wherein sending the instruction to update the status is based at least in part on the flag being set to indicate that the electronic device has been tampered with.

17. The computer-implemented method of claim 16 , further comprising:

prior to setting the flag, performing, by an over-the-air (OTA) handler executing on the electronic device, the update procedure at least once to check for, and download, an available software update for the electronic device over the computer network; and

after setting the flag, determining, by the OTA handler, that the flag, indicating that the electronic device has been tampered with, has been set within the trusted execution environment prior to refraining from performing the update procedure, wherein refraining from performing the update procedure occurs after, and is based at least in part, on the flag being set.

18. The computer-implemented method of claim 15 , wherein determining that the electronic device has been tampered with comprises:

determining a current hash signature of a system image installed on the electronic device; and

determining that the current hash signature and a hash signature of the system image that is on record for the electronic device do not match.

19. The computer-implemented method of claim 18 , further comprising receiving the hash signature of the system image that is on the record over the computer network.

Assignments (3)
RELEASE OF SECURITY INTEREST Recorded Aug 23, 2022
From: DEUTSCHE BANK TRUST COMPANY AMERICAS
To: IBSV LLC; LAYER3 TV, LLC; PUSHSPRING, LLC; T-MOBILE CENTRAL LLC; T-MOBILE USA, INC.; ASSURANCE WIRELESS USA, L.P.; BOOST WORLDWIDE, LLC; CLEARWIRE COMMUNICATIONS LLC; CLEARWIRE IP HOLDINGS LLC; SPRINTCOM LLC; SPRINT COMMUNICATIONS COMPANY L.P.; SPRINT INTERNATIONAL INCORPORATED; SPRINT SPECTRUM LLC
Reel/Frame 062595/0001 →
SECURITY AGREEMENT Recorded Apr 2, 2020
From: T-MOBILE USA, INC.; ISBV LLC; T-MOBILE CENTRAL LLC; LAYER3 TV, INC.; PUSHSPRING, INC.; BOOST WORLDWIDE, LLC; CLEARWIRE COMMUNICATIONS LLC; CLEARWIRE IP HOLDINGS LLC; CLEARWIRE LEGACY LLC; SPRINT COMMUNICATIONS COMPANY L.P.; SPRINT INTERNATIONAL INCORPORATED; SPRINT SPECTRUM L.P.; ASSURANCE WIRELESS USA, L.P.
To: DEUTSCHE BANK TRUST COMPANY AMERICAS
Reel/Frame 053182/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 28, 2017
From: FINGER, JOSHUA PATRICK
To: T-MOBILE USA, INC.
Reel/Frame 041771/0410 →
Continuity (1)
Related Publication 20180285568A1 · Oct 4, 2018
Cited By (1)
US 12,556,543