[APP][ROOT] Eject SD/USB in few clicks via remote - Fire TV Android Development

The ultra-convenient exFAT support (link1, link2) on FTV4k has me swapping USB drives left and right, and I could not find a good way to quickly unmount the USBs without powering down the device.
My solution (based on the suggestion by Pretoriano80) is to run a shell script. To run the script via the remote control I use Gscript. And because I could not get Gscript to display properly on FTV4k, I set up on a tablet, and then restored the key settings to FTV4k.
Instructions.
1) Sideload gscript-android.apk (v1.0, attached) to FTV4k
2) Unpack the pre-set database for Gscript (use the attached gscript_data.tar.gz)
Code:
adb devices
adb push gscript_data.tar.gz /data/local/tmp
adb shell
su
cd /
tar -xvzf /data/local/tmp/gscript_data.tar.gz
3) You are not done yet! You must fix the owner for the restored Gscript /data/data/databases/* files or Gscript just crashes and nothing happens. Here is an example on how to do that. Ideally, Titanium Backup would do this, but I could not run it on FTV4k.
Code:
mantis:/data/data/nl.rogro.GScript # ls -l
total 24
drwxrwx--x 2 u0_a220 u0_a220 4096 2021-12-28 00:08 cache
drwxrwx--x 2 u0_a220 u0_a220 4096 2021-12-28 00:08 code_cache
drwxrwx--x 2 u0_a196 u0_a196 4096 2021-12-28 00:10 databases
mantis:/data/data/nl.rogro.GScript # chown -R u0_a220:u0_a220 databases
mantis:/data/data/nl.rogro.GScript # ls -l
total 24
drwxrwx--x 2 u0_a220 u0_a220 4096 2021-12-28 00:08 cache
drwxrwx--x 2 u0_a220 u0_a220 4096 2021-12-28 00:08 code_cache
drwxrwx--x 2 u0_a220 u0_a220 4096 2021-12-28 00:10 databases
5) That's it. If you launch GScript on FTV4K via remote (and give it root access!), you will see the "Unmount_SD" script which unmounts the USB drive when clicked. It outputs quite a bit of text, and wait for 4 seconds before closing. You should see "unmounted" at the end.
4) All key files are attached. Including the umount_sd.sh script for Gscript.
This is a quick & dirty solution that works for my needs. Any and all suggestions on how to make this a lot more convenient are most welcome!

@bibikalka you should look into Tasker or Automate apps.
I don't know if they work on FireTV, but it worth a try.

Pretoriano80 said:
@bibikalka you should look into Tasker or Automate apps.
I don't know if they work on FireTV, but it worth a try.
Click to expand...
Click to collapse
Thanks for the suggestion! I find I have to try a few apps to get something that has an interface that works via the remote control. Even something as simple as a Reboot app took me a few tries to get right (Hot Reboot works).
A scripting app would be ideal - if the screen worked properly, allowing to load the scripts straight on the FTV4k.

bibikalka said:
Thanks for the suggestion! I find I have to try a few apps to get something that has an interface that works via the remote control. Even something as simple as a Reboot app took me a few tries to get right (Hot Reboot works).
A scripting app would be ideal - if the screen worked properly, allowing to load the scripts straight on the FTV4k.
Click to expand...
Click to collapse
Llama Automate should work like this : Flow - > Wait for button press - > On button pressed, run unmount command (shell + root permission) - > Return to "wait for button press"
Probably it's better to build the Flow on a smartphone and then import it on FireTV.

I found how to load scripts into Gscript if I use the controller button with 3 lines, and an external mouse. No need to restore the saved gscript database.

Related

[How-to] More space for Apps by moving dalvik-cache to /cache

THIS TWEAK IS FOR 2.3.3 ONLY
REMOVAL OF THIS TWEAK
Reflash the Rom OR
Flash a new Rom OR
Remove /cache/dalvik-cache, /system/bin/dalvik2cache and the last line in /etc/install-recovery.sh
And here is why this Tweak wont work on Versions higher than 2.3.3:
AtomicKoala said:
The new firmware changes the partition layout halving the /cache partition from 200MB to 100MB. Unless your Davlik cache is smaller then 80MB you are bound to have problems with this sadly.
Click to expand...
Click to collapse
Did you ever wonder about why your 380Mb /data partion is almost completely filled but you don't have much Apps installed?
Here's how you can get about 80~100Mb more space for Apps. (Depends on which apps are Installed)
First, I am not responsible for any Damage or Brick or whatever which is caused by wrong use of this Guide. Because using root is involved there is always a very minor chance of breaking something but normally nothing should go wrong by exactly following this guide.
Warning: Because the Dalvik-cache gets cleared your mail account settings will get cleared
As already mentioned:You will need root and Insecure ADB
For root follow this guide: http://forum.xda-developers.com/showthread.php?t=1043630
And here is the Insecure ADB apk: http://android.modaco.com/topic/339298-insecure-adb-for-the-arc-updated-now-a-simple-to-use-apk/
Now the procedure:
Make sure your Play is attached to the Computer and Insecure Adb is installed.
Run "adb remount"
Download the attachment and push the extracted dalvik2cache to /system/bin/ by running "adb push /path/to/dalvik2cache /system/bin/"
Run adb shell
"chmod 755 /system/bin/dalvik2cache"
Now you need to run this script on every boot. This is done by adding it to /etc/install-recovery.sh Just run "echo ’/system/bin/dalvik2cache’ >> /etc/install-recovery.sh
"chmod 755 /etc/install-recovery.sh"
"reboot"
The Play should now reboot (it's okay if it reboots twice) and recreate the dalvik-cache which should take about 5 minutes.
You can check if it worked by doing "adb shell" and in the shell "df".
Regards,
Laberkopf
For flashing via recovery:
FrAsErTaG said:
Please Test flashing this via recovery.
CONFIRMED WORKING http://www.mediafire.com/?3yfj8t8ld5yjez9
It has been designed to work with my System Img
If you are on something else, make sure you have insecure ADB installed before flashing this
Click to expand...
Click to collapse
Now we have a custom recovery, can't one of you clever fellows get apps2sd+ working on the play? Its not that i have no space for apps, but that we wouldnt have to worry about the install location of widgets, LWPs and apps people wish to auto sync
Sent from my R800i using Tapatalk
AndroHero said:
Now we have a custom recovery, can't one of you clever fellows get apps2sd+ working on the play? Its not that i have no space for apps, but that we would have to worry about the install location of widgets, LWPs and apps people wish to auto sync
Sent from my R800i using Tapatalk
Click to expand...
Click to collapse
I think it would be better to repartition the nand because there is a / partition with 200mb space which is completely unused.
Laberkopf said:
I think it would be better to repartition the nand because there is a / partition with 200mb space which is completely unused.
Click to expand...
Click to collapse
I just ran your DC2Cache script, works perfect, my internal storage went from 115mb to 275mb Changing the MTD partiton tables is also another idea, especially if there is a 200mb unused / partition, /cache could also be slimmed down to like 50-60mb and the rest added to /data
df after dc2cache:
sh-3.2# df
Filesystem Size Used Free Blksize
/dev 199M 76K 199M 4096
/mnt/asec 199M 0K 199M 4096
/mnt/obb 199M 0K 199M 4096
/system 312M 212M 100M 4096
/data 380M 213M 166M 4096
/cache 225M 98M 126M 4096
/data/idd 10M 1M 8M 4096
/data/dalvik-cache 225M 98M 126M 4096
damn you, / partition :/
I'd really like to do this, my play is rooted but I have no idea how to do these commands (bold parts)?
Download the attachment and push the extracted dalvik2cache to /system/bin/ by running "adb push /path/to/dalvik2cache /system/bin/"
[*]Run adb shell
[*]"chmod 755 /system/bin/dalvik2cache"
[*]Now you need to run this script on every boot. This is done by adding it to /etc/install-recovery.sh Just run "echo ’/system/bin/dalvik2cache’ >> /etc/install-recovery.sh
[*]"chmod 755 /etc/install-recovery.sh"
Click to expand...
Click to collapse
Any help?
You need to write those commands in a terminal (cmd in Windows). Before you try this, I suggest you to familiarise yourself with said terminal so that you 1) don't mess up things and 2) can try this kind of tricks in the future.
All my sync accounts were gone after moving, that is probably stored somewhere in dalvik?
And i'm having some difficulties getting whatsapp to work, it says my message history is damaged and can't restore it, but thats not that big of a deal
New market also constantly fails now, but deleting it and installing again will fix it.
Further i went from 80MB free to 205 :O
Thats a big improvement
FK1983 said:
I'd really like to do this, my play is rooted but I have no idea how to do these commands (bold parts)?
Any help?
Click to expand...
Click to collapse
You first need the Android SDK
Install it.
Go to the program files/android/android-sdk/platform-tools/ folder
extract your dalvik2cache zip there
shift + right mouse button and then open command prompt here.
make sure you have insecure adb installed on your phone !!!
type in the terminal all followed by an enter:
adb remount
adb push dalvik2cache /system/bin/
adb shell
# chmod 755 /system/bin/dalvik2cache
# echo ’/system/bin/dalvik2cache’ >> /etc/install-recovery.sh
# chmod 755 /etc/install-recovery.sh
# reboot
Click to expand...
Click to collapse
The # is a sign that you are in the adb shell, you don't have to type it yourself.
Hope this is clear enough
Please Test flashing this via recovery.
CONFIRMED WORKING http://www.mediafire.com/?3yfj8t8ld5yjez9
It has been designed to work with my System Img
If you are on something else, make sure you have insecure ADB installed before flashing this
From 70 MB free to 245MB!!
****ING NICE !!!
usb debugging was off, thanks
ok i downloaded the abd insecure and every time i click it it just ask if i want to install i. I select yes the phone reboots?
what am i missing?
when i run adb remount from the cmd line inside the sdk folder i get device not found error.
Thanks any help
Click to expand...
Click to collapse
hackit said:
ok i downloaded the abd insecure and every time i click it it just ask if i want to install i. I select yes the phone reboots?
what am i missing?
when i run adb remount from the cmd line inside the sdk folder i get device not found error.
Thanks any help
Click to expand...
Click to collapse
Is usb debugging on the device enabled? You can enable it under Settings - Applications -Developement
hell yea just did this i once had 161 mb used now its 82 mb and 298 mb free!!! wow wow!!!
also now that it is moved is it possible to just delete the dalvik-cache from the /data folder???
thatsupnow said:
hell yea just did this i once had 161 mb used now its 82 mb and 298 mb free!!! wow wow!!!
also now that it is moved is it possible to just delete the dalvik-cache from the /data folder???
Click to expand...
Click to collapse
Nope dont do that! The dalvik-cache folder in /data is just a link to the real dalvik-cache folder on /cache and so it doesn't take up space.
Ah okay sounds good I'll just leave it alone then
Sent from my R800i using XDA App
Went from 40MB Free to 192MB!!
Very, very grateful.
Is there any negatives with doing this? I heard something about a problem with the market after? if so what problem and is it fixed?
Also, can it be reversed?
Thanks!
FK1983 said:
Is there any negatives with doing this? I heard something about a problem with the market after? if so what problem and is it fixed?
Also, can it be reversed?
Thanks!
Click to expand...
Click to collapse
The cache is used to download apps from the market, so say your DC gets so big you only have 10mb left free in /cache, you wouldnt be able to download a 11mb+ apk from the market
Sent from my R800i using Tapatalk
Given that we have CWM which allows us to wipe the dalvik-cache when necessary, that should not be a big concern.
im following this to the letter,
adb remount
adb push dalvik2cache /system/bin/
adb shell
# chmod 755 /system/bin/dalvik2cache
# echo ’/system/bin/dalvik2cache’ >> /etc/install-recovery.sh
I get cannot create /ect/install-recovery.sh: directory nonexistent
any advice ?

Minimal system with root

Hi all,
I'm after a system.img that's going to allow me to run adb shell sessions as root. That's all I need. I don't need any of the normal phone fuctions or devices. I'd imagine disabling these would overcome any incompatibility issues... but I don't know.
Naturally, it'd be easier if such an image already existed, but I should be able to follow instructions on how to reconfigure a normal system and pack it to yaffs2 image.
How about the ramdisk of most custom recoveries- or is that too spare? It will give you a kernel, adb, and busybox if you are lucky.
sent from my android tablet
gee one said:
How about the ramdisk of most custom recoveries- or is that too spare? It will give you a kernel, adb, and busybox if you are lucky.
Click to expand...
Click to collapse
As long as I can do an adb shell as root then it's good enough.
I haven't found any compatible custom recovery images that I can flash. Everything I read seems to endup point to clockworkmod and I can't find flashable images for that. It seems to be flashed through rom manager only. I'm probably wrong though.
Depending on your device, there are several ways to flash. These may or may not apply to you:
1) some recovery installer app that you can download, similar to rom manager, or even rom manager itself!
2) a zip file that you make or modify yourself
3) flash through the staging partition, which may or may not be available on your device
4) copy directly into a recovery partition
5) who knows?
What device are you using and what rom and recovery are you using?
Sorry, I should have given you some info about my situation.
My phone is a chinese mt6516 iClone: W008+. It's currently without a working system partition so I flash images via pc using Mediatek flash tool.
For a recovery, I'd need an image file to flash directly. For a system partition I could flash and image file or I can pack a dir structure into a yaffs2 image file for flashing.
That seems above my paygrade... when you say image file, do you mean a packed boot.img that starts with ANDROID!
sent from my cyanogen(mod) vision
gee one said:
That seems above my paygrade... when you say image file, do you mean a packed boot.img that starts with ANDROID!
Click to expand...
Click to collapse
Well, a boot.img would go on the boot partition for booting into android normally. A recovery.img would also start with ANDROID but would go on the ... er... recovery partition. A system image would be different starting something like:
Code:
03 00 00 00 01 00 00 00 ff ff
Ok, it looks like the system.img is yaffs.
I was asking about the boot partition because most recovery images are just boot.img's with the recovery binary in the ramdisk. I made a boot.img once from a recovery partition and flashed it, so I had two recoveries on the same device, and no system! I thought this might be something of what you are looking for. You won't have or need a system since everything will load from the boot.img.
sent from my cyanogen(mod) vision
Yes, anything that gives me a root shell via adb would be good. It's just a question of finding something appropriate to try...
Are there any roms or system images available for your device now? Or can you pull the boot.img from your current device.
sent from my cyanogen(mod) vision
I can't find anything 3rd party for it. But I do have a boot.img that I extracted.
Send me a link and I'll poke around. Do you have a way to flash the boot.img?
sent from my cyanogen(mod) vision
Nice one.
This was ripped with dump_image:
boot.zip
OK, I extracted the ram disk- it was in an odd format. They sure talk funny.
ramdisk_2bb4ad9697.tar
So all the inits are for a fully working system, which you don't have. I guess the next step would be to strip out the inits to just a few basic mount points and then have it start adb. After that, add busybox and whatever goodies, repack it, and then flash away.
I really don't know my way around the init files, so it's mostly hack and slash. If you have any insight on how to strip them down, let's hear it. I'll try to read up on how linux boots. Also, knowing the partition mounts would be helpful, although I suppose you could figure that out with adb, if this actually works.
Cheers for that. Looks quite intriguing... I'm going to need a good deal more reading to make use of it though.
OK, here is a first stab- I modified the default.prop and added busybox and su. I did not touch any of the init's.
Here is the default.prop- insecure and adb enabled. I didn't change the inits, but it does look like they will start adb. They will probably fail to start everything else that it expects to find in system and frameworks, so your syslog will probably be littered with error messages, if there is even a syslog.
Code:
#
# ADDITIONAL_DEFAULT_PROPERTIES
#
ro.secure=0
ro.allow.mock.location=0
ro.debuggable=1
persist.service.adb.enable=1
Here is the ramdisk. I added busybox and su. I'm not sure if these will be helpful, but I figured it couldn't hurt.
edit: I just realized that /xbin is not in the path. "export PATH $PATH:/xbin" should fix it?? "/xbin/busybox --install /system/xbin" should install busybox to /system/xbin.
Code:
total 212
-rw-r--r-- 1 root root 20175 2012-03-08 18:26 advanced_meta_init.rc
drwxrwx--x 2 root root 4096 2012-03-08 18:26 data
-rw-r--r-- 1 root root 118 2012-03-08 20:11 default.prop
drwxr-xr-x 2 root root 4096 2012-03-08 18:26 dev
-rwxr-x--- 1 root root 107436 2012-03-08 18:26 init
-rwxr-x--- 1 root root 5828 2012-03-08 18:26 init.factory.rc
-rwxr-x--- 1 root root 1677 2012-03-08 18:26 init.goldfish.rc
-rwxr-x--- 1 root root 2263 2012-03-08 18:26 init.mt6516.rc
-rwxr-x--- 1 root root 20514 2012-03-08 18:26 init.rc
-rw-r--r-- 1 root root 5529 2012-03-08 18:26 meta_init.rc
drwxr-xr-x 2 root root 4096 2012-03-08 18:26 proc
lrwxrwxrwx 1 root root 11 2012-03-08 18:34 res -> /system/res
drwxr-x--- 2 root root 4096 2012-03-08 20:16 sbin
drwxr-xr-x 2 root root 4096 2012-03-08 18:26 sys
drwxr-xr-x 2 root root 4096 2012-03-08 18:26 system
drwxr-xr-x 2 root root 4096 2012-03-08 18:06 temp
drwxr-xr-x 2 root root 4096 2012-03-08 20:16 xbin
./data:
total 0
./dev:
total 0
./proc:
total 0
./sbin:
total 368
-rwxr-x--- 1 root root 138372 2012-03-08 18:26 adbd
-rwxr-x--- 1 root root 107436 2012-03-08 18:26 advanced_meta_init
-rwxr-x--- 1 root root 103116 2012-03-08 18:26 meta_init
-rwxr-x--- 1 root root 18012 2012-03-08 18:26 meta_tst
./sys:
total 0
./system:
total 0
./temp:
total 0
./xbin:
total 828
-rwxrwxr-x 1 root root 821340 2012-03-08 20:14 busybox
-rwsr-sr-x 1 root root 22364 2012-03-08 20:15 su
I did not change the kernel at all. The kernel and ramdisk have a 512 byte header file- it seems to have a file marker, size of package, and type of partition encoded into it. I'm not even sure this is android? I am certainly NOT an expert at this. For the record, I know nothing about the device that you have. I didn't even google it to see if was indeed an android phone.
All that being said, I will be surprised if this works and I would not be surprised if you end up with a brick. If it were my device, I would only flash this if I had a 100% bulletproof way to flash the stock boot.img externally without relying on the software on the phone. There is no system or frameworks, so it will most likely look like a stuck boot, but adb should be enabled. There is no boot animation or friendly little green android to greet you. I don't know if more stuff is needed in bin or sbin?
Now the disclaimers-
Code:
[SIZE="5"][COLOR="Red"][B]ALL WARRANTIES REGARDING
MERCHANTABILITY AND FITNESS OF PURPOSE,
EXPRESSED OR IMPLIED, ARE DISCLAIMED.
Flashing this boot image can cause
loss of data, loss of device, inability to use device,
spontaneous bricking, and other grave consequences.
Use at your own peril.
If anything bad happens, it's not my fault.[/COLOR][/B]
[/SIZE]
.
Good Luck! If in doubt, don't flash it!
https://rapidshare.com/files/1856533633/boot_adb_4026ab44b0.img
Well, I can't say I understand what you've done here but...
I've now got a working phone with root adb. Brilliant!!! Thanks.
I had to flash another system image (meant for a different phone) so that I could get a shell working otherwise I'd get a 'can't find /system/bin/sh' error. But having done that, it works a treat. The system still needs a bit of work to get my phone as it should be but that's another story.
I'm really interested in how you've managed to do this. How do you unpack/repack the boot.img? I'd love to mess about with this and see how long it takes to blow my phone up. I tried to follow one guide on the net but it just wasn't happening.
Ok, I found the ROOTFS section and pulled it out. So I can see how it all fits together.
According to 7zip, this is a 'Cpio' archive inside a 'Gzip' archive. What's 'Cpio'?
That's the funny part- there is a 512 byte header that has a few id characters, the file size and then "ROOTFS". The kernel image is similar. All the android parts that I've pulled apart didn't have the 512 byte header.
If you strip that out, then you will have a gzipped cpio archive. You can extract it with "gunzip -c <the ramdisk> | cpio -i"
To recompress it, "find . | cpio -o -H newc | gzip >> ../your-new-ramdisk"
You'll have to reattach the 512 byte header and adjust the file size.
sent from my cyanogen(mod) vision
Well I got round to having a little play with this. Thanks for the info Gee, it's been filed safely.
I looked at the recovery image and the init.rc doesn't do alot; Ideal starting place. Nothing is mounted by default so I put a couple of commands to mount /sdcard and /system normally just to test it. I also had to enable adb in the default.prop file as you did before. This was pretty straight forward and worked. I got into adb shell with root, no problem.
Now I thought it would be ideal if I could mount the sdcard as /system and put '/bin/sh' on the sdcard. Androids sh isn't a link like it is on Linux so I thought this should work. It didn't! On issuing the 'adb shell' command, I got:
Code:
link_image[2030]: failed to link /system/bin/sh
CANNOT LINK EXECUTABLE
So I thought I'd try the cache partition. I copied /bin/* to /cache, put the mount commands for /sdcard and cache as /system and this time... I got the same error. I'm surprised the cache partition didn't work. I was able to 'adb pull' the /system/bin/ files from it so I don't know why adb couldn't just execute one of them???
I don't know what to try next as I don't want to be forced to have the system partition mounted just for the sake of adb finding sh. I wouldn't mind if I could just umount it once I'm in the shell... but that would be to easy, wouldn't it.

Problems with cron

Hi, I have made cron work on my 7" china tablet, it runs almost like I'd like it to..
I've made a passwd file in /etc with the following contents:
Code:
root:x:0:0::/data/cron:/system/bin/bash
I've made a symlink from /system/bin to /bin
And I've made a crontab file with the following line in it:
Code:
* * * * * /system/xbin/cat /sys/class/power_supply/battery/capacity > /dev/ttyACM0
Now the problem.. Cron runs fine, running the small bash code every minute, but..
ttyACM0 is a serial line to a microController - but the problem is that nothing is received on the controller, despite the cron running the script.
now if I LS /dev/tty* I get the following:
Code:
[email protected]:/ # ls /dev/ttyA* -l
ls /dev/ttyA* -l
crw------- root root 166, 0 2013-09-07 13:11 ttyACM0
-rw-rw-rw- root root 3 2013-09-07 13:14 ttyACM0
[email protected]:/ #
The cron creates an identical file in /dev and write it's data to this file, and not the *real* ttyACM0 serial..
I start the crond service in init.rc like this:
Code:
service crond /system/xbin/crond -c /data/cron
user root
disabled
oneshot
on property:dev.bootcomplete=1
.
.
start crond
If I change the cronscript to output to a flat file somewhere else (like /data/test_output), I can see the file with LS, but I'm not able to delete it nor cat it.
What's going on?
I need this to work in order to trigger a charger once the battery goes too low, and turn it off again once it has reached a given threshold. Not being able to send a simple command via serial really offsides this project.
Please help
Could it be that the cron job starts before the /dev/ttyACM0 is created?
hmm, I'll try and delay it a bit..
Made a simple check for if the device exists or not. if [ -c /dev/ttyACM0 ]This solves the problem.

How to create a Swap partition of any size for any Android ROM

No need to follow this instructions, but only if you want to learn!
Flash files are available here that will automatically do all this in TWRP Recovery.
https://forum.xda-developers.com/hp-touchpad/general/hp-touchpad-optimize-android-swap-t3901773
Before making this modifications, do this first:​
https://forum.xda-developers.com/hp-touchpad/general/how-to-backup-restore-using-twrp-copy-t3892047​
How to create a Swap partition of any size for any Android ROM
This is only need it to be create one time only and will work with any OS install in the Tablet( Any Android ROM, Any Linux OS, LunesOS, WebOS, Sailfish and many more ).
The following steps will partition the storage to create a swap partition that can be use for all Android ROM ever created for the HP Touchpad.
Also take a look at this link:
https://forum.xda-developers.com/hp-touchpad/general/powerful-feature-hp-touchpad-lvm-t3889068
Code:
[B]For the Experience User this are the simple steps, to get it out of the way and not need to read all the details. [/B]
If you know what you are doing, you can use it inside Android, TWRP using adb shell with root access is up to you.
Have unallocated space after creating all partitions.
(make a partition of whatever free space is available ) or you can specified the size you want, you know how to do it or
read above link)
./lvm.static lvcreate -l 100%FREE -C y -M y --major 254 --minor 0 -n /dev/store/swap
mkswap /dev/store/swap
Add to the fstab in Ramdisk:
/dev/store/swap swap swap defaults swapprio=1, 0 0
This steps are for the learning user, hopefully I am explaining it clearly and correctly!
My comments and Suggestion
Code:
I am making the steps as simple as I can. You can achieve this faster if you have done this before.
Basically is creating all the partitions but have 824MB unallocated free space for swap.
You can assign any size you want.
I recommend the following:
Media at least 1GB, this will be the USB Storage. This partition is the best to shrink if you ever need more space on other partitions.
cm-cache 200MB. If you want to use more you can, but I have not found any issues using 200MB.
cm-system 2048MB. If you ever want to install the FULL google open apps, it will take over 1.5GB. This will ensure, you can install anything and not have an issue.
cm-data (as much as you need to only have unallocated free space for swap )
A size of 500MB will be enough ( WebOS has a swap file size of 400 MB )
The maximum I will recommend is 1GB, but you can make it any size you want. Is all up to what you use your tablet for.
Starting all fresh, from zero. All Data will be erase. Back up your data before proceeding.
THE BEGINNING of the process.
1. Load the ToolBox v42 2015-01-08
2. Complete Data Reset ( If you want to clear all partitions )
3. Resize Android Volumes (Using the ToolBox)
3.A Select Media ( select -1024 ) press home button 28 times
New size 1112
unallocated 28672
Select BACK (on top)
3.B Select cm-cache (select +8 ) press home button 25 times
New size 200
unallocated 28472
Select BACK (on top)
3.C Select cm-system (select +1024) press home button 2 times
New size 2048
unallocated 26424
Select BACK (on top)
3.D Select cm-data (select +1024) press home button 25 times
New size 25600
unallocated 824
Select Back (on top)
4. Select Apply Changes
5. Select Reboot
<<< moboot 0.3.8 >>>
6. Select boot webOS Recovery (connect the TP to computer)
7. Unzip FLINTMAN-TWRP-touch-data_media-SELINUX-f2fs-3.1.0-0-5-09-17.zip
8. Open a terminal in the directory of the unzip file.
9. Copy and paste the following in terminal.
Code:
novacom boot mem:// <uImage.TWRP
At this point The ToolBox already created all the partitions or volumes, but the unallocated space left is the one that we need to manually create
and format as a native Linux partition. This is why we need to use TWRP Recovery and to enter two lines of code, create the partition and format it.!
<<< TWRP >>>
10. Select Mount --->> check BOOT --->> select back (triangle lower left)
11. Entering adb shell :In the open Terminal paste the following
adb shell
Code:
cd /boot/usr/sbin
./lvm.static vgchange -ay
Result: /boot/usr/sbin # ./lvm.static vgchange -ay
4 logical volume(s) in volume group "store" now active
Code:
./lvm.static lvcreate -l 100%FREE -C y -M y --major 254 --minor 0 -n /dev/store/swap
Result: /boot/usr/sbin # ./lvm.static lvcreate -l 100%FREE -C y -M y --major 254 --minor
0 -n /dev/store/swap
ffff0000-ffff1000 r-xp 00000000 00:00 0 [vectors]: mlock failed: Cannot allocate memory
ffff0000-ffff1000 r-xp 00000000 00:00 0 [vectors]: munlock failed: Cannot allocate memory
Logical volume "swap" created
Code:
mkswap /dev/store/swap
Result: /boot/usr/sbin # mkswap /dev/store/swap
Setting up swapspace version 1, size = 864022528 bytes
Code:
./lvm.static vgchange -ay
Result: /boot/usr/sbin # ./lvm.static vgchange -ay
5 logical volume(s) in volume group "store" now active
<<<-- All Done Swap partition created -->>>
12. Copy FLINTMAN-TWRP-touch-data_media-SELINUX-f2fs-3.1.0-0-5-09-17.zip file in the Micro SDCard showing on your Computer.
13. Select Install --->> Up one level --->> external_sd ( the TWRP.zip file should be there ) Install it, Reboot System.
14. TWRP is on the moboot menu. Now you can install any ROM.
But Files in the Ramdisk needs to be modified for Android to mount the swap partition at boot.
I have done all this already, you can use the boot uImages that I posted below for Dirty Unicorns and Evervolv. If you feel like doing it yourself then keep having fun!
15. To modify the Ramdisk, click on this link:
https://forum.xda-developers.com/hp-touchpad/development/make-root-permanet-read-write-to-t3846567
16. The following needs to be added to fstab.tenderloing
/dev/store/swap swap swap defaults swapprio=1, 0 0
The zRAM needs to be disable, by placing # in front of the mount point.
# /dev/block/zram0
The fun has just started and now Android will see the swap partition and start swapping, but changes need to be made on more files in the ramdisk to optimize Android to work on a Tablet with swapping and not be use as a smartphone with zRAM and limited resources like it has been use from all this years.
The system is not optimized and it will not work properly with current settings. I have created modified boot images for the Evervol 7.1.2 and Dirty Unicorns V12.5.3 with all the best optimization possible to use the Touchpad as a tablet and not a smartphone. The links are below, just copy the files into your boot directory.
Before you boot using the new image, disable any optimization apps or changes that you have done because it will override any settings done after boot is completed and make the system very slow.
Dirty Unicorns:
https://forum.xda-developers.com/hp...ty-unicorns-v12-5-3-20181116-0140-rc-t3894042
Everlvolv:
https://forum.xda-developers.com/hp...rvol-7-1-2-skz-kernel-swap-partition-t3892091
Attention: This is extremely easy to deploy by all developers creating any ROM or Kernel for the TP. The regular user does not need to do none of this.
The only thing the user needs to do is left some space available when creating the Android partitions using the ToolBox, which everyone needs to do.
Is up to the user to select how much space they want for their Swap partition.
Then the developer that provides the ROM or Kernel can create an script to run after installation that will create the partition from whatever free space is available and format it. No input is need it by the user to do so. And if the partition is already created, nothing will happen, LVM is smart enough to not recreated.
./lvm.static lvcreate -l 100%FREE -C y -M y --major 254 --minor 0 -n /dev/store/swap
mkswap /dev/store/swap
HP_TOUCHPAD said:
Before making this modifications, do this first:​https://forum.xda-developers.com/hp-touchpad/general/how-to-backup-restore-using-twrp-copy-t3892047​
How to create a Swap partition of any size for any Android ROM
The following steps will partition the storage to create a swap partition that can be use for all Android ROM ever created for the HP Touchpad.
Also take a look at this link:
https://forum.xda-developers.com/hp-touchpad/general/powerful-feature-hp-touchpad-lvm-t3889068
For the Expert is as simple as:
Have unallocated space.
(make a partition of whatever free space is avalaible ) or it can be specified.
Code:
./lvm.static lvcreate -l 100%FREE -C y -M y --major 254 --minor 0 -n /dev/store/swap
Format
Code:
mkswap /dev/store/swap
Where? adb shell? That's where I'm doing it, and I get "unable to create new logical volume with no extents"
Add to the fstab in Ramdisk:
/dev/store/swap swap swap defaults swapprio=1, 0 0
Optimize Swapping settings.
I am making the steps as simple as I can. You can achieve this faster if you have done this before.
Basically is creating all the partitions but have 824MB unallocated free space for swap.
You can assign any size you want.
I recommend the following:
Media at least 1GB, this will be the USB Storage. This partition is the best to shrink if you ever need more space on other partitions.
cm-cache 200MB. If you want to use more you can, but I have not found any issues using 200MB.
cm-system 2048MB. If you ever want to install the FULL google open apps, it will take over 1.5GB. This will ensure, you can install anything and not have an issue.
cm-data (as much as you need to only have unallocated free space for swap )
A size of 500MB will be enough ( WebOS has a swap file size of 400 MB )
The maximum I will recommend is 1GB, but you can make it any size you want. Is all up to what you use your tablet for.
Starting all fresh, from zero. All Data will be erase. Back up your data before proceeding.
Is this where we're supposed to start. Is all the rest above this just commentary?
1. Load the ToolBox v42 2015-01-08
2. Complete Data Reset ( If you want to clear all partitions )
3. Resize Android Volumes (Using the ToolBox)
3.A Select Media ( select -1024 ) press home button 28 times
New size 1112
unallocated 28672
Select BACK (on top)
3.B Select cm-cache (select +8 ) press home button 25 times
New size 200
unallocated 28472
Select BACK (on top)
3.C Select cm-system (select +1024) press home button 2 times
New size 2048
unallocated 26424
Select BACK (on top)
3.D Select cm-data (select +1024) press home button 25 times
New size 25600
unallocated 824
Select Back (on top)
4. Select Apply Changes
5. Select Reboot
<<< moboot 0.3.8 >>>
6. Select boot webOS Recovery (connect the TP to computer)
7. Unzip FLINTMAN-TWRP-touch-data_media-SELINUX-f2fs-3.1.0-0-5-09-17.zip
8. Open a terminal in the directory of the unzip file.
9. Copy and paste the following in terminal.
Code:
novacom boot mem:// <uImage.TWRP
<<< TWRP >>>
10. Select Mount --->> check BOOT --->> select back (triangle lower left)
11. Entering adb shell :In the open Terminal paste the following
Is this actually the place where the lvm volumes are created after we go through TPTB and reinstall TWRP?
adb shell
Code:
cd /boot/usr/sbin
./lvm.static vgchange -ay
Result: /boot/usr/sbin # ./lvm.static vgchange -ay
4 logical volume(s) in volume group "store" now active
Code:
./lvm.static lvcreate -l 100%FREE -C y -M y --major 254 --minor 0 -n /dev/store/swap
Result: /boot/usr/sbin # ./lvm.static lvcreate -l 100%FREE -C y -M y --major 254 --minor
0 -n /dev/store/swap
ffff0000-ffff1000 r-xp 00000000 00:00 0 [vectors]: mlock failed: Cannot allocate memory
ffff0000-ffff1000 r-xp 00000000 00:00 0 [vectors]: munlock failed: Cannot allocate memory
Logical volume "swap" created
Code:
mkswap /dev/store/swap
Result: /boot/usr/sbin # mkswap /dev/store/swap
Setting up swapspace version 1, size = 864022528 bytes
Code:
./lvm.static vgchange -ay
Result: /boot/usr/sbin # ./lvm.static vgchange -ay
5 logical volume(s) in volume group "store" now active
<<<-- All Done Swap partition created -->>>
12. Copy FLINTMAN-TWRP-touch-data_media-SELINUX-f2fs-3.1.0-0-5-09-17.zip file in the Micro SDCard showing on your Computer.
13. Select Install --->> Up one level --->> external_sd ( the TWRP.zip file should be there ) Install it, Reboot System.
14. TWRP is on the moboot menu. Now you can install any ROM.
But Files in the Ramdisk needs to be modified for Android to mount the swap partition at boot.
15. To modify the Ramdisk, click on this link:
https://forum.xda-developers.com/hp-touchpad/development/make-root-permanet-read-write-to-t3846567
16. The following needs to be added to fstab.tenderloing
/dev/store/swap swap swap defaults swapprio=1, 0 0
The zRAM needs to be disable, by placing # in front of the mount point.
# /dev/block/zram0
The fun has just started and now Android will see the swap partition and start swapping, but changes need to be made on more files in the ramdisk to optimize Android to work on a Tablet with swapping and not be use as a smartphone with zRAM and limited resources like it has been use from all this years.
The system is not optimized and it will not work properly with current settings. I have created modified boot images for the Evervol 7.1.2 and Dirty Unicorns V12.5.3 with all the best optimization possible to use the Touchap as a tablet and not a smartphone. The links are below, just copy the files into your boot directory.
Before you boot using the new image, disable any optimization apps or changes that you have done because it will override any settings done after boot is completed and make the system very slow.
<<--link will be here --->>
Click to expand...
Click to collapse
This may be clear to you, but it isn't to me. See my comments in red above. How about cleaning this up? Anything you want to add that is extraneous to just getting this done should be in a second post.
I kinda get the feeling you are hoping the ROM builders will add this to their Roms but i don't think we have too many programmers left for the touchpad.
I can't even get this far
8. Open a terminal in the directory of the unzip file. ( on windows? with what?)
9. Copy and paste the following in terminal.
Sorry ...i'm trying though...Thanks for your effort
Touchie Pad said:
I kinda get the feeling you are hoping the ROM builders will add this to their Roms but i don't think we have too many programmers left for the touchpad.
I can't even get this far
8. Open a terminal in the directory of the unzip file. ( on windows? with what?)
9. Copy and paste the following in terminal.
Sorry ...i'm trying though...Thanks for your effort
Click to expand...
Click to collapse
The tablet originally came with a swap partition on webOS, is nothing new.
Do not worry about doing this, I already created a zip file that can be install using TWRP Recovery!
Everything will be done in less than two minutes and everything will be created!
Working on getting the files on here...
my touchpads are in twrp and attached to my computer!
Touchie Pad said:
my touchpads are in twrp and attached to my computer!
Click to expand...
Click to collapse
It will be very quick thing to apply, download the zip file. Flash it and in less than 2 minutes is done!
HP_TOUCHPAD said:
It will be very quick thing to apply, download the zip file. Flash it and in less than 2 minutes is done!
Click to expand...
Click to collapse
I did not see the zip available anywhere. Where is the zip file?
Well I was able to create the swap partition by following your instructions in the terminal of the twrp on the touchpad. When i type in #free it does show a swap file with numbers, so i think i got it right. Did it on a DU Rom and a Lineage build. Never could get your optimized settings to boot though. Or get into the ramdisk yet. I used 3ctoolbox to try to mimic your suggested settings. It does seem to be quite a bit improved...especially when watching videos on youtube etc...I still do come across lag at times, if more than a couple things are running at the same time...and some apps are still tough for it to handle, but every bit helps.
Touchie Pad said:
Well I was able to create the swap partition by following your instructions in the terminal of the twrp on the touchpad. When i type in #free it does show a swap file with numbers, so i think i got it right. Did it on a DU Rom and a Linaro build. Never could get your optimized settings to boot though. Or get into the ramdisk yet. I used 3ctoolbox to try to mimic your suggested settings. It does seem to be quite a bit improved...especially when watching videos on youtube etc...I still do come across lag at times, if more than a couple things are running at the same time...and some apps are still tough for it to handle, but every bit helps.
Click to expand...
Click to collapse
Thanks for trying it out!
Today I will upload all the zip files than can be easily flash using TWRP, it will be extremely simple, just touch and install and it will do a complete fresh install of everything, like a brand new Device!
Also the DU optimized Kernel and Evervolv, just touch and Install.
You will see how fast and stable the HP Touchpad really is!
Here are the Flash files to Install ! Thanks to shumash for the help of providing the script binary and for initiating the idea to make it easy!
https://forum.xda-developers.com/hp-touchpad/general/hp-touchpad-optimize-android-swap-t3901773

Self-Erasing Build.prop?

Disclosure: I'm intentionally editing build.prop to feel out the limits one can tweak it, I'm fully aware I can completely brick these devices doing this. ​
With that said, ive encountered an issue that replicates on different devices and have no clue as to how or why.
Target Devices:
Samsung S21 (USA-TMB)
Samsung S22 (USA-XAA)
LG V20 (USA-XAA)
LG Velvet (USA-TMB (MTK))
Google Pixel6 Pro
All devices above have been rooted and i have patched bootloader and VBmeta &/or Preloader.
On ALL of the above devices, when i edit the build prop, it simply edits into a blank build.prop. This was replicated using Root Explorer Pro, Rom ToolBox Pro & SmartPack Kernel Manager (F-Droid)
I also tried making a backup before edit, then restore. The system still Bricks upon reboot.
Even if i don't edit the build prop directly, but rather replace it, even with an identical one. The system refuses to read it next boot.
On Most of the listed devices - System is A/B - Also worth noting is the build.prop in /system references importing the build.prop and default.props from /Vendor and /Product. Could that have anything to do with it?
Trouble-Shooting steps taken:
Ensured /System is mounted
Tried Different methods for editing build.prop "on-device"
pull to pc, edit, push back.
Google - XDA Search (duh)
is this DM-Verity? TF am I missing?
So if I understand correctly:
You mount -o rw,remount /system
You adb pull some-text-file
You edit some-text-file
You adb push some-text-file
Did you subsequently adb pull some-text-file to make sure that it was actually changed?
This isn't a super (dynamic partition) with /system /vendor /product all together, is it?
Do:
Code:
dd if=/dev/block/by-name/system of=/sdcard/check skip=big-number
Big number = count of sectors in system partition - 8 // for eMMC
Big number = count of sectors in system partition - 1 // for UFS
You should end up with a file exactly 4096 bytes. If you don't play with the numbers.
Hexedit that file, does it start with fe cf ec fe? Then it has FEC.
Renate said:
So if I understand correctly:
You mount -o rw,remount /system
You adb pull some-text-file
You edit some-text-file
You adb push some-text-file
Did you subsequently adb pull some-text-file to make sure that it was actually changed?
This isn't a super (dynamic partition) with /system /vendor /product all together, is it?
Do:
Code:
dd if=/dev/block/by-name/system of=/sdcard/check skip=big-number
Big number = count of sectors in system partition - 8 // for eMMC
Big number = count of sectors in system partition - 1 // for UFS
You should end up with a file exactly 4096 bytes. If you don't play with the numbers.
Hexedit that file, does it start with fe cf ec fe? Then it has FEC.
Click to expand...
Click to collapse
Super - yes. is this same as system as root? (Sorry if it's an obvious question, I'm learning)
Yes , correct, i ever tried changing Owner and permissions (chmod 777)
Thats the weird part, when i did pull the file from the device it actually came out the other end on my pc intact with all the props - i then proceeded back to device and checked the file in /system and it was blank, as well as the build.bak.
At first thought it was the file explorer (Root Explorer Pro) but when tried manually, same result.
Don't know if its relevant or not to the issue, but i WAS able to use setprop on some props, but only select ones, and I'm not able to figure out the bias as to which one I can or can't.
Persisitent props are stored in /data, so those would work.
Do the dd and tell me if you have FEC. This is for me, your numbers will be different.
Code:
Poke3:/ # dd if=/dev/block/by-name/system of=/sdcard/check skip=6291448
8+0 records in
8+0 records out
4096 bytes (4.0 K) copied, 0.000839 s, 4.6 M/s
Numbers too high will say "Can't skip". Numbers too low will give you a file that's too big.
Do:
Code:
dd if=/dev/block/by-name/system of=/sdcard/check skip=big-number
Big number = count of sectors in system partition - 8 // for eMMC
Big number = count of sectors in system partition - 1 // for UFS
You should end up with a file exactly 4096 bytes. If you don't play with the numbers.
Hexedit that file, does it start with fe cf ec fe? Then it has FEC.
Click to expand...
Click to collapse
Came back weird, does this need to be run as root?
Code:
$ dd if=/dev/block/by-name/system of=/sdcard/check skip=big-number
dd: not integer: big-number
K0mraid3 said:
Came back weird, does this need to be run as root?
Code:
$ dd if=/dev/block/by-name/system of=/sdcard/check skip=big-number
dd: not integer: big-number
Click to expand...
Click to collapse
dumb question lol disregard. same result.
ill go check in /data now
/data is fine. Just check system partition. Using real numbers. Actually integers.
Bump...

Categories

Resources