[HTC 10 Guides, News, & Discussion] topjohnwu:
How to Create My Own System Backup​

If you cannot find a system dump of your current system, and fortunately you've not done any modifications to your system, we need your contribution!

Flash TWRP in download mode

Boot into TWRP, then choose "Mount system as read-only" when it asks you. This is important!!

Backup your device choosing "System Image" (not "System") and "Boot".

Copy the files to your PC, zip them into file and upload to a hosting site I can easily download.

I'll re-host your uploaded files to my personal AFH account, so you don't have to keep the files online forever if your storage is limited.

How to Get The OTA Link From HTC​

Some time ago, HTC changed the place where the OTA files are stored. It used to be stored in internal storage.

The OTA zip will now be downloaded to the following directory:

/data/data/com.htc.updater/files

This directory is protected and cannot be accessed without root permission.

So here are two methods you can use to get the OTA link directly from HTC servers.

Please share the links in this thread so people unable to get OTAs can download them and apply them manually.

Method 1: Use Network Monitoring Applications

Requirements: You are able get the update notification; you can download the OTA on your phone.

Won't work: Unfortunate devices stuck with the situation stated here.

By monitoring all network traffic on the device, it is obvious that you can get the OTA links, because your phone is also downloading from the link.

Here I use a paid app called "Charles Web Debugging Proxy" for example. The trial mode can have the job done with no issues.

Download the app to your computer from the official site. It supports all platforms.

Open the app and let it initialize the network settings.

Go back to the phone, connect to the same network as your computer. Open Wi-Fi settings, long press your current connection, select "Edit connection".

Scroll to the bottom, enable proxy. Enter your computer's local network IP for server (search the web for guides to find the IP), and insert "8888" in port, then press save.

On your computer, Charles should detect that your phone is trying to connect the computer. Accept it and you should see all network traffic from your phone.

Back to the phone, go to settings and check for system updates and download the update

You should see some addresses related to HTC/OTA inside Charles, test the links and try if you can download the OTA zip file.

Method 2: Use Logcat And Guess the Download Link

This will work on all devices, include those who cannot even receive OTA discussed here.

Remember to enable "USB Debugging" on your phone

Connect your phone to your computer.

Type following commands, but don't press enter yet

adb logcat > log.txt // This will store logs in a file called log.txt

Go to settings on your phone, press enter on computer to start logging your device right before you tap on the "Check for updates" on your phone (this is for reducing the length of the logs)

After it notifies there is an update available, or saying that your system is corrupt, press "Ctrl + C" to stop logging.

View the logs, you should find something similar to this:

11353 11803 D UpdaterAPK | UpdaterNetworkCheck: isIPTOn() IPTInfo is null
1600 1600 D htcCheckinService: onStartCommand()
1600 1600 D htcCheckinService: onStartCommand() the action name = com.htc.checkin.HTC_CHECKIN
1600 1600 W Settings: Setting device_provisioned has moved from android.provider.Settings.System to android.provider.Settings.Global, returning read-only value.
1600 1600 D htcCheckinService: Roaming is :false
1600 1600 I htcCheckinService: == Checkin triggered == A8.0(M)
11353 11536 V UpdaterAPK | DownloadProvider: starting query, database is not null; projection[0] is _id; projection[1] is entity; projection[2] is status; projection[3] is _data; projection[4] is lastmod; selection is hint=?; selectionArgs[0] is OTA_PERFUME_UHL_M60_SENSE80GP_hTC_Asia_TW_1.30.709.1_R-1.21.709.2_R2_release_477314i6fyk64xlvy886ba.zip; sort is null.
11353 11536 V UpdaterAPK | DownloadProvider: created cursor android.database.sqlite.SQLiteCursor@2edc675 on behalf of 1600
1600 11804 D PMS : acquireWL(6ee6ed9): PARTIAL_WAKE_LOCK htcCheckinService_300 0x1 1600 1000 null
2827 2827 D HtcTelephonyInternal: CMD_GET_ALL_DEVICE_ID_INFO
1600 11804 W htcCheckinService.CheckinProtocol: the build rom task id = 475995

For the example above, you can found out that the expected OTA update zip filename is

OTA_PERFUME_UHL_M60_SENSE80GP_hTC_Asia_TW_1.30.709.1_R-1.21.709.2_R2_release_477314i6fyk64xlvy886ba.zip

Finally, put the file name after the following web address:

http://fotadl-az.htc.com/secure/

With the example, the final result is

http://fotadl-az.htc.com/secure/OTA_PERFUME_UHL_M60_SENSE80GP_hTC_Asia_TW_1.30.709.1_R-1.21.709.2_R2_release_477314i6fyk64xlvy886ba.zip

(Note: I'm not sure if every OTA files follows the same rules, this is why I said this is "guessing" the download link)