Related
I've seen lots of people saying its not possible to make the shield an all in one solution for downloading, but after hours of tinkerering I've got a semi easy way of running the above services (and tons more) from the shield. This does requrie a bit of command line-fu , but I think I've got most of the hard work done. When its all said and done, we'll have a working entware-ng installation ( https://github.com/Entware-ng/Entware-ng)
--This guide is a work in progress, there are a few other items I'll add that will improve user experience, but as it stands now it should work as intended. I also haven't gotten a samba config to work yet, so if anyone can figure it out, let me know and I'll update a section on it
I've addapted this guide from a few github projects , but that likely means some commands/steps are actually useless on the shield:
https://github.com/erichlf/AndroidSeedBox
(will add other sources later)
AS ALWAYS MAKE A BACKUP OF DATA -- I AM NOT RESPONSIBLE IF YOUR DEVICE LOSES DATA (to my knowledge, there is no risk of bricking your device doing this, at worst a factory reset/reflash)
Pre-reqs:
Shield has to have ROOT
ADB set up on PC
Busybox : http://www.apkmirror.com/apk/jrummy-apps-inc/busybox-for-android/
Rom Toolbox Lite : Not on apk mirror, so side load from your favorite place
For this process, I recommend having your shield next to your computer, and share inputs with your monitor. You can do 90% of it from an ADB shell, but a few parts you will need to use a terminal on the shield itself, and keyboard is way easier than controller
Install Busybox on the shield, but use the oldest version available (I think the wget for 1.26 messes with the process)
run "ADB Shell" and run these commands on the shield (You can copy/paste multiple lines into the cmd window):
Code:
su
mount -o rw,remount /
ls /data/entware-ng >/dev/null 2>&1 || mkdir /data/entware-ng
cd .; ln -s /data/entware-ng /opt
ls /data/entware-ng/rootbin >/dev/null 2>&1 || mkdir /data/entware-ng/rootbin
cd .; ln -s /data/entware-ng/rootbin /bin
ls /data/entware-ng/rootlib >/dev/null 2>&1 || mkdir /data/entware-ng/rootlib
cd .; ln -s /data/entware-ng/rootlib /lib
ls /data/entware-ng/tmp >/dev/null 2>&1 || mkdir /data/entware-ng/tmp
cd .; ln -s /data/entware-ng/tmp /tmp
ls /data/entware-ng/home >/dev/null 2>&1 || mkdir /data/entware-ng/home
ls /data/entware-ng/home/root >/dev/null 2>&1 || mkdir /data/entware-ng/home/root
ls /data/entware-ng/home/user >/dev/null 2>&1 || mkdir /data/entware-ng/home/user
chmod 0755 /data/entware-ng/home/root
chown root.root /data/entware-ng/home/root
chmod 0755 /data/entware-ng/home/user
We've set up our staging area, and created a new home directory.
Now lets install Entware
Code:
ls /data/entware-ng/bin >/dev/null 2>&1 || mkdir /data/entware-ng/bin
ls /data/entware-ng/lib >/dev/null 2>&1 || mkdir /data/entware-ng/lib
ln -s /system/bin/sh /bin/sh
wget http://pkg.entware.net/binaries/armv7/installer/entware_install.sh -O /data/entware-ng/entware_install.sh
sh /data/entware-ng/entware_install.sh
Now lets install a new Busybox and Wget
Code:
/opt/bin/opkg install busybox
/opt/bin/opkg install wget
cd /bin; ln -s /data/entware-ng/bin/busybox sh
cd /bin; ln -s /data/entware-ng/bin/busybox echo
cd /bin; ln -s /data/entware-ng/bin/busybox rm
cd /bin; ln -s /data/entware-ng/bin/busybox rmdir
cd /bin; ln -s /data/entware-ng/bin/busybox sed
cd /bin; ln -s /data/entware-ng/bin/busybox mkdir
cd /bin; ln -s /data/entware-ng/bin/busybox head
cd /bin; ln -s /data/entware-ng/bin/busybox sort
cd /bin; ln -s /data/entware-ng/bin/busybox dirname
cd /bin; ln -s /data/entware-ng/bin/busybox ln
cd /bin; ln -s /data/entware-ng/bin/busybox mv
cd /bin; ln -s /data/entware-ng/bin/busybox cat
cd /bin; ln -s /data/entware-ng/bin/busybox chown
cd /bin; ln -s /data/entware-ng/bin/busybox chmod
cd /bin; ln -s /data/entware-ng/bin/busybox pgrep
This next step may be optional. Sets up resolv.conf (which may already exist, I'm not sure) and mtab (I don't know what this is)
Code:
echo nameserver 8.8.8.8 >/data/entware-ng/etc/resolv.conf
ls /etc >/dev/null 2>&1 || mkdir /etc
mount -o rw,remount /system
ls /etc/resolv.conf >/dev/null 2>&1 && rm /etc/resolv.conf
cd .; ln -s /data/entware-ng/etc/resolv.conf /etc/resolv.conf
cd .; ln -s /proc/mounts /etc/mtab
Create Passwd file
Code:
echo root:x:0:0:root:/opt/home/root:/bin/sh >/data/entware-ng/etc/passwd
echo shell:x:2000:2000:shell:/opt/home/user:/bin/sh >>/data/entware-ng/etc/passwd
cd .; ln -s /data/entware-ng/etc/passwd /etc/passwd
echo root:x:0:root >/data/entware-ng/etc/group
echo shell:x:2000:shell >>/data/entware-ng/etc/group
cd .; ln -s /data/entware-ng/etc/group /etc/group
echo /bin/sh > /etc/shells
echo PATH=/usr/bin:/usr/sbin:/bin:/sbin:/system/sbin:/system/bin:/system/xbin:/system/xbin/bb:/data/local/bin > /etc/profile
echo export PATH >> /etc/profile
OPTIONAL: If you want to use Open SSH with password instead of certs you can do the following step. I have done this, and haven't noticed any issues, but it may lessen the security of Root
Code:
/data/entware-ng/bin/busybox passwd root
Now let's create a script that will initialize Entware-ng after reboot
Code:
echo \#\!/system/bin/sh > /data/entware-ng/entware-init.sh
echo mount -o rw,remount rootfs / >> /data/entware-ng/entware-init.sh
echo ln -s /data/entware-ng /opt >> /data/entware-ng/entware-init.sh
echo ln -s /data/entware-ng/rootlinb /lib >> /data/entware-ng/entware-init.sh
echo ln -s /data/entware-ng/rootbin /bin >> /data/entware-ng/entware-init.sh
echo ln -s /data/entware-ng/tmp /tmp >> /data/entware-ng/entware-init.sh
echo ln -s /system/bin/sh /bin/sh >> /data/entware-ng/entware-init.sh
echo mount -o ro,remount rootfs >> /data/entware-ng/entware-init.sh
chmod 755 /data/entware-ng/entware-init.sh
Now lets create a start script that calls the initialize script we just made, but also returns a shell in the new environment
Code:
echo \#\!/system/bin/sh > /data/entware-ng/start.sh
echo ls '/opt >/dev/null 2>&1 ||' su -c /data/entware-ng/entware-init.sh >> /data/entware-ng/start.sh
echo export PATH=/opt/sbin:/opt/bin:/opt/rootbin:/opt/local/bin:/system/bin >> /data/entware-ng/start.sh
echo if busybox test $(busybox id -u) = 0; then HOME=/opt/home/root; else HOME=/opt/home/user; fi >> /data/entware-ng/start.sh
echo export HOME >> /data/entware-ng/start.sh
echo '/opt/etc/init.d/rc.unslung start' >> /data/entware-ng/start.sh
echo /bin/sh >> /data/entware-ng/start.sh
chmod 755 /data/entware-ng/start.sh
Now, lets install different services. These are optional, and there are tons more, but this will get transmission/sickbeard/ssh going
Code:
PATH=/data/entware-ng/bin:/bin /data/entware-ng/bin/opkg install vim
PATH=/data/entware-ng/bin:/bin /data/entware-ng/bin/opkg install samba36-server
PATH=/data/entware-ng/bin:/bin /data/entware-ng/bin/opkg install transmission-web transmission-daemon-openssl
PATH=/data/entware-ng/bin:/bin /data/entware-ng/bin/opkg install python
PATH=/data/entware-ng/bin:/bin /data/entware-ng/bin/opkg install python-setuptools
PATH=/data/entware-ng/bin:/bin /data/entware-ng/bin/opkg install python-pip
PATH=/data/entware-ng/bin:/bin /data/entware-ng/bin/opkg install python-cheetah
PATH=/data/entware-ng/bin:/bin /data/entware-ng/bin/opkg install openssh-server
Copy the start.sh and sysinit to the home environment
Code:
cp /data/entware-ng/start.sh /data/entware-ng/home/root/start.sh
cp /data/entware-ng/start.sh /data/entware-ng/home/root/sysinit
chown root.root /data/entware-ng/home/root/start.sh
chmod 755 /data/entware-ng/home/root/start.sh
chown root.root /data/entware-ng/home/root/sysinit
chmod 755 /data/entware-ng/home/root/sysinit
mount -o ro,remount /
mount -o ro,remount /system
Start the new environment
Code:
sh /data/entware-ng/home/root/sysinit
SICKBEARD CONIG
Install a few pre-reqs for sickbeard
Code:
pip install transmissionrpc
pip install cherrypy
Create a file in init.d to allow sickbeard to start on reboot. Please note, you will need to change the path to where your sickbeard directory is.
I'm not going to cover setting up sickbeard, there are other guides for that. I did find that it couldn't be bound to 0.0.0.0 , or local host, it needed to be hard coded for the shields IP, so I recommend setting it up as a static IP in your router.
Code:
echo PATH=/opt/bin:/opt/sbin:$PATH > /opt/etc/init.d/S96sickbeard
echo /opt/bin/python <YOUR PATH TO>/SickBeard.py -d --port 8081 >> /opt/etc/init.d/S96sickbeard
chmod 755 /opt/etc/init.d/S96sickbeard
chmod +x /opt/etc/init.d/S96sickbeard
OPENSSH CONFIG
OPTIONAL - If you want to use SSH we need to generate keys
Code:
ssh-keygen -f /opt/etc/ssh/ssh_host_rsa_key -N '' -t rsa
ssh-keygen -f /opt/etc/ssh/ssh_host_dsa_key -N '' -t dsa
ssh-keygen -f /opt/etc/ssh/ssh_host_ecdsa_key -N '' -t ecdsa -b 521
Now you'll have to get on the shield and use a terminal emulator to edit your sshd_config file. Here's a copy of mine, but I do not promise how secure it is.
Code:
# $OpenBSD: sshd_config,v 1.99 2016/07/11 03:19:44 tedu Exp $
# This is the sshd server system-wide configuration file. See
# sshd_config(5) for more information.
# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin:/opt/bin
# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented. Uncommented options override the
# default value.
Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
# The default requires explicit activation of protocol 1
Protocol 2
# HostKey for protocol version 1
#HostKey /opt/etc/ssh/ssh_host_key
#HostKeys for protocol version 2
HostKey /opt/etc/ssh/ssh_host_rsa_key
HostKey /opt/etc/ssh/ssh_host_dsa_key
HostKey /opt/etc/ssh/ssh_host_ecdsa_key
#HostKey /opt/etc/ssh/ssh_host_ed25519_key
# Lifetime and size of ephemeral version 1 server key
#KeyRegenerationInterval 1h
#ServerKeyBits 1024
# Ciphers and keying
#RekeyLimit default none
# Logging
#SyslogFacility AUTH
#LogLevel INFO
# Authentication:
#LoginGraceTime 2m
PermitRootLogin yes
StrictModes no
#MaxAuthTries 6
#MaxSessions 10
#RSAAuthentication yes
#PubkeyAuthentication yes
# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
# but this is overridden so installations will only check .ssh/authorized_keys
AuthorizedKeysFile .ssh/authorized_keys
#AuthorizedPrincipalsFile none
#AuthorizedKeysCommand none
#AuthorizedKeysCommandUser nobody
# For this to work you will also need host keys in /opt/etc/ssh/ssh_known_hosts
#RhostsRSAAuthentication no
# similar for protocol version 2
#HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# RhostsRSAAuthentication and HostbasedAuthentication
#IgnoreUserKnownHosts no
# Don't read the user's ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes
# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication yes
PermitEmptyPasswords yes
# Change to no to disable s/key passwords
#ChallengeResponseAuthentication yes
# Kerberos options
#KerberosAuthentication no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
#KerberosGetAFSToken no
# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes
# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication. Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
#UsePAM no
#AllowAgentForwarding yes
#AllowTcpForwarding yes
#GatewayPorts no
#X11Forwarding no
#X11DisplayOffset 10
#X11UseLocalhost yes
#PermitTTY yes
#PrintMotd yes
#PrintLastLog yes
#TCPKeepAlive yes
#UseLogin no
UsePrivilegeSeparation no
#PermitUserEnvironment no
#Compression delayed
#ClientAliveInterval 0
#ClientAliveCountMax 3
#UseDNS no
#PidFile /opt/var/run/sshd.pid
#MaxStartups 10:30:100
#PermitTunnel no
#ChrootDirectory none
#VersionAddendum none
# no default banner path
#Banner none
# enable DSCP QoS values (per RFC-4594)
#IPQoS AF21 AF11
# override default of no subsystems
Subsystem sftp /opt/lib/sftp-server
# Example of overriding settings on a per-user basis
#Match User anoncvs
# X11Forwarding no
# AllowTcpForwarding no
# PermitTTY no
# ForceCommand cvs server
To edit this, on the shield (Rom Toolbox Lite has a terminal emulator) run
Code:
su
cd /opt
sh ./start.sh
cd /opt/etc/ssh
vi ./sshd_config
TRANSMISSION
You'll have to configure your transmission settings, but they're located
/opt/etc/transmission/settings.json
Persist after reboot / Start Transmission/SSH/Sickbeard on boot
On the shield, open Rom Toolbox lite, and go down to "Scripter"
Import the sysinit script located /opt/home/root/sysinit and set the script to run at boot as root
Reboot and you should be able to connect via SSH, and have
Why do we need the passwd and group file ? Won't we use android's UID/GID ?
Can this method somehow be used to create custom group where we could put android's UID ?
I don't know why that step is needed, I got it from the guide I listed, and it worked without any apparent issues, so I left it in. My guess is openssh wants it to be there, but I'm not sure
So after you run all that is there a Interface for Sickbeard etc?
ahoslc said:
So after you run all that is there a Interface for Sickbeard etc?
Click to expand...
Click to collapse
It would be running on <shield IP>:8081 which you could access from the shield, or any other device on your network. Transmission would be :9091
Thanks for this. I'm trying to get python3-pip, acd_cli, and encfs installed on my Shield TV so I can mount my Amazon Cloud Drive and decrypt files for use with Plex. I have this set up on my NAS but it is too weak to do transcoding. I did set up the NAS as a middleman and mounted shares from it on the Shield TV, and while it does work, the extra step is really slow.
edit: I managed to get acd_cli working but I cannot mount my Amazon Cloud Drive share, I get I/O errors when I try to cd into it. Wonder if there's a kernel issue.
psycho_asylum said:
Thanks for this. I'm trying to get python3-pip, acd_cli, and encfs installed on my Shield TV so I can mount my Amazon Cloud Drive and decrypt files for use with Plex. I have this set up on my NAS but it is too weak to do transcoding. I did set up the NAS as a middleman and mounted shares from it on the Shield TV, and while it does work, the extra step is really slow.
edit: I managed to get acd_cli working but I cannot mount my Amazon Cloud Drive share, I get I/O errors when I try to cd into it. Wonder if there's a kernel issue.
Click to expand...
Click to collapse
So I was able to get this working https://github.com/dsoprea/GDriveFS and could cd into my google drive (But couldn't get Plex to see any files in the directory)
Soooo, even if you do get it working, its possible Plex won't be able to see it
Edit-- Did you install fuse-utils ?
chasx003 said:
Edit-- Did you install fuse-utils ?
Click to expand...
Click to collapse
Not specifically. I would think it would have been listed as a dependency and automatically installed, libfuse was though. I ended up factory restoring my Shield after I botched something, so now I'm just at 5.1 stock using the built-in Samba for now.
which version of busybox works? I am having trouble with wget and I tried v1.21.0
chasx003 said:
I've seen lots of people saying its not possible to make the shield an all in one solution for downloading, but after hours of tinkerering I've got a semi easy way of running the above services (and tons more) from the shield. This does requrie a bit of command line-fu , but I think I've got most of the hard work done. When its all said and done, we'll have a working entware-ng installation ( https://github.com/Entware-ng/Entware-ng)
[..]
FIRST
Now let's create a script that will initialize Entware-ng after reboot
Code:
echo \#\!/system/bin/sh > /data/entware-ng/entware-init.sh
echo mount -o rw,remount rootfs / >> /data/entware-ng/entware-init.sh
echo ln -s /data/entware-ng /opt >> /data/entware-ng/entware-init.sh
echo ln -s /data/entware-ng/rootlinb /lib >> /data/entware-ng/entware-init.sh
echo ln -s /data/entware-ng/rootbin /bin >> /data/entware-ng/entware-init.sh
echo ln -s /data/entware-ng/tmp /tmp >> /data/entware-ng/entware-init.sh
echo ln -s /system/bin/sh /bin/sh >> /data/entware-ng/entware-init.sh
echo mount -o ro,remount rootfs >> /data/entware-ng/entware-init.sh
chmod 755 /data/entware-ng/entware-init.sh
[..]
SECOND
Now lets create a start script that calls the initialize script we just made, but also returns a shell in the new environment
Code:
echo \#\!/system/bin/sh > /data/entware-ng/start.sh
echo ls '/opt >/dev/null 2>&1 ||' su -c /data/entware-ng/entware-init.sh >> /data/entware-ng/start.sh
echo export PATH=/opt/sbin:/opt/bin:/opt/rootbin:/opt/local/bin:/system/bin >> /data/entware-ng/start.sh
echo if busybox test $(busybox id -u) = 0; then HOME=/opt/home/root; else HOME=/opt/home/user; fi >> /data/entware-ng/start.sh
echo export HOME >> /data/entware-ng/start.sh
echo 'for file in /data/opt/etc/init.d/*' >> /data/entware-ng/start.sh
echo do >> /data/entware-ng/start.sh
echo ' $file start' >> /data/entware-ng/start.sh
echo done >> /data/entware-ng/start.sh
echo /bin/sh >> /data/entware-ng/start.sh
chmod 755 /data/entware-ng/start.sh
[..]
THIRD
Copy the start.sh and sysinit to the home environment
Code:
chown root.root /data/entware-ng/home/root/start.sh
chmod 755 /data/entware-ng/home/root/start.sh
chown root.root /data/entware-ng/home/root/sysinit
chmod 755 /data/entware-ng/home/root/sysinit
mount -o ro,remount /
mount -o ro,remount /system
[..]
FOURTH
Start the new environment
Code:
sh /data/opt/home/root/sysinit
Reboot and you should be able to connect via SSH, and have
Click to expand...
Click to collapse
In my quote there has to be something missing between the "first" and "second" steps and the "third" one.. are the two files we've just made the missing files in the home/root directory? Or where they supposed to come from somewhere else?
Also the "fourth" step, there are no /data/opt directory in my installation.
MartiniGM said:
In my quote there has to be something missing between the "first" and "second" steps and the "third" one.. are the two files we've just made the missing files in the home/root directory? Or where they supposed to come from somewhere else?
Also the "fourth" step, there are no /data/opt directory in my installation.
Click to expand...
Click to collapse
Ah! Sorry for not replying until now, life has been busy.
You are correct, there are some typos / things out of order! I'm going to go through this and fix it and will update the OP
I've taken this guide and installed rTorrent (due to superior web client and RSS capability). If anyone needs help on that, I can chime in.
Great tuto !
Working fine one Nvidia Shield TV 2017 with latest update (whithout reboot)
But after reboot I lost /opt and /bin on root :-O
mkdir /opt working fine after mount -o rw,remount /
but if i reboot it disappear
any idea ?
android.stackexchange.com said:
(root) directory is not a persistent filesystem on Android. It's a initramfs, which is packed into the boot image on your device. Although you can remount it with write permissions, changes will always be lost the next time you boot because the original ramdisk will be re-extracted from the boot image on the next boot.
Click to expand...
Click to collapse
So we need to :
$ mkboot boot.img /output-folder
$ cd /output-folder
$ gunzip -c ramdisk | cpio -i
... make some changes in the ramdisk and possibly /output-folder/img_info ...
$ find . | cpio -o -H newc | gzip > newramdisk.cpio.gz
$ cd ..
$ mkboot /output-folder newboot.img
If you're rooted, a better solution is to simply install in a chroot, either using debootstrap or other; you can obtain a nearly complete Linux system this way (init in a chroot is weird, stuff like openssh will still have to be started separately after boot, either manually or by an app/script).
If you're not rooted, you can use proot for simple path redirection; this is how termux installs arch on unrooted devices.
Using either option (chroot, proot) requires having binary files that aren't in a noexec partition; generally this means private app storage, not sdcard that's accessible to other apps. If you're building a chroot, you should be able to include the external/public storage folder in it, however a chroot also requires the partition not be mounted with nodev option.
***Note that I don't actually have a shield TV*** (I'm just interested in getting one) so I can't say if the shield's storage is mounted noexec, but the android data partition generally is. I can, however, verify that the process in general works on Android, however, as I've got two tablets running Lineage/Nougat with chroots, and a stock Moto G6 with archlinux arm in proot. To check for partitions mounted as nodev or noexec, run `mount|TERM=xterm grep --color -E 'nodev|noexec'`. You might check to see if you can use /data/local instead of app's private storage.
For installing BusyBox, *should* be a `busybox --install -s [DIR]` option that copies the binary to the destination, then symlinks applets. This should be simpler than symlinking a bunch of applets manually.
If you want a system-wide BusyBox I recommend stericson busybox: https://play.google.com/store/apps/details?id=stericson.busybox
For a terminal emulator on Android, I highly recommend termux, which is available on Google play and F-Droid. It has support for 256 color, styles, a package manager, Android integration (ie notifications from Linux scripts), boot scripts, widgets, etc: https://play.google.com/store/apps/details?id=com.termux
Another alternative: you can set up user-mode Linux for something closer to virtualization, but I have yet to see any UML binaries for use with Android; this would also make it difficult to run networking and to access files from outside the guest, but will provide a full working system with init support, and would not require root to set up and run--however, I think UML networking requires root and/or kernel support, though, and UML generally requires a disk image much like other virtualization tools. Qemu might be workable instead of UML with fewer issues.
Note that all of these solutions are still running under an Android app, and as such are subject to the android task killer. Not sure if there's any way around this without having something run directly by Android's own init system.
Efreak2004 said:
If you're rooted, a better solution is to simply install in a chroot, either using debootstrap or other; you can obtain a nearly complete Linux system this way (init in a chroot is weird, stuff like openssh will still have to be started separately after boot, either manually or by an app/script).
If you're not rooted, you can use proot for simple path redirection; this is how termux installs arch on unrooted devices.
Using either option (chroot, proot) requires having binary files that aren't in a noexec partition; generally this means private app storage, not sdcard that's accessible to other apps. If you're building a chroot, you should be able to include the external/public storage folder in it, however a chroot also requires the partition not be mounted with nodev option.
***Note that I don't actually have a shield TV*** (I'm just interested in getting one) so I can't say if the shield's storage is mounted noexec, but the android data partition generally is. I can, however, verify that the process in general works on Android, however, as I've got two tablets running Lineage/Nougat with chroots, and a stock Moto G6 with archlinux arm in proot. To check for partitions mounted as nodev or noexec, run `mount|TERM=xterm grep --color -E 'nodev|noexec'`. You might check to see if you can use /data/local instead of app's private storage.
For installing BusyBox, *should* be a `busybox --install -s [DIR]` option that copies the binary to the destination, then symlinks applets. This should be simpler than symlinking a bunch of applets manually.
If you want a system-wide BusyBox I recommend stericson busybox: https://play.google.com/store/apps/details?id=stericson.busybox
For a terminal emulator on Android, I highly recommend termux, which is available on Google play and F-Droid. It has support for 256 color, styles, a package manager, Android integration (ie notifications from Linux scripts), boot scripts, widgets, etc: https://play.google.com/store/apps/details?id=com.termux
Another alternative: you can set up user-mode Linux for something closer to virtualization, but I have yet to see any UML binaries for use with Android; this would also make it difficult to run networking and to access files from outside the guest, but will provide a full working system with init support, and would not require root to set up and run--however, I think UML networking requires root and/or kernel support, though, and UML generally requires a disk image much like other virtualization tools. Qemu might be workable instead of UML with fewer issues.
Note that all of these solutions are still running under an Android app, and as such are subject to the android task killer. Not sure if there's any way around this without having something run directly by Android's own init system.
Click to expand...
Click to collapse
Using chroot isn`t good solution. Emulators not effective too.
Stericon`s busybox is paid, meefik`s busybox is free and has more utils.
Termux is heavy, I use Teeminal Emulator: https://f-droid.org/app/jackpal.androidterm
You be able to install a lot of lightweight linux utils by installing entware-ng. For example, git pkg has 300 Mb size in termux and 15 Mb in entware.
Entware has a lot of conmon with optware and openwrt
this is a wonderful guide I'm surprised more people don't use it great job!
Look here: https://forum.xda-developers.com/ga...e-extending-battery-life-galaxy-tab-t3856631/
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
i can’t think of anything else i did but i followed this guide and i have lost my phone dialler ? i can’t make calls no app can perform this action! Would anyone know which is the phone dialler it wouldn’t be tied to com.samsung.android.contacts ?
Disable the following packages, which consume battery unnecessarily:
Code:
adb shell su -c pm disable com.samsung.android.app.clockpack
adb shell su -c pm disable com.samsung.android.calendar
adb shell su -c pm disable com.samsung.android.contacts
adb shell su -c pm disable com.samsung.android.email.provider
adb shell su -c pm disable com.samsung.android.providers.context
adb shell su -c pm disable com.samsung.android.rubin.app
adb shell su -c pm disable com.samsung.android.voc
adb shell su -c pm disable com.sec.android.app.clockpackage
adb shell su -c pm disable com.sec.android.app.popupcalculator
adb shell su -c pm disable com.sec.android.app.sbrowser
adb shell su -c pm disable com.sec.spp.push
3. Optional: Remove remaining bloatware
Code:
adb shell su -c pm disable com.android.providers.partnerbookmarks
adb shell su -c pm disable com.microsoft.office.excel
adb shell su -c pm disable com.microsoft.office.onenote
adb shell su -c pm disable com.microsoft.office.powerpoint
adb shell su -c pm disable com.microsoft.office.word
adb shell su -c pm disable com.samsung.android.ststub
adb shell su -c pm disable com.samsung.android.knox.containeragent
adb shell su -c pm disable com.samsung.android.knox.containercore
adb shell su -c pm disable com.samsung.knox.securefolder
adb shell su -c pm disable com.samsung.knox.securefolder.setuppage
adb shell su -c pm disable com.sec.enterprise.knox.attestation
adb shell su -c pm disable com.sec.enterprise.knox.cloudmdm.smdms
adb shell su -c pm disable com.sec.enterprise.mdm.services.simpin
adb shell su -c pm disable com.sec.enterprise.mdm.vpn
4. Optional: Disable more unnecessary apps
Code:
adb shell su -c pm disable com.sec.android.app.kidshome
adb shell su -c pm disable com.sec.android.emergencylauncher
adb shell su -c pm disable com.sec.android.widgetapp.samsungapps
adb shell su -c pm disable com.sec.android.widgetapp.webmanual
adb shell su -c pm disable com.sec.musicstudio
N1NJATH3ORY said:
i can’t think of anything else i did but i followed this guide and i have lost my phone dialler ? i can’t make calls no app can perform this action! Would anyone know which is the phone dialler it wouldn’t be tied to com.samsung.android.contacts ?
Disable the following packages, which consume battery unnecessarily:
Code:
adb shell su -c pm disable com.samsung.android.app.clockpack
adb shell su -c pm disable com.samsung.android.calendar
adb shell su -c pm disable com.samsung.android.contacts
adb shell su -c pm disable com.samsung.android.email.provider
adb shell su -c pm disable com.samsung.android.providers.context
adb shell su -c pm disable com.samsung.android.rubin.app
adb shell su -c pm disable com.samsung.android.voc
adb shell su -c pm disable com.sec.android.app.clockpackage
adb shell su -c pm disable com.sec.android.app.popupcalculator
adb shell su -c pm disable com.sec.android.app.sbrowser
adb shell su -c pm disable com.sec.spp.push
3. Optional: Remove remaining bloatware
Code:
adb shell su -c pm disable com.android.providers.partnerbookmarks
adb shell su -c pm disable com.microsoft.office.excel
adb shell su -c pm disable com.microsoft.office.onenote
adb shell su -c pm disable com.microsoft.office.powerpoint
adb shell su -c pm disable com.microsoft.office.word
adb shell su -c pm disable com.samsung.android.ststub
adb shell su -c pm disable com.samsung.android.knox.containeragent
adb shell su -c pm disable com.samsung.android.knox.containercore
adb shell su -c pm disable com.samsung.knox.securefolder
adb shell su -c pm disable com.samsung.knox.securefolder.setuppage
adb shell su -c pm disable com.sec.enterprise.knox.attestation
adb shell su -c pm disable com.sec.enterprise.knox.cloudmdm.smdms
adb shell su -c pm disable com.sec.enterprise.mdm.services.simpin
adb shell su -c pm disable com.sec.enterprise.mdm.vpn
4. Optional: Disable more unnecessary apps
Code:
adb shell su -c pm disable com.sec.android.app.kidshome
adb shell su -c pm disable com.sec.android.emergencylauncher
adb shell su -c pm disable com.sec.android.widgetapp.samsungapps
adb shell su -c pm disable com.sec.android.widgetapp.webmanual
adb shell su -c pm disable com.sec.musicstudio
Click to expand...
Click to collapse
What phone dialer do you mean? A Tab S3/S4 has no phone function, strange?
rainman74 said:
What phone dialer do you mean? A Tab S3/S4 has no phone function, strange?
Click to expand...
Click to collapse
Mate like the phone dialer you have on your S1, S2, S3, S4, S5, S6, S7, S8+, S9+, NOTE 8, NOTE 9, to make phone calls like a regular smartphone. The TAB S4 has a full on phone support. Samsung has been offering phone functionality since the Tab 7.7 AMOLED inch days (1 March 2012) Sounds like you been only playing with the non LTE Models?
it was all fine until i copied and pasted the terminal codes :crying: As i can’t think of anything else that would break the dialer? Thanks
UPDATE! See pic i have attached, look at bottom row 2nd icon from left side. Do you see the phone dialer icon? That’s been disabled!
N1NJATH3ORY said:
Mate like the phone dialer you have on your S1, S2, S3, S4, S5, S6, S7, S8+, S9+, NOTE 8, NOTE 9, to make phone calls like a regular smartphone. The TAB S4 has a full on phone support. Samsung has been offering phone functionality since the Tab 7.7 AMOLED inch days (1 March 2012) Sounds like you been only playing with the non LTE Models?
it was all fine until i copied and pasted the terminal codes :crying: As i can’t think of anything else that would break the dialer? Thanks
UPDATE! See pic i have attached, look at bottom row 2nd icon from left side. Do you see the phone dialer icon? That’s been disabled!
Click to expand...
Click to collapse
I haven't removed any phone packages, the only thing I can imagine is how you say the Contacts apps. If it is, you can restore it with :
Code:
adb shell su -c pm enable com.samsung.android.contacts
Like all other packages of course
P.S. I already had an LTE version with a sim card, but there was no phone function available. Maybe it depends on the provider.
From what i have found out adb shell su -c pm disable com.samsung.android.contacts it has disabled conatacts everytime i SU in terminal then paste adb shell su -c pm enable com.samsung.android.contacts it is not found! Does anyone know if that's the right command I’m typing to enable it? As i am guessing did Google it can’t really find any straight forward guides
---------- Post added at 10:42 PM ---------- Previous post was at 10:37 PM ----------
rainman74 said:
I haven't removed any phone packages, the only thing I can imagine is how you say the Contacts apps. If it is, you can restore it with :
Code:
adb shell su -c pm enable com.samsung.android.contacts
Like all other packages of course
P.S. I already had an LTE version with a sim card, but there was no phone function available. Maybe it depends on the provider.
Click to expand...
Click to collapse
Thanks the command is not found but contact apk is installed?
Yeah maybe your carrier disable it, not sure laws in your region. why not flash BTU unbranded firmware you will have full phone features
I can confirm, my Verizon S4 had no phone app. But my Korean version has phone and messages app
Also, I've disabled contacts app in the past on Samsung phones and that turned off my phone app..maybe the same here.
machx1111 said:
I can confirm, my Verizon S4 had no phone app. But my Korean version has phone and messages app
Also, I've disabled contacts app in the past on Samsung phones and that turned off my phone app..maybe the same here.
Click to expand...
Click to collapse
Thanks but for some reason contacts is missing when i input adb shell su -c pm enable com.samsung.android.contacts it's not found
N1NJATH3ORY said:
Thanks but for some reason contacts is missing when i input adb shell su -c pm enable com.samsung.android.contacts it's not found
Click to expand...
Click to collapse
I just tried disable/enable contacts on my device and that caused the phone to disappear / reappear, so pretty sure that is the cause.
Maybe try checking titanium backup if you can see it there? I always freeze my bloat with titanium because you can freeze and unfreeze easily with a click anytime.
If not maybe try to download the stock one https://www.apkmirror.com/apk/samsung-electronics-co-ltd/samsung-contacts/
N1NJATH3ORY said:
i can’t think of anything else i did but i followed this guide and i have lost my phone dialler ? i can’t make calls no app can perform this action! Would anyone know which is the phone dialler it wouldn’t be tied to com.samsung.android.contacts ?
Disable the following packages, which consume battery unnecessarily:
Code:
adb shell su -c pm disable com.samsung.android.app.clockpack
adb shell su -c pm disable com.samsung.android.calendar
adb shell su -c pm disable com.samsung.android.contacts
adb shell su -c pm disable com.samsung.android.email.provider
adb shell su -c pm disable com.samsung.android.providers.context
adb shell su -c pm disable com.samsung.android.rubin.app
adb shell su -c pm disable com.samsung.android.voc
adb shell su -c pm disable com.sec.android.app.clockpackage
adb shell su -c pm disable com.sec.android.app.popupcalculator
adb shell su -c pm disable com.sec.android.app.sbrowser
adb shell su -c pm disable com.sec.spp.push
3. Optional: Remove remaining bloatware
Code:
adb shell su -c pm disable com.android.providers.partnerbookmarks
adb shell su -c pm disable com.microsoft.office.excel
adb shell su -c pm disable com.microsoft.office.onenote
adb shell su -c pm disable com.microsoft.office.powerpoint
adb shell su -c pm disable com.microsoft.office.word
adb shell su -c pm disable com.samsung.android.ststub
adb shell su -c pm disable com.samsung.android.knox.containeragent
adb shell su -c pm disable com.samsung.android.knox.containercore
adb shell su -c pm disable com.samsung.knox.securefolder
adb shell su -c pm disable com.samsung.knox.securefolder.setuppage
adb shell su -c pm disable com.sec.enterprise.knox.attestation
adb shell su -c pm disable com.sec.enterprise.knox.cloudmdm.smdms
adb shell su -c pm disable com.sec.enterprise.mdm.services.simpin
adb shell su -c pm disable com.sec.enterprise.mdm.vpn
4. Optional: Disable more unnecessary apps
Code:
adb shell su -c pm disable com.sec.android.app.kidshome
adb shell su -c pm disable com.sec.android.emergencylauncher
adb shell su -c pm disable com.sec.android.widgetapp.samsungapps
adb shell su -c pm disable com.sec.android.widgetapp.webmanual
adb shell su -c pm disable com.sec.musicstudio
Click to expand...
Click to collapse
Im doing this via package disabler pro is there any difference? Im "debloating" even further and disable all the **** i dont want to have on my tab
Sent from my Samsung SM-G950F using XDA Labs
dr460nf1r3 said:
Im doing this via package disabler pro is there any difference? Im "debloating" even further and disable all the **** i dont want to have on my tab
Sent from my Samsung SM-G950F using XDA Labs
Click to expand...
Click to collapse
Yeah the tools allow you to tweak a little easier to revert back if something breaks
machx1111 said:
I just tried disable/enable contacts on my device and that caused the phone to disappear / reappear, so pretty sure that is the cause.
Maybe try checking titanium backup if you can see it there? I always freeze my bloat with titanium because you can freeze and unfreeze easily with a click anytime.
If not maybe try to download the stock one https://www.apkmirror.com/apk/samsung-electronics-co-ltd/samsung-contacts/
Click to expand...
Click to collapse
You Rock! i installed titanium backup unfroze contacts I’ve got my phone dialer back.. Thanks dude
N1NJATH3ORY said:
i can’t think of anything else i did but i followed this guide and i have lost my phone dialler ? i can’t make calls no app can perform this action! Would anyone know which is the phone dialler it wouldn’t be tied to com.samsung.android.contacts ?
Disable the following packages, which consume battery unnecessarily:
Code:
adb shell su -c pm disable com.samsung.android.app.clockpack
adb shell su -c pm disable com.samsung.android.calendar
adb shell su -c pm disable com.samsung.android.contacts
adb shell su -c pm disable com.samsung.android.email.provider
adb shell su -c pm disable com.samsung.android.providers.context
adb shell su -c pm disable com.samsung.android.rubin.app
adb shell su -c pm disable com.samsung.android.voc
adb shell su -c pm disable com.sec.android.app.clockpackage
adb shell su -c pm disable com.sec.android.app.popupcalculator
adb shell su -c pm disable com.sec.android.app.sbrowser
adb shell su -c pm disable com.sec.spp.push
3. Optional: Remove remaining bloatware
Code:
adb shell su -c pm disable com.android.providers.partnerbookmarks
adb shell su -c pm disable com.microsoft.office.excel
adb shell su -c pm disable com.microsoft.office.onenote
adb shell su -c pm disable com.microsoft.office.powerpoint
adb shell su -c pm disable com.microsoft.office.word
adb shell su -c pm disable com.samsung.android.ststub
adb shell su -c pm disable com.samsung.android.knox.containeragent
adb shell su -c pm disable com.samsung.android.knox.containercore
adb shell su -c pm disable com.samsung.knox.securefolder
adb shell su -c pm disable com.samsung.knox.securefolder.setuppage
adb shell su -c pm disable com.sec.enterprise.knox.attestation
adb shell su -c pm disable com.sec.enterprise.knox.cloudmdm.smdms
adb shell su -c pm disable com.sec.enterprise.mdm.services.simpin
adb shell su -c pm disable com.sec.enterprise.mdm.vpn
4. Optional: Disable more unnecessary apps
Code:
adb shell su -c pm disable com.sec.android.app.kidshome
adb shell su -c pm disable com.sec.android.emergencylauncher
adb shell su -c pm disable com.sec.android.widgetapp.samsungapps
adb shell su -c pm disable com.sec.android.widgetapp.webmanual
adb shell su -c pm disable com.sec.musicstudio
Click to expand...
Click to collapse
Im doing this via package disabler pro is there any difference? Im "debloating" even further and disable all the **** i dont want to have on my tab
Sent from my Samsung SM-G950F using XDA Labs
N1NJATH3ORY said:
You Rock! i installed titanium backup unfroze contacts I’ve got my phone dialer back.. Thanks dude
Click to expand...
Click to collapse
Awesome good news. I love Titanium..it works so nicely for debloating
Wondering If this works on our Tabs too
https://forum.xda-developers.com/ga...reme-aroma-based-debloater-s8-t3744608/page15
Gonna try when back home
Edit sadly it does Not Work
Sent from my Samsung SM-G950F using XDA Labs
In the first post I provided a hint if you want to continue using the phone function
rainman74 said:
In the first post I provided a hint if you want to continue using the phone function
Click to expand...
Click to collapse
Yeah i dont pay much attentions to stuff, copy paste and hope for the best. .. i will try again and i will leave contacts out this time around.. Thanks
Have 2 ftv2 Sloane boxes that I'd like to debloat.
I am rooted running latest prerooted image.
Is it possible to debloat?
What's the gist, do I debloat via adb?
Thanks
dovedescent7 said:
Have 2 ftv2 Sloane boxes that I'd like to debloat.
I am rooted running latest prerooted image.
Is it possible to debloat?
What's the gist, do I debloat via adb?
Thanks
Click to expand...
Click to collapse
Hi @dovedescent7, if you install a custom launcher and have the firetv settings apk or confireator settings apk as # root installed then you can use this list here as a reference. Once disabled use a file explorer and navigate to /system/priv-app folder and delete each named folder (double check)
com.amazon.device.software.ota
com.amazon.device.software.ota.override
android.amazon.perm
com.amazon.ags.app
com.amazon.android.marketplace
com.amazon.bueller.music
com.amazon.bueller.notification
com.amazon.client.metrics
com.amazon.client.metrics.api
com.amazon.communication.discovery
com.amazon.connectivitydiag
com.amazon.dcp
com.amazon.device.crashmanager
com.amazon.device.logmanager
com.amazon.device.messaging
com.amazon.device.sync
com.amazon.devicecontrol
com.amazon.dp.logger
com.amazon.identity.auth.device.authorization
com.amazon.imp
com.amazon.kindle.cms
com.amazon.kindle.devicecontrol
com.amazon.kso.blackbird
com.amazon.ods.kindleconnect
com.amazon.parentalcontrols
com.amazon.platform.fdrw
com.amazon.precog
com.amazon.providers
com.amazon.providers.contentsupport
Always disable system app first before you delete them. I'm sure @0815hoffi should have a better list, these are just a few I have lying around..
This is my script, it disabled Updates and removes the Amazon Launcher.
I use this on 2k and 4k Stick.
For all scripts Look my github Page.
echo remove Bloatware
echo Please Wait, removal running...............
adb shell "su -c pm disable com.amazon.kindle.cms"
adb shell "su -c pm disable com.amazon.tv.launcher"
adb shell "su -c pm disable com.amazon.tv.oobe"
adb shell "su -c pm disable com.amazon.device.sale.service"
adb shell "su -c pm disable com.amazon.recess"
adb shell "su -c pm disable com.amazon.whisperplay.contracts"
adb shell "su -c pm disable com.amazon.bueller.photos"
adb shell "su -c pm disable com.amazon.device.sync"
adb shell "su -c pm disable com.amazon.webview"
adb shell "su -c pm disable com.amazon.tv.csapp"
adb shell "su -c pm disable com.amazon.tcomm.client"
adb shell "su -c pm disable com.amazon.client.metrics"
adb shell "su -c pm disable amazon.jackson19"
adb shell "su -c pm disable com.amazon.device.software.ota"
adb shell "su -c pm disable com.amazon.ags.app"
adb shell "su -c pm disable com.amazon.application.compatibility.enforcer"
adb shell "su -c pm disable com.amazon.whisperplay.service.install"
adb shell "su -c pm disable com.amazon.device.software.ota.override"
adb shell "su -c pm disable com.amazon.communication.discovery"
adb shell "su -c pm disable com.amazon.device.sync.sdk.internal"
adb shell "su -c pm disable com.amazon.bueller.music"
adb shell "su -c pm disable com.amazon.application.compatibility.enforcer.sdk.library"
adb shell "su -c pm disable com.amazon.vizzini"
adb shell "su -c pm disable com.amazon.tv.forcedotaupdater.v2"
adb shell "su -c pm disable com.amazon.avod"
adb shell "su -c pm disable com.amazon.shoptv.client"
adb shell "su -c pm disable android.amazon.perm"
adb shell "su -c pm disable com.amazon.android.marketplace"
adb shell "su -c pm disable com.amazon.awvflingreceiver"
adb shell "su -c pm disable com.amazon.bueller.notification"
adb shell "su -c pm disable com.amazon.device.crashmanager"
adb shell "su -c pm disable com.amazon.device.messaging"
adb shell "su -c pm disable com.amazon.device.messaging.sdk.internal.library"
adb shell "su -c pm disable com.amazon.device.messaging.sdk.library"
adb shell "su -c pm disable com.amazon.kso.blackbird"
adb shell "su -c pm disable com.amazon.ods.kindleconnect"
adb shell "su -c pm disable com.amazon.providers"
adb shell "su -c pm disable com.amazon.providers.contentsupport"
adb shell "su -c pm disable com.amazon.securitysyncclient"
adb shell "su -c pm disable com.amazon.sharingservice.android.client.proxy"
adb shell "su -c pm disable com.amazon.sync.provider.ipc"
adb shell "su -c pm disable com.amazon.sync.service"
adb shell "su -c pm disable com.amazon.tv.legal.notices"
adb shell "su -c pm disable com.amazon.tv.support"
adb shell "su -c pm disable com.amazon.platform.fdrw"
adb shell "su -c pm disable com.android.managedprovisioning"
adb shell "su -c pm disable com.amazon.device.bluetoothdfu"
adb shell "su -c pm disable com.amazon.tv.fw.metrics"
adb shell "su -c pm disable com.amazon.device.logmanager"
adb shell "su -c pm disable com.amazon.dcp"
adb shell "su -c pm disable com.amazon.dcp.contracts.framework.library"
adb shell "su -c pm disable com.amazon.android.service.networkmonitor"
adb shell "su -c pm disable com.amazon.tmm.tutorial"
adb shell "su -c pm disable com.amazon.logan"
adb shell "su -c pm disable com.amazon.tv.nimh"
adb shell "su -c pm disable com.ivona.tts.oem"
adb shell "su -c pm disable com.ivona.orchestrator"
adb shell "su -c pm disable com.amazon.alexashopping"
adb shell "su -c pm disable com.amazon.ftv.glorialist"
adb shell "su -c pm disable com.amazon.tv.livetv"
adb shell "su -c pm disable com.amazon.wifilocker"
adb shell "su -c pm disable com.amazon.ssdpservice"
adb shell "su -c pm disable com.amazon.alta.h2clientservice"
adb shell "su -c pm disable com.amazon.dialservice"
adb shell "su -c pm disable com.amazon.cardinal"
adb shell "su -c pm disable com.amazon.tifobserver"
adb shell "su -c pm disable com.amazon.aca"
adb shell "su -c pm disable com.amazon.aria"
adb shell "su -c pm disable com.amazon.firehomestarter"
adb shell "su -c pm disable com.amazon.franktvinput"
adb shell "su -c pm disable com.amazon.hedwig"
adb shell "su -c pm disable com.amazon.naatyam"
adb shell "su -c pm disable com.amazon.alexa.externalmediaplayer.fireos"
adb shell "su -c pm disable com.amazon.ale"
adb shell "su -c pm disable com.amazon.avl.ftv"
adb shell "su -c pm disable com.amazon.ceviche"
adb shell "su -c pm disable com.amazon.dpcclient"
adb shell "su -c pm disable com.amazon.firebat"
adb shell "su -c pm disable com.amazon.firerestapiframework"
adb shell "su -c pm disable com.amazon.katoch"
adb shell "su -c pm disable com.amazon.tv.releasenotes"
adb shell "su -c pm disable com.amazon.tv.routing"
adb shell "su -c pm disable com.amazon.tahoe"
adb shell "su -c pm disable com.amazon.whisperjoin.middleware.np"
adb shell "su -c pm disable com.amznfuse.operatorredirection"
echo reboot recovery
adb shell reboot recovery
adb shell "mount -o rw /system"
adb shell "mv /system/etc/security/otacerts.zip //system/etc/security/old.otacerts.zip.old"
echo Debloating Amazon Apps...
adb shell "rm -r /system/priv-app/com.amazon.avod/"
adb shell "rm -r /system/priv-app/com.amazon.shoptv.client/"
adb shell "rm -r /system/priv-app/android.amazon.perm/"
adb shell "rm -r /system/priv-app/com.amazon.ags.app/"
adb shell "rm -r /system/priv-app/com.amazon.android.marketplace/"
adb shell "rm -r /system/priv-app/com.amazon.awvflingreceiver/"
adb shell "rm -r /system/priv-app/com.amazon.bueller.music/"
adb shell "rm -r /system/priv-app/com.amazon.bueller.notification/"
adb shell "rm -r /system/priv-app/com.amazon.device.crashmanager/"
adb shell "rm -r /system/priv-app/com.amazon.device.messaging/"
adb shell "rm -r /system/priv-app/com.amazon.device.messaging.sdk.internal.library/"
adb shell "rm -r /system/priv-app/com.amazon.device.messaging.sdk.library/"
adb shell "rm -r /system/priv-app/com.amazon.device.sync/"
adb shell "rm -r /system/priv-app/com.amazon.device.sync.sdk.internal/"
adb shell "rm -r /system/priv-app/com.amazon.kindle.cms/"
adb shell "rm -r /system/priv-app/com.amazon.kso.blackbird/"
adb shell "rm -r /system/priv-app/com.amazon.ods.kindleconnect/"
adb shell "rm -r /system/priv-app/com.amazon.providers/"
adb shell "rm -r /system/priv-app/com.amazon.providers.contentsupport/"
adb shell "rm -r /system/priv-app/com.amazon.recess/"
adb shell "rm -r /system/priv-app/com.amazon.securitysyncclient/"
adb shell "rm -r /system/priv-app/com.amazon.sharingservice.android.client.proxy/"
adb shell "rm -r /system/priv-app/com.amazon.sync.provider.ipc/"
adb shell "rm -r /system/priv-app/com.amazon.sync.service/"
adb shell "rm -r /system/priv-app/com.amazon.tv.legal.notices/"
adb shell "rm -r /system/priv-app/com.amazon.tv.support/"
adb shell "rm -r /system/priv-app/com.amazon.webview/"
adb shell "rm -r /system/priv-app/com.amazon.platform.fdrw/"
adb shell "rm -r /system/priv-app/com.android.managedprovisioning/"
adb shell "rm -r /system/priv-app/com.amazon.device.bluetoothdfu/"
adb shell "rm -r /system/priv-app/com.amazon.tv.fw.metrics/"
adb shell "rm -r /system/priv-app/com.amazon.device.logmanager/"
adb shell "rm -r /system/priv-app/com.amazon.dcp/"
adb shell "rm -r /system/priv-app/com.amazon.dcp.contracts.framework.library/"
adb shell "rm -r /system/priv-app/com.amazon.device.software.ota/"
adb shell "rm -r /system/priv-app/com.amazon.device.software.ota.override/"
adb shell "rm -r /system/priv-app/com.amazon.android.service.networkmonitor/"
adb shell "rm -r /system/priv-app/com.amazon.tmm.tutorial/"
adb shell "rm -r /system/priv-app/com.amazon.tv.csapp/"
adb shell "rm -r /system/priv-app/com.amazon.bueller.photos/"
adb shell "rm -r /system/priv-app/com.amazon.vizzini/"
adb shell "rm -r /system/priv-app/com.amazon.logan/"
adb shell "rm -r /system/priv-app/com.amazon.tv.nimh/"
adb shell "rm -r /system/priv-app/com.ivona.tts.oem/"
adb shell "rm -r /system/priv-app/com.ivona.orchestrator/"
adb shell "rm -r /system/priv-app/com.amazon.device.sale.service/"
adb shell "rm -r /system/priv-app/com.amazon.alexashopping/"
adb shell "rm -r /system/priv-app/com.amazon.ftv.glorialist/"
adb shell "rm -r /system/priv-app/com.amazon.tv.livetv/"
adb shell "rm -r /system/priv-app/com.amazon.wifilocker/"
adb shell "rm -r /system/priv-app/com.amazon.ssdpservice/"
adb shell "rm -r /system/priv-app/com.amazon.alta.h2clientservice/"
adb shell "rm -r /system/priv-app/com.amazon.dialservice/"
adb shell "rm -r /system/priv-app/com.amazon.cardinal/"
adb shell "rm -r /system/priv-app/com.amazon.tifobserver/"
adb shell "rm -r /system/priv-app/com.amazon.aca/"
adb shell "rm -r /system/priv-app/com.amazon.aria/"
adb shell "rm -r /system/priv-app/com.amazon.franktvinput/"
adb shell "rm -r /system/priv-app/com.amazon.hedwig/"
adb shell "rm -r /system/priv-app/com.amazon.naatyam/"
adb shell "rm -r /system/priv-app/com.amazon.alexa.externalmediaplayer.fireos/"
adb shell "rm -r /system/priv-app/com.amazon.ale/"
adb shell "rm -r /system/priv-app/com.amazon.avl.ftv/"
adb shell "rm -r /system/priv-app/com.amazon.ceviche/"
adb shell "rm -r /system/priv-app/com.amazon.dpcclient/"
adb shell "rm -r /system/priv-app/com.amazon.firebat/"
adb shell "rm -r /system/priv-app/com.amazon.firerestapiframework/"
adb shell "rm -r /system/priv-app/com.amazon.katoch/"
adb shell "rm -r /system/priv-app/com.amazon.tv.releasenotes/"
adb shell "rm -r /system/priv-app/com.amazon.tv.routing/"
adb shell "rm -r /system/priv-app/com.amazon.tahoe/"
adb shell "rm -r /system/priv-app/com.amazon.whisperjoin.middleware.np/"
adb shell "rm -r /system/priv-app/com.amznfuse.operatorredirection/"
adb shell "rm -r /system/priv-app/com.amazon.imdb.tv.android.app/"
echo Removing any added System Components from Amazon App Updates...
adb shell "rm -r /data/app/com.amazon.aca-1/"
adb shell "rm -r /data/app/com.amazon.ags.app-1/"
adb shell "rm -r /data/app/com.amazon.alexashopping-1/"
adb shell "rm -r /data/app/com.amazon.amazonvideo.livingroom.firetv-1/"
adb shell "rm -r /data/app/com.amazon.appaccesskeyprovider-1/"
adb shell "rm -r /data/app/com.amazon.aria-1/"
adb shell "rm -r /data/app/com.amazon.avl.ftv-1/"
adb shell "rm -r /data/app/com.amazon.avod-1/"
adb shell "rm -r /data/app/com.amazon.bueller.music-1/"
adb shell "rm -r /data/app/com.amazon.cardinal-1/"
adb shell "rm -r /data/app/com.amazon.firebat-1/"
adb shell "rm -r /data/app/com.amazon.ftv.glorialist-1/"
adb shell "rm -r /data/app/com.amazon.hedwig-1/"
adb shell "rm -r /data/app/com.amazon.katoch-1/"
adb shell "rm -r /data/app/com.amazon.kso.blackbird-1/"
adb shell "rm -r /data/app/com.amazon.shoptv.client-1/"
adb shell "rm -r /data/app/com.amazon.tahoe-1/"
adb shell "rm -r /data/app/com.amazon.tv.launcher-1/"
adb shell "rm -r /data/app/com.amazon.tv.livetv-1/"
adb shell "rm -r /data/app/com.amazon.tv.ottssocompanionapp-1/"
adb shell "rm -r /data/app/com.amazon.tv.releasenotes-1/"
adb shell "rm -r /data/app/com.amazon.aca-2/"
adb shell "rm -r /data/app/com.amazon.ags.app-2/"
adb shell "rm -r /data/app/com.amazon.alexashopping-2/"
adb shell "rm -r /data/app/com.amazon.amazonvideo.livingroom.firetv-2/"
adb shell "rm -r /data/app/com.amazon.appaccesskeyprovider-2/"
adb shell "rm -r /data/app/com.amazon.aria-2/"
adb shell "rm -r /data/app/com.amazon.avl.ftv-2/"
adb shell "rm -r /data/app/com.amazon.avod-2/"
adb shell "rm -r /data/app/com.amazon.bueller.music-2/"
adb shell "rm -r /data/app/com.amazon.cardinal-2/"
adb shell "rm -r /data/app/com.amazon.firebat-2/"
adb shell "rm -r /data/app/com.amazon.ftv.glorialist-2/"
adb shell "rm -r /data/app/com.amazon.hedwig-2/"
adb shell "rm -r /data/app/com.amazon.katoch-2/"
adb shell "rm -r /data/app/com.amazon.kso.blackbird-2/"
adb shell "rm -r /data/app/com.amazon.shoptv.client-2/"
adb shell "rm -r /data/app/com.amazon.tahoe-2/"
adb shell "rm -r /data/app/com.amazon.tv.launcher-2/"
adb shell "rm -r /data/app/com.amazon.tv.livetv-2/"
adb shell "rm -r /data/app/com.amazon.tv.ottssocompanionapp-2/"
adb shell "rm -r /data/app/com.amazon.tv.releasenotes-2/"
adb shell "rm -r /data/app/com.amazon.imdb.tv.android.app*/"
adb shell "mv /etc/security/otacerts.zip /etc/security/old.otacerts.zip.old"
adb shell "rm -r /system/media/alarms/"
adb shell "rm -r /system/media/notifications/"
adb shell "rm -r /system/media/ringtones/"
echo Remove Amazon Launcher...
adb push Markus-TWRP.zip /sdcard/Markus-TWRP.zip
adb shell twrp install /sdcard/Markus-TWRP.zip
adb shell reboot
Click to expand...
Click to collapse
I've been trying to do this with mine. I installed a new launcher on my Fire TV 2nd gen (sloane) and disabled the amazon launcher. After I reboot, not it just gets stuck booting. I can get back to twrp and reflash, but after I disable the amazon launcher it still won't go past the amazon fire tv logo.
sturner83 said:
I've been trying to do this with mine. I installed a new launcher on my Fire TV 2nd gen (sloane) and disabled the amazon launcher. After I reboot, not it just gets stuck booting. I can get back to twrp and reflash, but after I disable the amazon launcher it still won't go past the amazon fire tv logo.
Click to expand...
Click to collapse
Only tested on TV Stick 2 and 4k.
Do you have flashed my zip?
You must wait for twrp after
echo reboot recovery
adb shell reboot recovery
In my script.
This is only a example , you must Customizing it.
Check my github Page for full Script
0815hoffi said:
Only tested on TV Stick 2 and 4k.
Do you have flashed my zip?
You must wait for twrp after
echo reboot recovery
adb shell reboot recovery
In my script.
This is only a example , you must Customizing it.
Check my github Page for full Script
Click to expand...
Click to collapse
I'm not using your zip. I'm disabling manually for now. I only disabled the amazon launcher.
You must disable
adb shell "pm disable-user --user 0 com.amazon.tv.launcher"
wait 5 seconds
adb shell "pm disable-user --user 0 com.amazon.firehomestarter"
To get Custom Launcher working.
To restore without reflash:
adb shell "pm enable com.amazon.firehomestarter"
adb shell "pm enable com.amazon.tv.launcher
0815hoffi said:
You must disable
adb shell "pm disable-user --user 0 com.amazon.tv.launcher"
wait 5 seconds
adb shell "pm disable-user --user 0 com.amazon.firehomestarter"
To get Custom Launcher working.
To restore without reflash:
adb shell "pm enable com.amazon.firehomestarter"
adb shell "pm enable com.amazon.tv.launcher
Click to expand...
Click to collapse
Thanks. I wasn't disabling com.amazon.firehomestarter. Works great after that.
Can you post a link to your github?
https://github.com/0815hoffi/FireTV-2k-4k-debloat
0815hoffi said:
https://github.com/0815hoffi/FireTV-2k-4k-debloat
Click to expand...
Click to collapse
Apologies for bumping an old post. Have you seen anybody who has updated your fine work for a firetv2 (sloane)? I have disabled and removed the same files, but can't use the settings. Any APK for settings seem to be for sticks not the old box.
I don't have the skill level to do the required work.
Thanks!
Old FW?
Update to FW 5.2.7.6 or newer and it should work.
Also you must grant root access for the settings App..
0815hoffi said:
Also you must grant root access for the settings App..
Click to expand...
Click to collapse
made it work with
Settings apk Fire TV 2 on Later Fire OS versions
I saw an old Thread about installing a Stock Settings Apk on Fire TV but sadly it doesn't work on new versions, I'm looking to do this because I want to be able to access settings without needing to go into Fire TV launcher and I want to have...
forum.xda-developers.com
You posted an apk and a cmd line to adb. Thanks!
I have OS 5.2.7.7 because im dumb and updated when i didnt know anything about rooting/custom launchers/adb etc. Now i know a bit, and im just wondering if this update that now is trying to OTA on my 2nd gen box will ruin anything further or is it strcly UI update? Or is amazon going to sneak some stuff in to break things again? I am already on a ****ing **** firmware and stuck with what i got so I dont want to further ruin this and update.
Also, still searching for a way to block oTA on OS5 via adb. If anyone knows how let me know but ill be searching the net for a way as we speak.
adb shell "pm disable-user --user 0 com.amazon.tv.forcedotaupdater.v2"
adb shell "pm disable-user --user 0 com.amazon.device.software.ota"
adb shell "pm disable-user --user 0 com.amazon.device.software.ota.override"
With root:
adb shell reboot recovery
adb shell "mount -o rw /system"
adb shell "mv /system/etc/security/otacerts.zip //system/etc/security/old.otacerts.zip.old"
If you want to do a Factory reset , first you must move old.otacerts.zip.old back to otacerts.zip.
If you forgot that you can't pass initial Setup after reset.
0815hoffi said:
adb shell "pm disable-user --user 0 com.amazon.tv.forcedotaupdater.v2"
adb shell "pm disable-user --user 0 com.amazon.device.software.ota"
adb shell "pm disable-user --user 0 com.amazon.device.software.ota.override"
With root:
adb shell reboot recovery
adb shell "mount -o rw /system"
adb shell "mv /system/etc/security/otacerts.zip //system/etc/security/old.otacerts.zip.old"
If you want to do a Factory reset , first you must move old.otacerts.zip.old back to otacerts.zip.
If you forgot that you can't pass initial Setup after reset.
Click to expand...
Click to collapse
thank you. Does the new UI come to OS5? Specially 5.2.7.7?
0815hoffi said:
adb shell "pm disable-user --user 0 com.amazon.tv.forcedotaupdater.v2"
adb shell "pm disable-user --user 0 com.amazon.device.software.ota"
adb shell "pm disable-user --user 0 com.amazon.device.software.ota.override"
With root:
adb shell reboot recovery
adb shell "mount -o rw /system"
adb shell "mv /system/etc/security/otacerts.zip //system/etc/security/old.otacerts.zip.old"
If you want to do a Factory reset , first you must move old.otacerts.zip.old back to otacerts.zip.
If you forgot that you can't pass initial Setup after reset.
Click to expand...
Click to collapse
This didn’t work for me. Using adbLink on Windows 10 with 5.2.7.7 firmware. The ADB gave me an error.
Also, Amazon just released an OTA update called Components just yesterday. Do you know anything about it? Does it break anything? Can I still root?
And anyway, this point, does it even matter anymore? I’m already updated to every single latest update available on my Sloan box 2nd gen. I can’t do much root wise and I’m stuck with a bull**** rom and Home Screen. Can’t even add a custom launcher as Amazon also broke this with their firmware updates...
Pm disable commands are blocked vy Amazon with 5.2.7.7.
Since 5.2.7.7 you need Root .
Anyone else having an issue trying to remove certain apps from their device like YouTube or Netflix or whatever? I installed BusyBox by osmosis and the debloater terminal emulator by veez and I'm using termux but I keep getting this error
-h show this message
ebloat -d com.google.android.youtube <
com.google.android.youtube is not a system app
error: Use "debloat -d -h" for help
And when I do the -l option I get this
:/data/data/com.termux/files/home # debloat -l
Debloater (Terminal Emulator) v17.3.3(76)
by veez21
Usage: debloat
or: debloat [options]...
Options:
-nc removes ANSI escape codes
-l [app|priv-app|vendor] list system apps
-d [app label|app folder name] uninstall apps (use debloat -d -h)
-i [file] import config from file
-e [file] export current settings
-h show this message
1|:/data/data/com.termux/files/home #
I used ADB AppControl to debloat the apps on my OP 9.
[TOOL] ADB AppControl 1.8.0 🚀 Ultimate App Manager & Debloat Tool + Tweaks
ADB AppControl 🚀 Root is not required. Works with any Android device. Can do almost everything you dreamed about with applications. ADB AppControl - the desktop program, that will allow you to easily manage applications on your android device...
forum.xda-developers.com
Give it a shot.
Awesome thanks man!
I use debloater and don't have any issues, but I run it without options and do it interactively. The ones I debloat regularly are in a .txt file so I just enter "i" at the menu, and for anything else I navigate through the prompts.