Hiển thị các bài đăng có nhãn Guide. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn Guide. Hiển thị tất cả bài đăng

Thứ Hai, 12 tháng 10, 2015

How To: recalibrate battery life on HTC devices

This method is an official one, recommended by the HTC Technical Support Team. Finally we have some alternative to the old myth related with re-calibrating the battery by removing the batterystats.bin file from /data/system location, as it has no impact on the battery life.

So if you're having some problems with battery life, for example it rapidly or erratically discharges (the battery indicator says 18% left but then suddenly, 5 seconds later your device is OFF) this procedure should help, as it clears all battery stats, coordinates and normalizes charging. At least HTC Technical Support says that :)

The procedure is simple:
  1. Make sure that Fastboot option is disabled in Power settings.
  2. Turn off your phone.
  3. Plug phone into HTC charger and charge for two minutes or more.
  4. While charging, hold down volume-up + volume-down + power button and continue holding. Phone will turn on and off repeatedly every 15 seconds or so while continuing to hold all three buttons.
  5. Keep this going for 2 minutes, then release all buttons when phone is ON.
  6. Now, let phone charge fully normally (with phone either on or off) and battery level reporting, charging and battery life should be normalized.
So... have you tried it? Did it help? Let me know!

Do you have any questions or comments? Feel free to share! Also, if you like this article, please use media sharing buttons (Twitter, G+, Facebook) below this post!


For latest news follow Android Revolution HD on popular social platforms:

Chủ Nhật, 1 tháng 2, 2015

How To: Find a proper firmware variant for the HTC device


This guide is related to the previously published article - How To: Flash firmware package on the HTC device. The goal of this guide is to expose the problem of a matching firmware version for the particular HTC device. Please read it carefully and in case of any questions leave a proper comment in the comments section at the end of this article.

Every firmware.zip has 2 main attributes: modelid (MID) and cidnum (CID).

  • MID contains a codename of your device. For example the "0P6B1000" is the international version of the HTC One M8, while the "0P6B13000" is the T-Mobile U.S. version of the HTC One M8.
  • CID is the carrier software codename. For example the "HTC__J15" code represents the unbranded international version of the HTC One M8, while the "T-MOB010" code represents the T-Mobile U.S. software. Different CID numbers are usually used for mobile operators to include different regional settings, languages or to include some extra software (Wi-Fi Calling, Visual Voice Mail etc.).

Both MID and CID can be found in the android-info.txt inside each firmware.zip. This is how android-info.txt looks like (as an example I used firmware.zip from the international version of the HTC One M8):


Once you know the version of the firmware you have, you need to check if your device can be safely flashed with that particular firmware.zip. To check that:
  1. Download this mini-sdk package and extract it to c:\mini-sdk
  2. Connect your device to the PC
  3. Boot your device in fastboot mode (vol down + power ===> fastboot)
  4. Open a command prompt on the PC (cmd.exe), type and confirm each command with ENTER:
  5. cd /d c:\mini-sdk
  6. fastboot getvar all

This is an example output from the international version of the HTC One M8:


What you are looking for is the "modelid" and "cidnum".
  • If your device is S-ON then both modelid and cidnum must match.
  • If your device is S-OFF then modelid is critical to match, but cidnum can be changed either by changing CID of your device or by editing android-info.txt.
  • Edited firmware.zip can't be flashed on the S-ON device.
  • If your device is S-ON then you can't downgrade your current firmware version.
If both CID and MID numbers match you can safely flash the firmware.zip package - How To: Flash firmware package on the HTC device.

Do you have any questions or comments? Feel free to share! Also, if you like this article, please use media sharing buttons (Twitter, G+, Facebook) below this post!


For latest news follow Android Revolution HD on popular social platforms:

How To: Flash firmware package on the HTC device


Flashing so called "firmware" is as popular these days as flashing "custom ROM". For HTC old-boys it's nothing complicated, but some fresh Android users might find it difficult to understand the differences between "firmware" and a "custom ROM". As a result they might be afraid to upgrade OS on their device or even accidentally hard/soft brick it. Before continuing please read this article: How To: Find the proper firmware variant on the HTC device.


First of all let’s make some definitions clear. Both "Firmware" and "ROM" has their own dictionary definitions, but in this guide we need to use the same context of these words as you can find on popular articles and forums.

Your device is equipped with eMMC memory (embedded MultiMediaCard) - a place where every kind of data is stored. This eMMC memory in Android OS is called mmcblk0. But for a various reasons this memory space has to be divided into several smaller parts (f.g. not every kind of data can be stored on the same type of a filesystem). As a result, the eMMC memory is separated into different partitions (RAW, EXT3, EXT4) - smaller or bigger. To indicate the correct partition, each of them has it's own number - p1, p2, p3, p(...) etc. The whole partition name indicates also the eMMC number it's located in - mmcblk0p1, mmcblk0p2, mmcblk0p3, mmcblk0p(...) etc.

To see a lit of all the partitions on your device just type cat /proc/emmc in the adb.exe command shell.

Doing that you can also see the original name of each partition. The list you can see above is what we call "firmware", and what "custom ROM" is made of is usually just "boot" and "system" partitions. In other words - custom ROM represents "system", "boot" (sometimes "userdata" too) and everything else you can see on the list is a "firmware".


Important: Every signed and official firmware.zip can be flashed on a particular device only. Information about the device and its variant can be found inside android-info.txt in the firmware.zip package.

Question: Where firmware comes from? There are 2 ways: official and non-official. Usually firmware package comes together with the OTA (.zip) update. Inside the OTA package you can find firmware.zip archive (always signed). The non-official way is based on decrypting and extracting content of the RUU (.exe)

Question: Is everything from the list above always included in the official firmware.zip? No. HTC updates only these components (partitions) where there were changes in the code, usually related to the Android OS update or security changes in the bootloader (hboot). That means firmware.zip might have "adsp", "boot", "radio" inside and weigh 10 MB or it might contain a lot more and weight even 50 MB.


Signed (official) firmware packages can be flashed on both S-ON and S-OFF device. Once modified (unsigned) firmware.zip can't be flashed on the S-ON device. If your device is S-ON then you have to re-lock the bootloader. As long as your device is S-ON you also can't downgrade the firmware version.


Important: Make sure you have a correct MID (Model ID) and CID (Carrier ID). To check that use fastboot getvar all command. Everything you do, including following this guide, you do at your own risk!



Flashing Process
  1. Download this mini-sdk package and extract it to c:\mini-sdk
  2. Copy firmware (.zip) package to c:\mini-sdk and rename it to "firmware.zip"
  3. Connect your device to the PC
  4. Boot your device in fastboot mode (vol down + power ===> fastboot)
  5. Open a command prompt on the PC (cmd.exe), type and confirm each command with ENTER:
  6. cd /d c:\mini-sdk
  7. fastboot getvar all (open android-info.txt inside firmware.zip and check if MID and CID matches)
  8. <optionally> fastboot oem lock (if your device is not yet re-locked)
  9. fastboot oem rebootRUU
  10. fastboot flash zip firmware.zip and wait for the process to be completed. Sometimes flashing firmware once doesn't work, so flash firmware.zip again using the same command.
  11. fastboot reboot

In case of further questions I prepared a little Q&A part:
  • What is firmware.zip?
Firmware.zip is a part of Over The Air (OTA) update from the HTC. It contains important parts of the firmware like radio, bootloader, recovery, kernel etc.
  • Why it's important to flash firmware.zip and when should I flash it?
It is recommended to have the latest firmware on your device for the best modem performance and overall system stability. Sometimes it's necessary to have the latest bootloader too, because otherwise your device might not work well with the new system update.
  • Why it's important to flash it before flashing custom ROM?
Because firmware.zip contains boot.img (ramdisk and kernel) that will replace custom boot.img from any custom ROM you already have. That's why you have to flash firmware.zip first, because otherwise boot.img will be overwritten with the stock one. If you already flashed firmware.zip after flashing custom ROM, just flash this particular custom ROM again.
  • Does firmware.zip contain recovery?
Yes, it does contain recovery image, that's why after flashing firmware.zip you will have to flash custom recovery again to be able to flash custom ROM afterwards.
  • Can I flash any firmware.zip on my device?
Not if your device is S-ON. To be able to flash firmware.zip on the S-ON device, your MID number (example: PN0710000) and CID number (example: HTC__001) must match the firmware.zip version you are about to flash.
  • If my MID or CID doesn't match, can I brick my device if I try to flash firmware.zip anyway?
As long as your device is S-ON flashing firmware.zip with non matching MID or CID will result in error and nothing will be flashed, so there is no risk of brick.
  • Do I need to have locked, unlocked or relocked bootloader to be able to flash firmware.zip?
Your bootloader needs to be relocked.
  • If I can't flash newest firmware.zip because of wrong modeid (MID) or cidnum (CID) does it mean I can't use custom ROM based on the latest HTC update?
In most cases you should be able to use any custom ROM as long as hboot update is not mandatory.
  • What if there is no firmware.zip for my MID/CID?
Try to find latest OTA update for your original stock ROM and extract it. Firmware.zip should be inside.

Do you have any questions or comments? Feel free to share! Also, if you like this article, please use media sharing buttons (Twitter, G+, Facebook) below this post!


For latest news follow Android Revolution HD on popular social platforms:

Thứ Hai, 26 tháng 1, 2015

How to: Unlock external SD Card writing for all apps in Android 4.4 and 5.0

In Android 4.4 "Kitkat" (API 19) Google has changed the default permissions for the external SD Card (usually microSD). Since that Android OS version third-party apps have no more access to write on the SD Card. It's a bit problematic, because now you might not be able to use your favourite Files Manager to move or copy files on the external storage.

Some time ago I wrote a comprehensive guide about the differences between external storage (microSD Card), internal storage (virtual SD Card) as a part of the userdata partition and internal storage (virtual SD Card) as a separate eMMC partition - Virtual SD card on Android.

Now let's get back to our R/W (Read/Write) permission "problem" on the external storage. There are 3 things you need to know before going any further:
  1. This change was made by Google for a security reason. Keep that in mind!
  2. Root access is required to make proper changes on your device.
  3. This method might break OTA updates on your device if you're running stock operating system. I wrote "might" because this trick is based on modifying the /system/etc/permissions/platform.xml file, which isn't frequently updated by phone manufacturers, but most likely it will be updated when next major system update arrives (f.g. KitKat ---> Lollipop).

Procedure
Note: root required!
  1. Start up your device normally and wait for the system to be fully loaded.
  2. Open any files manager of your choice (Root Explorer, ES File Explorer, Total Commander) and make sure it runs with superuser permissions.
  3. Mount your system partition as R/W (Read/Write) to perform any changes.
  4. Navigate to the /system/etc/permissions/ folder and look for the platform.xml.
  5. Copy the platform.xml file into the same location as platform.xml.bak file.
  6. Open the platform.xml file with any text editor on your device and search for the following line:
  7. <permission name="android.permission.WRITE_EXTERNAL_STORAGE">

    It should look like on the picture below:

  8. Now you need to add a 3rd GID (Group ID): <group gid="media_rw" /> and you need to make it looks exactly like on the picture below:
  9. Using Root Explorer or any other Files Manager of your choice make sure that the platform.xml file has proper permissions: Owner R-W | Group R | Others R (0644 rw-r--r--). You can also use adb shell to set permissions with a chmod 0644 /system/etc/permissions/platform.xml command.
  10. Reboot your device and enjoy!
  11. In case of problems with OTA update just remove modified platform.xml and rename platform.xml.bak to its original name.
Do you have any questions or comments? Feel free to share! Also, if you like this article, please use media sharing buttons (Twitter, G+, Facebook) below this post!


For latest news follow Android Revolution HD on popular social platforms:

Chủ Nhật, 25 tháng 1, 2015

How to: Fix no access to the virtual SD card after Android Lollipop update


This solution is based on the experience with some HTC and Nexus devices, however it will work on any device running Android Lollipop or newer/older Android OS with SELinux (Security-Enhanced Linux) kernel security module.

What's the problem? Sometimes you might not be able to access the content of the internal userdata memory, also known as "virtual SD card" - located as /data/media/0 on the userdata partition. The "bad" workaround is to boot the device in a recovery mode and gain the access to all files from there, but this doesn't solve the problem at all.

Repair Process
Note: root required!
  1. Download this mini-sdk package and extract it to c:\mini-sdk
  2. Connect your device to the PC
  3. Start up the device normally, wait until system is fully loaded
  4. Open a command prompt on the PC (cmd.exe), type and confirm each command with ENTER:
  5. cd /d c:\mini-sdk
  6. adb shell
  7. su
  8. restorecon -FR /data/media/0
  9. exit
What's going to happen? Restorecon is a program used to restore file(s) default SELinux security contexts. It can be run at any time to correct errors or to add support for new policy. With a corrected SELinux security context for the /data/media/0 you will be able to access the content of the virtual SD card again.

Do you have any questions or comments? Feel free to share! Also, if you like this article, please use media sharing buttons (Twitter, G+, Facebook) below this post!


For latest news follow Android Revolution HD on popular social platforms:

Thứ Ba, 30 tháng 9, 2014

How to: Fix a random reboots on the HTC One M8


Some time ago I described a method to format the /data partition on the HTC One (M7) - How to: Fix a corrupted DATA partition on the HTC One. This method is suitable for more HTC devices (all with EXT4 support) and with the mkfs.ext4 tool you can format system and cache partitions as well. All you need to know is the proper /dev/block/mmcblk0pXY number of the partition you want to format.

However, formatting the partition always means that your data will be gone. On the HTC One M8 I noticed a problem, most likely caused by the wp_mod.ko module (module to disable system R/W protection). When the module is loaded too late and anything ever gets changed before the module is loaded the file-structure of the /data partition might (and probably will) get corrupted. As a result your device will reboot each time you'll try to make and change on the /system partition (even if mounted as RW). So removing, copying, moving, re-naming or editing any file on a system partition will result with the following message in the kernel log (last_kmsg.txt):


Formatting the /data partition is not the best idea for some and it's not needed in most cases.

Repair Process
  1. Download this mini-sdk package and extract it to c:\mini-sdk
  2. Download this fsck.ext4 binary and put it into c:\mini-sdk
  3. Connect your device to the PC
  4. Boot your device in recovery mode
  5. Open a command prompt on the PC (cmd.exe), type and confirm each command with ENTER:
  6. cd /d c:\mini-sdk
  7. adb push fsck.ext4 /tmp
  8. adb shell
  9. chmod 777 /tmp/fsck.ext4
  10. /tmp/fsck.ext4 -fn /dev/block/mmcblk0p47

This will fix your /data partition and you should see the following output (numbers in the last line will be different in each case):

e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/block/mmcblk0p47: 19050/712704 files (2.7% non-contiguous), 2320338/2850816 blocks


Your /data partition is now fixed and you should no longer experience random reboots problem on your device (assuming that the corrupted /data partition was the source of the problem). Keep in mind that the fsck.ext4 -fn command can be used to check other EXT4 partitions on any device that has EXT4 file-system structure. All you need to know is the partition name or block number.


Do you have any questions or comments? Feel free to share! Also, if you like this article, please use media sharing buttons (Twitter, G+, Facebook) below this post!


For latest news follow Android Revolution HD on popular social platforms: