[MOD][RECOVERY] Working TWRP recovery for Pixel on Android O

gubacsek

Senior Member
Jun 18, 2010
260
308
0
EDIT:
My mod is not needed anymore!
Everything is fine now, the TWRP guys made the decryption in their latest version (3.2.1 at the time of this post) possible, even with android 8.1.
Go ahead and download it from twrp.me. and don't forget to thank them, because it was a LOT of hard work! Google made big changes under the hood, and it took a lot of patience and endurance to adapt.
Big up to @Dees_Troy and the rest of the team!



Hey People! It seems, that after weeks of trying, hundreds of reboots, countless tests, I can present you a working version of TWRP 3.1. for the Pixel with Android O Developer Preview 4.
Edit: and it also works on the final Android O.


But let's not rush into things.. First of all a DISCLAIMER:
This is a TEST release, you are using it at your own risk. If your phone gets damaged in any way, nobody else but you can be held responsible. If you do not agree, stop reading and don't use this mod!


I would like to give credits to the people who helped me, and made all this possible:
First of all, @Chainfire, who did more then you would think :D Among other things, he was the one who showed me how to use tune2fs and reset quotas on /data, which makes it possible to mount it. Without this , I couldn't even start. So thank you very much!
Of course where would we be without @Dees_Troy and the other TWRP guys (i.e.: CaptainThrowback, nkk71, steadfasterX, _that...), who created and maintain TWRP, and demonstrated some serious patience on IRC , where I was asking them for help. For days. For weeks :D Thank you guys! You helped a lot!

What is this "mod"?
This is stock, normal TWRP 3.1 compiled from source, for the Google Pixel (sailfish) with some small tweaks to make it possible to mount /data, and decrypt it.

Can you use it on the Pixel XL (marlin)?
I don't know... I don't have a Pixel XL to test. If you want, you can buy me one and I'll be glad to compile, prepare, and test it for you.
EDIT: Chainfire "tested a few zip installs" and those were working for him on the Pixel XL, so maybe it is worth a try guys! - thanks for this CF! -

What happens behind the curtains?
I made some modifications to a script that prepared stuff to make the decryption of /data possible. Now it does a bit more... It copies libraries and binaries from /system and /vendor partitions to /system and /vendor folders, so they can be un-mounted (needed for backup). Basically, the recovery uses the real files/commands of the currently installed android os to prepare and mount /data partition (to make it ready for decrypting).
I updated the fstab file, so TWRP knows what to mount where.
I also changed a few things in the order how services are started during TWRP boot.
This is mostly everything. I was only changing external parts/files/tools of TWRP. The original code, the core is left intact.


How well was it tested?
I have only 1 phone, the pixel. I have only tested on this one phone, and it works for me. Of course I can't be certain it will for you, but you will see if you try it :D
I tested decrypting of /data, flashing a zip file, making a backup. Didn't dare to test restore yet :p


How can you try it?
This is not a flashable zip, this is a bootable image. So to use it, you have to put the phone into fastboot mode, and fastboot boot the image.
1. reboot the phone into fastboot mode
- if you have adb: adb reboot bootloader
- if you don't, then turn off the phone and press volume down while turning it on

2. open a terminal and issue the following command:
Code:
fastboot boot <path to your twrp image here>
(for example: fastboot boot /home/you/twrp-3-1-pixel-bootable-mod.img)


What about a flashable zip?
I had some quick test runs only for now, and it was working for me (flashing the zip, rebooting to recovery) until I flashed supersu, or rebooted the phone to android. I will need some more time to work on this, and see what is going wrong. So please be patient, I will try to do something, but can't guarantee it will work. Soon. Anytime.


Enough of the talk, you can download the image file from here:
https://www.androidfilehost.com/?fid=745425885120753892


Good luck and don't forget to report back!
I will try to do my best to help you, but I have a family and I inted to spend most of my time with them. Please be patient!
If you like my work, you can buy me a beer, it is damn hot here right now, and I would love to drink one ;)


Edit: Because I'm a noob and couldn't push my changes to the gerrits, I created a diff file with all my changes.
If you are checking it, please take into account, that I was in a hurry, and there was a point where I said "F*** it!" and I copied ALL the libs and bins from /system and /vendor :D
Anyway, here it is : https://www.androidfilehost.com/?fid=817550096634795329
 
Last edited:

Chainfire

Moderator Emeritus / Senior Recognized Developer -
Oct 2, 2007
11,439
87,667
263
www.chainfire.eu
I've only tested installing a few ZIPs but that seems to work fine (on Pixel XL).

I've looked at your modified script and I see the tune2fs commands and copying /system and /vendor files, but I don't see where you actually mount/decrypt /data. Or is this still handled by the TWRP binary?
 

gubacsek

Senior Member
Jun 18, 2010
260
308
0
I've only tested installing a few ZIPs but that seems to work fine (on Pixel XL).

I've looked at your modified script and I see the tune2fs commands and copying /system and /vendor files, but I don't see where you actually mount/decrypt /data. Or is this still handled by the TWRP binary?
Hi Chainfire!
I'm happy to hear, that it works on the Pixel XL :)
Thanks for the confirmation!

Yes, decrypting the data partition is still being handled by TWRP. I added some debug lines to the C code, you can see it in /tmp/recovery.log.
The main issue was mounting /data first, and I had to enable file based encryption instead of vold...
 

roirraW "edor" ehT

Recognized Contributor
May 8, 2010
8,906
4,982
253
Columbus, OH
Thanks, I'll have to make time in the very near future to prep my phone for a fresh install.

I haven't had a need to host Android files since I moved on from LG devices before my HTC 10 and Pixel, but I highly recommend Android File Host with optional FTP access on request.

If you prefer a regular cloud service, I recommend Mega. They give 50GB for free and they have an Android app as well as Windows. Possibly others (Mac?), not sure.
 
Last edited:

gubacsek

Senior Member
Jun 18, 2010
260
308
0
Thanks, I'll have to make time in the very near future to prep my phone for a fresh install.

I haven't had a need to host Android files since I moved on from LG devices before my HTC 10 and Pixel, but I highly recommend Android File Host with optional FTP access on request.

If you prefer a regular cloud service, I recommend Mega. They give 50GB for free and they have an Android app as well as Windows. Possibly others (Mac?), not sure.
Ahh :D I haven't thought of Android File Host! :D Although I downloaded gigbytes of roms, and mods from there already :D

Thanks for the tip!
 
  • Like
Reactions: roirraW "edor" ehT

caballon

Senior Member
Jul 23, 2010
561
80
58
Puerto Rico
is my path is cd/adb what command i write before twrp.img

Hey People! It seems, that after weeks of trying, hundreds of reboots, countless tests, I can present you a working version of TWRP 3.1. for the Pixel with Android O Developer Preview 4.


But let's not rush into things.. First of all a DISCLAIMER:
This is a TEST release, you are using it at your own risk. If your phone gets damaged in any way, nobody else but you can be held responsible. If you do not agree, stop reading and don't use this mod!


I would like to give credits to the people who helped me, and made all this possible:
First of all, @Chainfire, who did more then you would think :D Among other things, he was the one who showed me how to use tune2fs and reset quotas on /data, which makes it possible to mount it. Without this , I couldn't even start. So thank you very much!
Of course where would we be without @Dees_Troy and the other TWRP guys (i.e.: CaptainThrowback, nkk71, steadfasterX...), who created and maintain TWRP, and demonstrated some serious patience on IRC , where I was asking them for help. For days. For weeks :D Thank you guys! You helped a lot!

What is this "mod"?
This is stock, normal TWRP 3.1 compiled from source, for the Google Pixel (sailfish) with some small tweaks to make it possible to mount /data, and decrypt it.

Can you use it on the Pixel XL (marlin)?
I don't know... I don't have a Pixel XL to test. If you want, you can buy me one and I'll be glad to compile, prepare, and test it for you.
EDIT: Chainfire "tested a few zip installs" and those were working for him on the Pixel XL, so maybe it is worth a try guys! - thanks for this CF! -

What happens behind the curtains?
I made some modifications to a script that prepared stuff to make the decryption of /data possible. Now it does a bit more... It copies libraries and binaries from /system and /vendor partitions to /system and /vendor folders, so they can be un-mounted (needed for backup). Basically, the recovery uses the real files/commands of the currently installed android os to prepare and mount /data partition (to make it ready for decrypting).
I updated the fstab file, so TWRP knows what to mount where.
I also changed a few things in the order how services are started during TWRP boot.
This is mostly everything. I was only changing external parts/files/tools of TWRP. The original code, the core is left intact.


How well was it tested?
I have only 1 phone, the pixel. I have only tested on this one phone, and it works for me. Of course I can't be certain it will for you, but you will see if you try it :D
I tested decrypting of /data, flashing a zip file, making a backup. Didn't dare to test restore yet :p


How can you try it?
This is not a flashable zip, this is a bootable image. So to use it, you have to put the phone into fastboot mode, and fastboot boot the image.
1. reboot the phone into fastboot mode
- if you have adb: adb reboot bootloader
- if you don't, then turn off the phone and press volume down while turning it on

2. open a terminal and issue the following command:
Code:
fastboot boot <path to your twrp image here>
(for example: fastboot boot /home/you/twrp-3-1-pixel-bootable-mod.img)


What about a flashable zip?
I had some quick test runs only for now, and it was working for me (flashing the zip, rebooting to recovery) until I flashed supersu, or rebooted the phone to android. I will need some more time to work on this, and see what is going wrong. So please be patient, I will try to do something, but can't guarantee it will work. Soon. Anytime.


Enough of the talk, you can download the image file from here:
(If you know a good file hosting service, please let me know):
https://drive.google.com/open?id=0BycCshQzwZmBaUtialo5Y01Dc3c


Good luck and don't forget to report back!
I will try to do my best to help you, but I have a family and I inted to spend most of my time with them. Please be patient!
If you like my work, you can buy me a beer, it is damn hot here right now, and I would love to drink one ;)
Any help don't want reistall all again!!!!


is my twro .img is on cd/adb what command i write to flash this beauty?
 
  • Like
Reactions: MpandAUS

bbender716

Senior Member
Sep 11, 2014
790
230
63
Chicago
You are welcome! Try to imagine how happy I was when I first succeeded :D At that time I had to issue 5 commands after boot, and restart it twice to make it work :D
But I was already able to flash ARISE sound mod and I almost cried of joy :p
Hilariously, the ARISE sound mod is exactly why I had flashed back from DP4. I'm close with those guys and they know their stuff for sure. :D
 

gubacsek

Senior Member
Jun 18, 2010
260
308
0
Well, I was able to boot to TWRP, and successfully flashed WETA audio mod. However, upon rebooting, the V4A app wasn't there.
Same here
I just tried ARISE. This one installs, but failed to update the driver.
Interesting. I also tried side loading the v4a apk packaged in WETA, granted root permissions and it attempted to install drivers but failed.
Guys! Check the free space on /system! On Android O DP4 I had about 100MB free space, and I had to remove some **** before flashing anything. Try /system/app and Pinyin input, Chinese input apks....
The recovery is fine...
 
  • Like
Reactions: roirraW "edor" ehT

mngdew

Senior Member
Aug 17, 2010
606
96
0
Los Angeles
What? I don't know what I did differently this time, but the the app keeps asking to install the driver again and again everytime I open the app even though there was a successful driver installation notification.
 

kiran8631

Senior Member
Oct 3, 2015
227
49
48
You are welcome! Try to imagine how happy I was when I first succeeded :D At that time I had to issue 5 commands after boot, and restart it twice to make it work :D
But I was already able to flash ARISE sound mod and I almost cried of joy :p
Can u pls send link for arise which u have flash...