VR-25/migrator

kali linux? a bundled terminal?

nerd190 opened this issue · 5 comments

Hello, firstly thank you for migrator!!
I have just two questions if I may:

  • Just installed, first up I noticed it now includes a terminal... any reason behind this? being a power user, I already have JackPal's Terminal Emulator and Termux too, I can imagine this will be the same for most users of this module (90% of us will have one terminal at least) and we will all have a terminal in TWRP, does this terminal serve a purpose?
  • Second I notice its name... NetHunter Terminal, I am aware that Kali NetHunter is a popular Linux distro for hackers / reverse engineering / exploits, then I noticed upon opening its asks if I want Kali, Android or AndroidSU shell... so I assume that this now includes Kali Linux (chroot I'm guessing?) is this correct? if so, how is this pen-testing distro related to backing up & restoring our devices? what purpose does it serve?

Thank you!

VR-25 commented

Hi,
Run migrator --help or M -h and read the whole thing.
You'll understand the reasoning behind this terminal.

P.S., --help and -h can be omitted.
These are just there for your reference.

OK, says because its small (it is tiny TBH!) & regulary updated, I kinda understand from perspective, although personally, I still think most people unlocking bootloaders, using fastboot/adb to root a phone, then installing modules will probably have a terminal (other than TWRP's which we all have) and if not, the very small remainder should probably install one! or be expected to if they want to use things like this, rather than a Kali branded terminal bundled for this very small percentage of people, JackPal's is more than sufficient (not regularly updated, but its clone/successor on F-Droid is!), you say NetHunter is powerful... Termux has ALL the capabilities of ALL these terminals, it has multiple package managers to install binaries and can run Kali Linux in a proot or chroot environment, with or without a GUI (also Arch, Debian, Ubuntu, Manjaro & more), yes its a large app, but like I said, I dont think it needs to be included anyway, for the very few that may not have a terminal, they could just install one, no need for a system app too! I had to install the 'debloater' module just so I could systemless-ly uninstall this one app. Just my thoughts, from a fan! honestly, regardless... a big thank you! this is an amazing module!!!

BUG: The help menu is unable to be scrolled up & down (without using the up/down cursor buttons), checked on multiple terminals (including NetHunter, before I uninstalled), I noticed the menu isnt just stdout, it is also reading from stdin, much like a man-page does, awaiting q key, only difference being, a man-page is scrollable.

VR-25 commented

Many thanks for the feedback!
I really appreciate that.
And you're welcome!

I use Termux myself - and yes, the thing is powerful af - to say the least!
I thought about your very arguments before bundling NetHunter Terminal.
Aside from all the pros, migrator is actually shipping with it mainly because the controlling terminal must be excluded from backups.
I set the bundled terminal to be automatically excluded.
Apps targeted for backup/restore are suspended/terminated (TitaniumBackup does the same).
Suspending/terminating the terminal running migrator leads to incomplete backup/restore.
I still haven't figured out a way to automatically detect and exclude the controlling terminal.
Users have to do that manually (e.g., migrator --restore termux -v terminal).

P.S., having a bundled terminal also means users have everything ready right away.

Regarding the "bug".
It's all about the less program.
Both the system and busybox versions have that scrolling issue.
Try ls -1 /sdcard | less to reproduce it again.

There's also the more program - which, ironically, is less powerful that less.
That's where the less is more mantra came from.
See if you would prefer the behavior of ls -1 /sdcard | more.

Sorry for late reply! perfect explanation, totally makes sense... IF run from user space (an app), this app will likely be backed-up by the user then terminated whilst in use for restore process (not good!), hence NetHunter is useful!
The restore process could always restore our terminal APKs first, with no data (terminals shouldnt be restored with data anyway), and the list of Android terminals is very small, in fact (unless bundled within an app) there are only a few popular, dedicated terminals: JackPal's, its successor, Termux & NetHunter.
But, I agree with you, whilst its not my absolutely perfect solution, why bother to change the restore process if it can be solved via a (tiny!) terminal bundled within?! ... keep nethunter! :D
We all have root, so we are free to uninstall if we choose to/accept the caveats of not using it.
I take it there is a reason for it being installed to /system rather than /data.

Thank you so much! for a solution to a great problem (especially for us flash-a-holics/device switchers!) its great to see you really active again!

OH! and what a noob! LOL! of course the "bug" is less and more's behaviour! (I knew that... honest!) facepalm.
I always use most for this reason but unlike more and less, most is not included in the majority of Android ROMs (or covered by busybox/toybox like more/less is, hence why you are using them instead of most, also means you do not have to include this binary with Migrator.

Closing this (not an) issue. Thank you!
Perhaps, you could change the title of this to:
"Why is NetHunter's terminal included?"