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

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

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

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

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

Code: /data/entware-ng/bin/busybox passwd root

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

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

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

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

Code: sh /data/entware-ng/home/root/sysinit

Code: pip install transmissionrpc pip install cherrypy

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

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

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

Code: su cd /opt sh ./start.sh cd /opt/etc/ssh vi ./sshd_config

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 itI've addapted this guide from a few github projects , but that likely means some commands/steps are actually useless on the shield:(will add other sources later)(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 ROOTADB set up on PCBusybox : http://www.apkmirror.com/apk/jrummy-...x-for-android/ Rom Toolbox Lite : Not on apk mirror, so side load from your favorite placeFor 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 controllerInstall 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):We've set up our staging area, and created a new home directory.Now lets install EntwareNow lets install a new Busybox and WgetThis 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)Create Passwd fileOPTIONAL: 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 RootNow let's create a script that will initialize Entware-ng after rebootNow lets create a start script that calls the initialize script we just made, but also returns a shell in the new environmentNow, lets install different services. These are optional, and there are tons more, but this will get transmission/sickbeard/ssh goingCopy the start.sh and sysinit to the home environmentStart the new environmentInstall a few pre-reqs for sickbeardCreate 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.OPTIONAL - If you want to use SSH we need to generate keysNow 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.To edit this, on the shield (Rom Toolbox Lite has a terminal emulator) runYou'll have to configure your transmission settings, but they're located/opt/etc/transmission/settings.jsonOn 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 rootReboot and you should be able to connect via SSH, and have