HOWTO: Prevent Oppo driver CD from mounting - Oppo N3

It annoys the hell out of me when I plug the phone in by USB and it mounts a pointless virtual CD drive with the drivers on. You can disable it on your own PC, but when you plug in to someone else's having it pop up and autoplay the driver installer is often unwelcome. There's probably a better way to do this, but it works for me
Steps:
1) Have root, a working ADB, and backups (nandroid)
2) adb shell
Code:
su
mount -o remount,rw /system
cd /system/etc
cp init.qcom.post_boot.sh init.qcom.post_boot.sh.bak
echo setprop sys.usb.config mtp,adb >> init.qcom.post_boot.sh
If you need to get the cd back temporarily then switch to charge mode and back via the notification area. You'll then be stuck with the CD until the next reboot.
To permanently remove it:
Code:
su
mount -o remount,rw /system
cd /system/etc
cp init.qcom.post_boot.sh init.qcom.post_boot.sh.bak #if you didn't already do this
echo echo \"\" \> /sys/class/android_usb/f_mass_storage/lun/file >> init.qcom.post_boot.sh
echo chmod 440 /sys/class/android_usb/f_mass_storage/lun/file >> init.qcom.post_boot.sh
To get the CD back this time, you will need to run
Code:
chmod 660 /sys/class/android_usb/f_mass_storage/lun/file
then switch to charge-only and back.
Note that chances are you'll want to do this because the only computer you're on doesn't have Oppo ADB drivers installed, so you will have to do this from a terminal emulator, which will not be fun.

Related

Zipalign question

Hi all, this thread was for the G1, will this work for the Desire also?
To "install" this, just adb push the two files in the zip below onto your phone with:
Code:
adb shell mount -o remount,rw /system
adb push zipalign /system/bin
adb push zipalign_apks /system/sd/zipalign_apks.sh
adb shell chmod 755 /system/bin/zipalign /system/sd/zipalign_apks.sh
adb shell mount -o remount,ro /system
Then anytime you want to run the script just do:
Code:
adb shell sh /system/sd/zipalign_apks.sh
Or in terminal:
Code:
su
sh /system/sd/zipalign_apks.sh
http://forum.xda-developers.com/attachment.php?attachmentid=253174&d=1259952938

Fix Permitions from Terminal ;) (Help apps not to force close))

To install from CMD - Terminal
1. Download the fxps script. http://www.mediafire.com/?o525y4b4dewdvor
2. adb shell mount -o rw,remount /dev/block/stl6 /system
3. adb push fxps /system/bin/fxps
4. adb shell busybox chmod 755 /system/bin/fxps
5. adb shell reboot
To Run it
1. adb shell fxps
2 adb shell reboot
To install from Terminal Emulator
"Download the fxps script and move it in your SD Card" http://www.mediafire.com/?o525y4b4dewdvor
$ su
# adb shell mount -o rw,remount /dev/block/stl6 /system (Puts the system in R/W mode)
# cp /sdcard/fxps /system/bin/fxps (Copys the script from SD Card to bin directory)
# chmod 755 /system/bin/fxps (Gives root access to the script)
# reboot
To Run it open the Terminal Emulator and enter
$ su
# fxps (It will start... When it finish reboot)
# reboot
This Script is not mine i just find it and gine it to you in simple way
Thanks the Dev of this Script i hope to see it in Power Menu some day...
Great tutorial but AFAIK all available recoveries have this built in as an option dont they?
nikkpap said:
...
$ su
# adb shell mount -o rw,remount /dev/block/stl6 /system (Puts the system in R/W mode)
...
Click to expand...
Click to collapse
should be
$ su
# mount -o rw,remount /dev/block/stl6 /system (Puts the system in R/W mode)
AcePolska said:
should be
$ su
# mount -o rw,remount /dev/block/stl6 /system (Puts the system in R/W mode)
Click to expand...
Click to collapse
Am I the only one who thought that the system-partition should be mounted from /dev/block/mtdblock3 ?
i believe it should be mtdblock3 or you can boot into recovery and just adb shell mount /system

How to root manually/without Windows

There is already an excellent write-up on how to use SuperOneClick to root your Optimus V.
Unfortunately, you may not have a Windows machine available to run the util, or your PC hates the LG drivers, or you may wish to control how you go about rooting your device.
Hence this short write-up which, obviously, relies on pieces I got from that other write-up.
I. Rooting your device
1. You still need ADB!
2. Download the LG Optimus V Tools package from http://nexus.zteo.com/projects/tools/
3. Unzip it
4. Command-line:
Code:
adb push psneuter /data/local/tmp/
adb push su /data/local/tmp/
adb shell
cd /data/local/tmp
chmod 777 psneuter
chmod 777 su
./psneuter
5. You should be kicked out of the shell
6. Command-line:
Code:
adb shell
mount -o remount,rw -t yaffs2 /dev/block/mtdblock5 /system
cat /data/local/tmp/su > /system/bin/su
mount -o remount,ro -t yaffs2 /dev/block/mtdblock5 /system
(Oh look you are root!)
That's it. You now have permanent root access.
After rebooting your phone, adb should be back to logging you in as a regular user but typing "su" will do the trick.
Note: I realize that the version of SuperUser.apk that comes with SuperOneClick might be re-usable here. I haven't had any success with it but you may.
II. Flashing a new ROM
1. After rooting your device, obviously...
2. Get an image for the ROM you wish to flash...
Currently, my favourite one is a fairly recent version of Zefie's CM7.
You can find it by googling "update-cm-7-04282011-NIGHTLY-thunderc-Xionia-signed.zip" -- I will refer to it, below, as <your_rom_zip_file>
3. Get a minimum Google Apps package for flashing as well.
Here, I would google "gapps-gb-20110325-signed.zip" -- I will refer to it, below, as <your_gapps_zip_file>
3. Command-line:
Code:
adb push flash_recovery /data/local/tmp/
adb push recovery.img /sdcard/
adb push Debug-FormatSYSTEM.zip /sdcard/
adb push <your_rom_zip_file> /sdcard/
adb push <your_gapps_zip_file> /sdcard/
adb shell
su
chmod 777 /data/local/tmp/flash_recovery
/data/local/tmp/flash_recovery /sdcard/recovery.img
reboot recovery
4. In recovery: Flash Debug-FormatSYSTEM.zip
5. In recovery: Wipe cache and dalvik-cache
6. In recovery: Flash <your_rom_zip_file> -- this will take a while
7. Do not reboot!
8. In recovery: Flash <your_gapps_zip_file>
9. Now, reboot.
10. Let your phone think about life for a few minutes
11. Select "Skip" when your phone asks you to create/enter your account info
12. Launch the market; now, enter your main account information
Hey first of all let me tell you that I appreciate this guide. Now my problem is that I am such a noob that I may be doing this wrong.I download the file to my optimus.Then in an explorer I extract it, correct? After that once I put in the first line of command on terminal emulator I get an error that says "adb: permission denied". Please help this guide is my last resort.Whatever I do I can not root through windows.It would be nice if you could explain in more detail every step. Thanks!
help
can u please add a little more detail thank u very much appreciated.
SouthParkFan15:
adb is a tool that you run on your computer; it is available for Windows, Mac OS X and Linux. It is part of the Google SDK.
thizizjohnny:
Could you give me a little more detail regarding what detail you are interested in?
How do I unzip?.. is extract the same thing? I'm running Linux mint 10. How do I get adb? Excuse my noobness.
Sent from my VM670 using XDA App
Oh and one last thing.. does this work on android version 2.2.1?
Sent from my VM670 using XDA App
Yes this works with 2.2.1.
On Linux Mint, you can use the package manager or the unzip command in a terminal window.
apk:
Download the SDK at http://developer.android.com/sdk/index.html
Install it, then run "android" and select "Install platform tools"
I finally got adb on my system, but when I type in "adb devices" nothing comes up and when I do any command that involves the phone i get "error:device not found".Yes I have usb debugging on and yes I have all the right drivers installed and yes I have tried rebooting a million times, and no my computer has never recognized my phone the way it should.Let me also point out that though pdanet or droid explorer they can't find my device. Help please I'm desperate!
Oh, my. Sorry to read that.
Problem is, in 2.2.x, the exploits that give you root access rely on ADB itself so you couldn't be more out of luck.
On second thought...this may seem a bit weird but there may be a way. I have to think about it. It would involve using a file manager that agrees to "see" /data/local/tmp, running psneuter from there and keeping our fingers crossed. I'll keep you updated.
Alright thanks cyansmoke! Keep me informed.
I ran all of the steps for rooting and I didn't get one error. It didn't seem to work though. When I launch adb again after rebooting my phone I get permission denied when I try to run su.
Here is the cap from my command line. I have no idea why it didn't take.
C:\phone\LGOptimusVTools>adb shell
$ cd /data/local/tmp
cd /data/local/tmp
$ chmod 777 psneuter
chmod 777 psneuter
$ chmod 777 su
chmod 777 su
$ ./psneuter
./psneuter
property service neutered.
killing adbd. (should restart in a second or two)
C:\phone\LGOptimusVTools>adb shell
# mount -o remount,rw -t yaffs2 /dev/block/mtdblock5 /system
mount -o remount,rw -t yaffs2 /dev/block/mtdblock5 /system
# cat /data/local/tmp/su > /system/bin/su
cat /data/local/tmp/su > /system/bin/su
# mount -o remount,ro -t yaffs2 /dev/block/mtdblock5 /system
mount -o remount,ro -t yaffs2 /dev/block/mtdblock5 /system
# exit
exit
C:\phone\LGOptimusVTools>adb shell
$ su
su
su: permission denied
$
It's possible that you have another su in your path that takes precedence.
Please try typing:
/system/bin/su
Hey, do you know if there is a way to upgrade my device to froyo 2.2.2? It's currently 2.2.1 and whenever I go to update system it says something like "Your system is up to date".Incase you have forgotten I have the optimus v that can't establish connections with the computer.So what I could do?I'm thinking that If I do that then maybe it could fix all of my problems (or some of them).Thanks
I don't think that it will help you no.
OK it's taking longer than I thought because my wife's LGV, after I restored it to stock, decided that it would not allow psneuter anymore.
Thus, I will need you to run these commands for me and let me know how that went:
1. First, copy psneuter to the root of your SD Card.
2. Then, download Terminal Emulator from the market
3. Run Terminal Emulator, type:
Code:
cp /sdcard/psneuter /data/local/tmp/
chmod 777 /data/local/tmp/psneuter
/data/local/tmp/psneuter
Now, if we are lucky, you should get kicked out of the terminal app (I know it's weird but there is a claim that it goes through adb(!))
Restart the terminal emulator. If we are double-lucky, your prompt should have changed from '$' to '#'
Fingers crossed. Still surprised to hear that terminal emulator would go through adb. No, let me rephrase that: I am moderately surprised, in fact, considering the limitations put on non-rooted apps.
After I put psneuter on the root of my sdcard.I go to terminal emulator and put in the first code and it says "cp: permission denied".Any suggestions?
SouthParkFan15 said:
After I put psneuter on the root of my sdcard.I go to terminal emulator and put in the first code and it says "cp: permission denied".Any suggestions?
Click to expand...
Click to collapse
Ah, my bad, no "cp" by default.
New instructions:
Code:
cat /sdcard/psneuter > /data/local/tmp/
chmod 777 /data/local/tmp/psneuter
/data/local/tmp/psneuter
After I put in the first code I get an error message saying "cannot create /data/local/tmp/: is a directory".
*facepalm*
Of course I should have written:
Code:
cat /sdcard/psneuter > /data/local/tmp/psneuter
I put in "cat /sdcard/psneuter > /data/local/tmp/psneuter" and I get an error message saying "cannot create /data/local/tmp/psneuter: directory nonexistent".
Any suggestions?

[NST]Manual Rooting, ADB, Gapps (1.1), etc

Please, dont post on this thread, continue to use [NST]MinimalTouch 1.1beta5
Recomendation, Paste the commands one by one.
I am not responsible for any damage your nook suffers.
Index
Automatic Method:
[NST]MinimalTouch 1.1beta5
[NST]Touch-Formatter
Manual Tutos:
Skip registration (OOBE)
Making the manual process LESS PAINFULL
Setting up adb manually on the nook touch
Setting up root access on NST through adb and installing busybox
Improve battery life(testing)
Backup bookmarks and annotations(testing)
Enable non market app installs
Installing XorZone's B&N button modifier
Change the powered off screen image
Blocking OTA updates
Installing new fonts for your nook (testing)
Installing Gapps (+launcher, etc)
Totally uninstall Gapps (my repack), unrooting, erasing and restoring
Interesting or useful specific apps or hacks for Nook Simple Touch
nook 1.1 update
Thanks to:
GabrialDestruir for his hard work, making easy to root the NST creating the Touchnooter (http://forum.xda-developers.com/showthread.php?t=1343143) (http://forum.xda-developers.com/showthread.php?t=1132693)
ros87 for the update on uramdisk and the how to modify boot/charging images and usb drivers. (http://forum.xda-developers.com/showthread.php?t=1337653) (http://forum.xda-developers.com/showpost.php?p=17882146&postcount=11) (http://forum.xda-developers.com/showpost.php?p=19342931&postcount=12)
XorZone for NookTouchTools and his jars, book button menu and the orientation Switch (http://forum.xda-developers.com/showthread.php?t=1289894)
nookdevs for noogie and making all this possible (http://nookdevs.com/NookColor_Rooting)
mali100 for the update on framework. (http://forum.xda-developers.com/showpost.php?p=19201466&postcount=352)
xboxexpert for the working market. (http://forum.xda-developers.com/showpost.php?p=15084704&postcount=51)
Kralik for his findings. (http://www.mobileread.com/forums/showthread.php?t=156539)
bonzer2u for OTA blocking. (http://forum.xda-developers.com/showpost.php?p=10973887&postcount=1)
traycold for his images (http://forum.xda-developers.com/showpost.php?p=17822468&postcount=9)
jerryfan2000 for Button savior (http://forum.xda-developers.com/showthread.php?t=865525)
OMGWTF_BBQ for the Button Savior eink friendly mod (http://forum.xda-developers.com/showthread.php?t=1250278)
TJay99 for the Simplistic Countdown Timer (http://forum.xda-developers.com/showthread.php?t=1290900)
mdall for tweaking the screen refresh (http://forum.xda-developers.com/showthread.php?t=1241419)
dark_hawk for adding the last step on the Gaps method + Fonts (method 1) (http://forum.xda-developers.com/showpost.php?p=19441352&postcount=33)
met67 for usb drivers http://forum.xda-developers.com/showpost.php?p=19339163&postcount=11
LastSilmaril for the bookmarks and annotations info (http://forum.xda-developers.com/showpost.php?p=19483661&postcount=67)
met67 for the permissions and ownership on Gapps (http://forum.xda-developers.com/showpost.php?p=19658259&postcount=109)
mali100 for portin CWM to NST (http://forum.xda-developers.com/showthread.php?t=1360994)
salsichad2 for pointing out that the X files where corrupt and his adw theme config (http://forum.xda-developers.com/showpost.php?p=19720053&postcount=139)
kneeldug for sugesting extra steps on the automatic tuto.
bisbal for helping me beta testing.
dobbing for the copy of the 1.1 update.
Setting up adb manually on the nook touch:
If you want to restore, wipe data, or reset your nook, FIRST read how to backup your anotations and then search on this post for: Totally uninstall Gapps (my repack), unrooting, erasing and restoring.
Download noogie, and burn it into an SD-card (http://www.multiupload.com/OFI609MP8V) use Win32DiskImage.exe.
Shut down the Nook Touch completely your NST http://www.multiupload.com/CJ981FWPJG
Insert the SD-card into your Nook, connect it to the pc and turn it on.
When the nook ends booting (you should see a rooted forever splash screen on it) wait 20 seconds, you should see a new drive named boot, if not, go to MiniTool Partition Wizard Home Edition look for a partition named boot and assign it a letter.
Open boot, and replace the uramdisk, with one of these (http://forum.xda-developers.com/showthread.php?t=1337653).
This tuto is all made for the Wifi-uramdisk, if you want to use the usb change all the "adb connect yourNSTip" into "adb devices".
If you finally want to use adb over usb, follow this to make the nook recognizable by adb http://forum.xda-developers.com/showpost.php?p=19342931&postcount=12 or install this http://forum.xda-developers.com/showpost.php?p=19339163&postcount=11.
Eject the nook from the pc and reboot the NST without the noogie SD-card.
Setting up root access on NST through adb and installing busybox:
Download java JKD http://www.oracle.com/technetwork/java/javase/downloads/index.html
Download the android sdk (I recommend zipped) and extract it on C so that it looks like C:/android-sdk-windows
Open the SDK manager and update it, install for example the 2.1 platform, etc, it will automatically create /platform-tools
Download Superuser (http://nookdevs.com/images/a/a9/Superuser.zip), su (http://nookdevs.com/images/e/e0/Su.zip), and busybox (http://bit.ly/s1s7FZ or http://benno.id.au/android/busybox), extract them on C:/android-sdk-windows/platform-tools
Connect your NST to your home Wi-Fi, and check its ip.
Open cmd and type:
Code:
cd C:/android-sdk-windows/platform-tools
adb connect yourNSTip
adb install Superuser.apk
adb push su /data/local/
adb shell
cd /system/bin
mount -o remount,rw /dev/block/mmcblk0p5 /system
cat /data/local/su > su
chmod 6755 su
reboot
Now we will install buysbox.
Close cmd and reopen it, When your nook reboots type:
Code:
cd C:/android-sdk-windows/platform-tools
adb connect yourNSTip
adb shell
su
mount -o remount,rw /dev/block/mmcblk0p5 /system
exit
exit
adb push busybox /data/local
adb shell
su
cd /system
mkdir /system/xbin
cd /data/local
chmod 755 busybox
/data/local/busybox cp /data/local/busybox /system/xbin/busybox
cd /system/xbin
chmod 755 busybox
./busybox --install -s /system/xbin
rm /data/local/busybox
reboot
Improve battery life (testing)
As the Nook Touch hasn't got a overclocking kernel, and isn't near, as it isn't convenient to change or modify the cpu governor (it works in an unusual way), as I don't like too many apks bloating my nook, there is something that seems to be working for me, underclocking it manually of course .
The Nook has 3 stock frequencys, 300, 600, 800, and a deepsleep state.
As this small monster is just an ereader, and the refresh rates of eink are painfully slow I didn't find the need for it going all the way to 800mhz I did this small trick:
Make a backup up clrbootcount.sh.
Open CMD and type:
Code:
cd C:/android-sdk-windows/platform-tools
adb connect yourNSTip
adb pull /system/bin/clrbootcount.sh
Now lets modify it:
Code:
adb shell
mount -o remount,rw /dev/block/mmcblk0p5 /system
echo "echo 300000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq" >> /system/bin/clrbootcount.sh
adb reboot
Check to see if the process was succesfull by typing this on cmd:
Code:
cd C:/android-sdk-windows/platform-tools
adb connect yourNSTip
adb shell
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
To return back to stock file, restore the file you backed up by pushing it back or use:
cd C:/android-sdk-windows/platform-tools
adb connect yourNSTip
adb shell
mount -o remount,rw /dev/block/mmcblk0p5 /system
sed -i '/echo/d' /system/bin/clrbootcount.sh
reboot
Click to expand...
Click to collapse
If the output is 300000, then it worked and now your nook won't go all the way to 800mhz, if you want to limit it to 600mhz, just change 300000 to 600000.
Backup bookmarks and annotations (Haven't tried it yet)
Bookmarks and annotations are saved in /data/data/com.bn.nook.reader.activities/databases/
To backup them open CMD and type:
Code:
cd C:/android-sdk-windows/platform-tools
adb connect yourNSTip
adb shell
mount -o remount,rw /dev/block/mmcblk0p5 /system
exit
adb pull /data/data/com.bn.nook.reader.activities/databases/ /bookmarks
To restore them after a reset open CMD and type:
Code:
cd C:/android-sdk-windows/platform-tools
adb connect yourNSTip
adb shell
mount -o remount,rw /dev/block/mmcblk0p5 /system
exit
adb push /bookmarks /data/data/com.bn.nook.reader.activities/databases/
Enable non market app installs:
Download sqlite3 (http://www.sqlite.org/sqlite-shell-win32-x86-3070900.zip) and extract it on C:/android-sdk-windows/platform-tools
Open cmd and type:
Code:
cd C:/android-sdk-windows/platform-tools
adb connect yourNSTip
adb shell
mount -o rw,remount -t ext2 /dev/block/mmcblk0p5 /system
exit
adb pull /data/data/com.android.providers.settings/databases/settings.db settings.db
sqlite3 settings.db "update secure set value=1 where name='install_non_market_apps';"
adb push settings.db /data/data/com.android.providers.settings/databases/settings.db
Installing XorZone's B&N button modifier (Jars for 1.1, for other system versions check thread)(as I call it)
Download the jars (http://forum.xda-developers.com/attachment.php?attachmentid=781948&d=1321243370) and NookTouchTools (http://forum.xda-developers.com/attachment.php?attachmentid=750222&d=1318646585) and extract the zips on C:/android-sdk-windows/platform-tools. (Thread: http://forum.xda-developers.com/showthread.php?t=1289894)
Then backup the original jars onto the SD-card.
Open CMD and type:
Code:
cd C:/android-sdk-windows/platform-tools
adb connect yourNSTip
adb shell
mount -o remount,rw /dev/block/mmcblk0p5 /system
cp -p /system/framework/android.policy.jar /sdcard
cp -p /system/framework/services.jar /sdcard
exit
Then let’s push the new ones in place and install NookTouchTools:
Code:
adb push android.policy.jar /system/framework/
adb push services.jar /system/framework/
adb install NookTouchTools-1.0b2.apk
This can also be done by Nooktouchtools, but this is a manual thread, so now we will delete calvick-cache and fix permissions:
Code:
adb shell
mount -o rw,remount -t ext2 /dev/block/mmcblk0p5 /system
chown root.root /system/framework/*
chmod 644 /system/framework/*
rm -R /data/dalvik-cache/*
reboot
Now open NookTouchTools and modify settings as you wish.
Change the powered off screen image
First, let’s make a copy of the original apk.
Open CMD and type:
Code:
cd C:/android-sdk-windows/platform-tools
adb connect yourNSTip
adb pull /system/framework/framework-res.apk
You will find this file on C:/android-sdk-windows/platform-tools.
Make a copy of the file and open it with 7zip (download it if you don’t have it http://www.7-zip.org/).
Look for and open res\drawable-mdpi\
Search for cold_boot_screen.png and replace it for whatever 800x600 image you want.
Search for cold_battery_low_boot_screen.png and again replace it for whatever 800x600 image you want.
Save the modified apk on C:/android-sdk-windows/platform-tools
Then we have to push the new file and fix permissions.
Code:
adb shell
mount -o remount,rw -t ext2 /dev/block/mmcblk0p5 /system
exit
adb push framework-res.apk /system/framework/
adb shell
chown root.root /system/framework/*
chmod 644 /system/framework/*
rm -R /data/dalvik-cache/*
reboot
If you have problems pushing the framework-res.apk because the NST reboots, or hangs, use this zip (http://nooter.googlecode.com/files/RestoreFramework.zip) in conjunction with CWM (http://forum.xda-developers.com/attachment.php?attachmentid=806435&d=1323121399). (Keep reading)
You must:
Open the zip and drop your original or modifyed framework-res.apk in /system/framework, inside the zip.
Copy it to the SD card where you have burnt CWM and flash it through it.
If you see any strange behavior restore your backed up copy.
On this post, there are some nice pictures to use, http://forum.xda-developers.com/showpost.php?p=17822468&postcount=9, I modified them a bit, making them 16 bit grayscale and 800x600, see attachments..
Blocking OTA updates:
To prevent future automatic updating and unrooting you can block OTA updates.
Open CMD and type:
Code:
cd C:/android-sdk-windows/platform-tools
adb connect yourNSTip
adb pull /data/data/com.bn.devicemanager/databases/devicemanager.db devicemanager.db
sqlite3 devicemanager.db
sqlite> update registry set value='manual' where name='com.bn.device.fota.mode';
sqlite> .q
adb push devicemanager.db /data/data/com.bn.devicemanager/databases/devicemanager.db
adb reboot
Installing new fonts for your nook
This first method works for Opera mini, for example, not for normal apps.
The second one for changing the official interface Font (testing)
The third one for changing the Fonts on the official reader app (testing)
1º method
First open CMD and make a copy of your fonts:
Code:
cd C:/android-sdk-windows/platform-tools
adb connect yourNSTip
adb shell
su
mount -o remount,rw /dev/block/mmcblk0p5 /system
adb pull /system/fonts
exit
Then add the new fonts.
Code:
adb push thenewfont /system/fonts
adb shell
su
chmod 4755 /system/fonts/*
2º method
3º method
Installing Gapps (+launcher, etc)
Market FULLY functional, My apps tab working and updating correctly, proof: http://forum.xda-developers.com/showpost.php?p=19602755&postcount=76
PC android market webpage working, proof:
{
"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"
}
dark_hawk's exprience.
My experience.
New packages, deleted all the unneeded, apks, not needed libraries, jars, etc.
You have four options:
Minimal Touch (Core Gapps (http://bit.ly/rQ3YNn))
Minimal Touch + NookColorTools (http://bit.ly/vUwXeb)
Minimal Touch + Extras (Core Gapps + Launcher + theme + Button savior + NookColorTools(http://bit.ly/skgHhe))
Everything is functional, Gmail, Gtalk, Market.
Instructions:
For this process to work, you will need to install busybox, so search for Setting up root access on NST through adb and installing busybox and go directly to installing busybox if you come from another method of installing Gapps.
Download Minimal Touch + Extras if you haven't got a launcher installed, and extract it on the C:/android-sdk-windows/platform-tools (root)
Download Minimal Touch if you already have a launcher installed, and extract it on the C:/android-sdk-windows/platform-tools (root)
First, make a backup of the files we will modify:
Code:
cd C:/android-sdk-windows/platform-tools
adb connect yourNSTip
adb shell
su
mount -o remount,rw /dev/block/mmcblk0p5 /system
adb pull /system/framework/framework.jar
adb pull /data/system/packages.xml
adb pull /system/build.prop
exit
exit
Second, lets start with the install process.
Open CMD and type:
Code:
cd C:/android-sdk-windows/platform-tools
adb connect yourNSTip
adb shell
su
mount -o remount,rw /dev/block/mmcblk0p5 /system
exit
exit
adb push data /data
adb push system /system
If the NST reboots before finishing the process, it may happen, start again where you left it.
Now lets fix permissions and ownership.
Code:
adb shell
su
mount -o remount,rw /dev/block/mmcblk0p5 /system
chown system.system /data/app/*
chmod 644 /data/app/*
chmod 644 /system/app/*
chmod 644 /system/etc/permissions/*
chmod 644 /system/framework/*
chmod 644 /system/lib/*.so
reboot
When the NST reboots select adw launcher as your predefined launcher (If you haven't already), log in on YouTube (click settings, my channel) and log in the Gmail account you used on YouTube, both accounts must be the same.
It will fail to sync and force close.
Open Cmd and type:
Code:
cd C:/android-sdk-windows/platform-tools
adb connect yourNSTip
adb shell
su
mount -o remount,rw /dev/block/mmcblk0p5 /system
sed -i '/uid.system/,/perms/{/uid.system/b;/perms/b;d}' /data/system/packages.xml
reboot
Gmail should already work and sync.
Open Cmd and type:
Code:
cd C:/android-sdk-windows/platform-tools
adb connect yourNSTip
adb shell
su
mount -o remount,rw /dev/block/mmcblk0p5 /system
echo "ro.config.nocheckin=no" >> /system/build.prop
reboot
Let android fully load.
Open Market, it will try to connect, if it can't retry until it does (it will), if it doesn’t, you haven’t got the Wi-Fi on .
Market should be fully functional now.
After this, manually by deleting it and its data, or through your launcher, or through Nook Color Tools, you can unistall YouTube.apk, it is no longer needed, and autostarts everytime wasting resources.
Now lets make protected apps show in market
Open CMD and type:
Code:
cd C:/android-sdk-windows/platform-tools
adb connect yourNSTip
adb shell
su
mount -o remount,rw /dev/block/mmcblk0p5 /system
sed -i 's/^.*ro.build.fingerprint.*$/ro\.build\.fingerprint=verizon\/voles\/sholes\/sholes:2\.1-update1\/ESE81\/29593:user\/release-keys/' /system/build.prop
reboot
Protected apps wont appear inmediatly, the market must check your new fingerprint and that happens at midnight, so you can wait 1 day or:
Check you have correctly changed the fingerprint, change the time to 23:50 on your Nook Touch and wait till "midnight" wait a bit more, and protected apps should appear.
Totally uninstall Gapps (my repack), unrooting, erasing and restoringTesting
Open CMD and type:
Code:
cd C:/android-sdk-windows/platform-tools
adb connect yourNSTip
adb shell
su
mount -o remount,rw /dev/block/mmcblk0p5 /system
adb push /system/framework/framework.jar
adb push /data/system/packages.xml
adb push /system/build.prop
rm /data/app/YouTube.apk
rm -R /data/data/com.google.android.youtube
rm /system/lib/libgtalk_jni.so
rm /system/lib/libinterstitial.so
rm /system/framwork/com.google.android.gtalkservice.jar
rm /system/etc/permissions/com.google.android.datamessaging.xml
rm /system/etc/permissions/com.google.android.gtalkservice.xml
rm /system/app/Gmail.apk
rm -R /data/data/com.google.android.gm
rm /system/app/GmailProvider.apk
rm -R /data/data/com.google.android.providers.gmail
rm /system/app/GoogleApps.apk
rm -R /data/data/com.google.android.googleapps
rm /system/app/GoogleCheckin.apk
rm -R /data/data/com.google.android.server.checkin
rm /system/app/GoogleSubscribedFeedsProvider.apk
rm -R /data/data/com.google.android.providers.subscribedfeeds
rm /sytem/app/gtalkservice.apk
rm -R /data/data/com.google.android.apps.gtalkservice
rm /system/app/Talk.apk
rm -R /data/data/com.google.android.talk
rm /sytem/app/TalkProvider.apk
rm -R /data/data/com.google.android.providers.talk
rm /sytem/app/Vending.apk
rm -R /data/data/com.android.vending
reboot
Unrooting:
Open CMD and type:
Code:
cd C:/android-sdk-windows/platform-tools
adb connect yourNSTip
adb shell
mount -o remount,rw /dev/block/mmcblk0p5 /system
rm -R /sytem/app/Superuser.apk
rm -R /data/app/Superuser.apk
rm -R /sytem/bin/su
rm -R /sytem/xbin
reboot
Erasing and restoring:
After this, if what you want is to have a clean nook and you didnt make a backup before rooting you have to:
Use nookRestore to restore /system (http://forum.xda-developers.com/showthread.php?t=1289233), or using adb do:
Open CMD and type:
Code:
cd C:/android-sdk-windows/platform-tools
adb connect yourNSTip
adb shell
echo -n -e "\x08\x00\x00\x00" > /rom/devconf/BootCnt
reboot
Use on settings, device, Erase and Deregistered to wipe /data
(If it doesn’t let you, force it shutting down your nook, then starting it up, and when the screen flickers press right and left bottom buttons, hold for 5+ seconds).
Update to 1.1 (http://www.barnesandnoble.com/u/Software-Updates-NOOK-Simple-Touch/379003175/)
Interesting or useful specific apps or hacks for Nook Simple Touch
Calendar Pad (https://market.android.com/details?id=jp.ne.gate.calpad)
Book button menu (http://forum.xda-developers.com/showthread.php?t=1280509)
Button Savior (http://forum.xda-developers.com/showpost.php?p=9669486&postcount=1)
Button Savior eink friendly mod (http://forum.xda-developers.com/showthread.php?t=1250278)
Simplistic countdown timer (http://forum.xda-developers.com/showthread.php?t=1290900)
Tweaking the screen refresh (http://forum.xda-developers.com/showthread.php?t=1241419)
Orientation Switch [Recommended, use in conjunction with XorZone's B&N button modifier] (http://forum.xda-developers.com/showthread.php?t=1283176)
ADW launcher + Minimalist_Black - ADW Theme, nice launcher + awesome theme pack with awesome icons for eink (https://market.android.com/details?id=org.adw.launcher + https://market.android.com/details?...iwiY29tLmRhdmlkMTE3MS5taW5pbWFsaXN0YmxhY2siXQ..)
Minimalistic text, it’s a really nice free widget app, from which you can make things like this http://attachments.xda-developers.com/attachment.php?attachmentid=781918&d=1321239931, you will need version 2.6.2 or 2.6.3 here you have the 2.6.2 (http://www.megaupload.com/?d=UO7PD9BU) and the market link for the latest (https://market.android.com/details?id=de.devmil.minimaltext)
AdbWireless widget, to control when you want adb over Wi-Fi on and off with the Wi-Fi uramdisc, or to add the possibility to the usb uramdisc (https://market.android.com/details?id=siir.es.adbWireless)
Making the manual process LESS PAINFULL
To not have to open each time CMD, and go typing cd C/.... and connect yourNSTip make a small batch file like this:
Open notepad type:
Code:
@echo off
cd C:/android-sdk-windows/platform-tools
adb kill-server
adb connect yourNSTip
cmd
Save the file as .bat, or change the extension when saved.
Now each time you reboot in the proces, instead of opening CMD and typing cd ..... and adb connect.... just open this file and star copying command right away
eded333 said:
Change the powered off screen image
First, let’s make a copy of the original apk.
Open CMD and type:
Code:
cd C:/android-sdk-windows/platform-tools
adb connect yourNSTip
adb pull /system/framework/framework-res.apk
You will find this file on C:/android-sdk-windows/platform-tools.
Make a copy of the file and open it with 7zip (download it if you don’t have it http://www.7-zip.org/).
Look for and open res\drawable-mdpi\
Search for cold_boot_screen.png and replace it for whatever 800x600 image you want.
Search for cold_battery_low_boot_screen.png and again replace it for whatever 800x600 image you want.
Save the modified apk on C:/android-sdk-windows/platform-tools
Then we have to push the new file.
Code:
adb shell
mount -o remount,rw -t ext2 /dev/block/mmcblk0p5 /system
exit
adb push framework-res.apk /system/framework/
adb reboot
If you see any strange behavior restore your backed up copy.
On this post, there are some nice pictures to use, http://forum.xda-developers.com/showpost.php?p=17822468&postcount=9, I modified them a bit, making them smaller in size, 16 bit grayscale and 800x600 here is the link http://www.megaupload.com/?d=PD94ZJK9.
Click to expand...
Click to collapse
So, I did all that, but I'm stuck at the loading screen (the one with 5 dots doing stuff).
Any ideas?
I've also tried to restore the orig framework-res.apk, but nothing.
Also changed permissions back to 644.
ace7196 said:
So, I did all that, but I'm stuck at the loading screen (the one with 5 dots doing stuff).
Any ideas?
I've also tried to restore the orig framework-res.apk, but nothing.
Also changed permissions back to 644.
Click to expand...
Click to collapse
I hate you..... (not really )
Read the first page:
"Please, dont post on this thread, continue to use [NST]MinimalTouch 1.1beta5"
Anyway
It works, I've modded it myself, try to fix the the permissions:
chmod 644 /system/framework/*
What images did you use?
Please lets continue this conversation on: http://forum.xda-developers.com/showthread.php?t=1346748
Or through PM, id like to use this thread only to add more tutos, or correct the ones I allready have.
----------------------------------------------------------------------------
Edit,
didnt read you allready did that.
So after restoring the original file, you still have problems?
Try to force shut it down, and start it again, or try to erase dalvik cache, and reboot (if you can acces adb, if not I'll make you an CWM zip)
rm -rf /data/dalvik-cache/*
Skip OOBE:
On the first screen that appears on the NST without tapping any button.
1.Hold the right top button and move your finger from left to right on the top of the screen.
2.The factory button will appear at the bottom right of the screen, tap it.
3.Hold again the right top button and tap the right bottom part of the screen, where the factory button appeared
4.A button labeled skip oobe will appear, tap it, your done
Redid Gapps packages and updated links.
eded333 said:
Improve battery life (testing)
As the Nook Touch hasn't got a overclocking kernel, and isn't near, as it isn't convenient to change or modify the cpu governor (it works in an unusual way), as I don't like too many apks bloating my nook, there is something that seems to be working for me, underclocking it manually of course .
The Nook has 3 stock frequencys, 300, 600, 800, and a deepsleep state.
As this small monster is just an ereader, and the refresh rates of eink are painfully slow I didn't find the need for it going all the way to 800mhz I did this small trick:
Make a backup up clrbootcount.sh.
Open CMD and type:
Code:
cd C:/android-sdk-windows/platform-tools
adb connect yourNSTip
adb pull /system/bin/clrbootcount.sh
Now lets modify it:
Code:
adb shell
mount -o remount,rw /dev/block/mmcblk0p5 /system
echo "echo 300000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq" >> /system/bin/clrbootcount.sh
adb reboot
Check to see if the process was succesfull by typing this on cmd:
Code:
cd C:/android-sdk-windows/platform-tools
adb connect yourNSTip
adb shell
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
To return back to stock file, restore the file you backed up by pushing it back or use:
If the output is 300000, then it worked and now your nook won't go all the way to 800mhz, if you want to limit it to 600mhz, just change 300000 to 600000.
Click to expand...
Click to collapse
Have you done any actual benchmarkings on this? Usually trickery like this actually make degrades battery performance because the slower the computations is done the less time is spent in deep sleep. Most of the time the device should be in deep sleep but whenever something need to be done, it should be done as quickly as is possible.
Anyway I like your guides. I just got everything up and running exactly as I want without a bunch of crappy useless apps installed. Market as well. Something the automated methods doesn't handle at all well
Fulkerson said:
Have you done any actual benchmarkings on this? Usually trickery like this actually make degrades battery performance because the slower the computations is done the less time is spent in deep sleep. Most of the time the device should be in deep sleep but whenever something need to be done, it should be done as quickly as is possible.
Anyway I like your guides. I just got everything up and running exactly as I want without a bunch of crappy useless apps installed. Market as well. Something the automated methods doesn't handle at all well
Click to expand...
Click to collapse
¬¬ please dont reply on this thread.... do it on the thread which I point out on the first post.
I did some testing, and it did last longer when being used, it lasted the same on sleep, I never turn it off, but didnt really do any real benchmarking so its just my impression.
I'm glad this manual tutos are still being used and found usefull ^^

[GUIDE] Run Sickbeard/Transmission/sabnzbd/SSH/Samba/More on Shield

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!

Categories

Resources