Hi,
My first post into this forum
So, I have installed Plasma active on my Archos 80 G9 with 250G Hard disk using this guide :
h tt p:/ /share.basyskom.com/plasma-active/archos_gen9.h t m l
Then, I installed it on my 1.6 G data partition, but it wasn't working well .. so I checked the disk space remaining in it and it was near zero.
My question now,
at the bottom of the plasma active installation guide you can see "Setup a Android™ and Plasma Active dual Boot System" , where the plasma active files can be put on the SD card and this was possible by just changing the zimage file
1- is there any sde zimage and initramfs.cpio.lzo that can boot from the hard disk ? ( Dynamic multiboot menu says it can but it doesn't at all )
2- Is there any guide on how to create/edit zimage file ?
Thanks ..
regards,
Mostafa
shalkam said:
Hi,
My first post into this forum
So, I have installed Plasma active on my Archos 80 G9 with 250G Hard disk using this guide :
h tt p:/ /share.basyskom.com/plasma-active/archos_gen9.h t m l
Then, I installed it on my 1.6 G data partition, but it wasn't working well .. so I checked the disk space remaining in it and it was near zero.
My question now,
at the bottom of the plasma active installation guide you can see "Setup a Android™ and Plasma Active dual Boot System" , where the plasma active files can be put on the SD card and this was possible by just changing the zimage file
1- is there any sde zimage and initramfs.cpio.lzo that can boot from the hard disk ? ( Dynamic multiboot menu says it can but it doesn't at all )
2- Is there any guide on how to create/edit zimage file ?
Thanks ..
regards,
Mostafa
Click to expand...
Click to collapse
Hi There
You'll find a rough guide to unpacking and repacking here here
Hope that helps!
trevd said:
Hi There
You'll find a rough guide to unpacking and repacking here here
Hope that helps!
Click to expand...
Click to collapse
Thanks for your post!! Finally I have been able to make some progress after googling around for a couple of weeks
I went through the guide you posted and it turned out to be very helpful ..
I ended up with the file -> new_initrd.lzo
and I have been able to edit the init file
Code:
#!/bin/sh
# kr's init script.
if [ -e /etc/debug_build ] ; then
debug=1
verbose=1
enable_adb=1
#set -x
else
debug=0
verbose=0
enable_adb=0
fi
# source init_lib
. /etc/scripts/init_lib.sh
# source recovery_lib
. /etc/scripts/recovery_lib.sh
if [ -e /etc/scripts/platform_lib.sh ] ; then
. /etc/scripts/platform_lib.sh
fi
# archosboxes
ACAT=/bin/acat
ADBD=/bin/adbd
ADEV=/bin/adev
AOSPARSER=/bin/aosparser
AUI=/bin/aui
AUID=/bin/auid
AUTODIM=/bin/autodim
CREATE_SYSID=/bin/create_sysid
FB_WRITE=/bin/fb_write
FLASH_PARTITION_ERASE=/bin/flash_partition_erase
FSCK_EXT3_PARSER=/bin/fsck.ext3_parser
GET_INFO=/bin/get_info
KD_FLASHER=/bin/kd_flasher
KX_CHECKER=/bin/kx_checker
MKFSEXT3_PARSER=/bin/mkfs.ext3_parser
REBOOT_INTO=/bin/reboot_into
RFBI_REFRESH=/bin/rfbi_refresh
USB_TS_CALIB=/bin/usb_ts_calib
FSCK_EXT3=/sbin/e2fsck.static
FSCK_VFAT=/sbin/dosfsck.static
# busybox
CAT=/bin/cat
CHMOD=/bin/chmod
DD=/bin/dd
INSMOD=/sbin/insmod
LOSETUP=/sbin/losetup
MKDIR=/bin/mkdir
MOUNT=/bin/mount
RM=/bin/rm
RMMOD=/sbin/rmmod
TOUCH=/bin/touch
UMOUNT=/bin/umount
ZCAT=/bin/zcat
AAS_PRESENT=0
# Prepare filesystem
mount_pseudo_fs
ln -s /proc/mounts /etc/mtab
# Get board and product information
PRODUCT_NAME=`$GET_INFO p`
PRODUCT_REVISION=`$GET_INFO r`
PRODUCT_PK=`$GET_INFO P`
AOS_FILENAME=`$GET_INFO f`
AOS_EXTENSION="aos"
log "recovery get_info - PRODUCT $PRODUCT_NAME ($PRODUCT_REVISION) - AOSFILENAME $AOS_FILENAME"
$ADEV -d
platform_init
wait_block_devices rawfs
mount_p rawfs
display_banner $PRODUCT_NAME $PRODUCT_REVISION
$KX_CHECKER -f /mnt/rawfs/init
ki_status=$?
$KX_CHECKER -m -f /mnt/rawfs/custom
kd_status=$?
umount_p rawfs
auid_start $PRODUCT_NAME $PRODUCT_REVISION
$AUI -c message -T "Archos $PRODUCT_NAME" -a centered -t "~ Hello world ~"
wait_block_devices storage
if [ "$ki_status" = "0" ] && [ "$kd_status" = "0" ] ; then
recovery_cmd="boot_menu"
else
recovery_cmd="-"
fi
if [ $enable_adb -eq 1 ] ; then
$ADBD
fi
# enter recovery app main loop :
# check for automatic tasks and process, or ask user what to do
#
# if manual or auto task fail, recovery_loop will try to repair
# (for $COUNTER times) and reloop...
#
COUNTER=4
while [ $COUNTER -gt 0 ]; do
# check for automatic update to perform.
# repair disk silently if AAS present. (double update case)
mount_p storage
aas_fullfilename=`get_mount_info p storage`"/firmware_$AOS_FILENAME.aas"
if [ -e $aas_fullfilename ] ; then
recovery_cmd="flash_aas $aas_fullfilename"
fi
umount_p storage
do_recovery_loop $recovery_cmd
result=$?
case "$result" in
$RECOVERY_RECOVERED)
log "recovery recovered system ($COUNTER)"
;;
$RECOVERY_DONE)
COUNTER=4
;;
$RECOVERY_FINISH)
log "recovery_loop go reboot"
COUNTER=0
;;
$RECOVERY_FINISH_HALT)
log "recovery_loop go shutdown"
COUNTER=0
;;
$RECOVERY_FINISH_NO_NOTIFICATION)
log "recovery_loop go reboot"
COUNTER=0
;;
*)
log "recovery_loop failed go reboot"
if [ $debug -eq 1 ] ; then
# give debug informations
COUNTER=0
else
COUNTER=0
fi
;;
esac
recovery_cmd="-"
let COUNTER-=1
done
case "$result" in
"$RECOVERY_FINISH_NO_NOTIFICATION")
log_and_reboot "reboot"
;;
"$RECOVERY_FINISH_HALT")
aui_message "Device will now halt."
log_and_shutdown "shutdown"
;;
*)
aui_message "Device will now reboot."
log_and_reboot "reboot"
;;
esac
# EOF
all the changes that I made are
Code:
$AUI -c message -T "Archos $PRODUCT_NAME" -a centered -t "~ Hello world ~"
just added "hello world" instead of "starting..." just for now.
So what I need to know is :
1- how to use the "new_initrd.lzo" file should I get renamed to "initramfs.cpio.lzo" and create an empty file called zimage then do the "Flash Kernel and Initramfs"
2- I guess the guide was made before sde was released for archos g9, so do I need to keep all the coding for the recovery menu or just keep the code for mounting the hard disk and loading the system/image ?
3- could you post an example code of how to mount the hard disk and boot from there if you can ?
Thanks
I renamed the files and it worked just fine, So everything is clear for me now.
and if you have any examples of the "init" file coding, the would be the happy ending for me
shalkam said:
Thanks for your post!! Finally I have been able to make some progress after googling around for a couple of weeks
I went through the guide you posted and it turned out to be very helpful ..
I ended up with the file -> new_initrd.lzo and I have been able to edit the init file
...
So what I need to know is :
1- how to use the "new_initrd.lzo" file should I get renamed to "initramfs.cpio.lzo" and create an empty file called zimage then do the "Flash Kernel and Initramfs"
2- I guess the guide was made before sde was released for archos g9, so do I need to keep all the coding for the recovery menu or just keep the code for mounting the hard disk and loading the system/image ?
3- could you post an example code of how to mount the hard disk and boot from there if you can ?
Click to expand...
Click to collapse
Hi
1. To use the initramfs you need a kernel Image as well, look at posts in the development section, there's quite a few kernel variants, ( overclocked etc ), you're best off sticking with the 3.0.8 kernel, folks have experienced some problems with archos' latest release.
You then need to hold volume down while powering on to get into the maintenance mode, from there it's "recovery menu"/"developer edition menu"/"flash kernel and initramfs" this will mount a device on you PC which you copy the initramfs.cpio.lzo and zImage.
2. "We" pretty much had an unofficial sde from day one thanks to some reverse engineering and I can only assume knowledge gained from the previous generation of archos tablets. you don't really need to keep the recovery code but it's probably easier to leave it. It might be worth your while repacking a MultiBoot initramfs.cpio to suit your needs It should be just a case of getting it to look on your hard drive for images instead of/as well as the Internal SD.
3. the mount_p calls take care of mounting partitions, It's a function defined in one of the scripts in the etc/scripts directory in your initramfs, The file you're probably after editing however is etc/mountpoints.
Like I say have a good look around the development section, especially at some of the earlier posts, there's only four pages but some good knowledge and useful info to be had!
trevd said:
It might be worth your while repacking a MultiBoot initramfs.cpio to suit your needs It should be just a case of getting it to look on your hard drive for images instead of/as well as the Internal SD.
Click to expand...
Click to collapse
I repaced the MultiBoot initramfs.cpio and did the following :-
before
Code:
#Build boot menu string
MENULIST="\`$AUI -C \"0x000000,0xdbdac9\" -c select -T \"Archos $PRODUCT_NAME - Multi Boot Menu $BOOTVER\" -a centered -C \"0x000000,0xf1f0dd\" -t \"Please select an image :\" "
IMGLOC1="/data/media/"
IMGLOC2="/data/local/"
after :
Code:
mount_p storage_A80H
#Build boot menu string
MENULIST="\`$AUI -C \"0x000000,0xdbdac9\" -c select -T \"Archos $PRODUCT_NAME - Multi Boot Menu $BOOTVER\" -a centered -C \"0x000000,0xf1f0dd\" -t \"Please select an image :\" "
IMGLOC1="/data/media/"
IMGLOC2="/mnt/storage/
and it worked loaded all the .ext4 files in /mnt/storage/ .
the file for icsblue worked but the file for ubuntu from this topic ->http://forum.xda-developers.com/showthread.php?t=1392167
didn't work
anyway you can find a shell script for unpacking-editing-packing attached to make things easier if anyone wants to edit these files instead of the "rough guide to unpacking and repacking"
Related
DISCLAIMER: You know the risks, bricking, breaking etc. I'm not, nor is anyone else responsible if something goes wrong with your device, especially should it turn into a cave troll and bludgeon someone to death.
You will have to be rooted for this to work.
Update 1/5/11
Changed the install and loader scripts re-compressed and uploaded, new download link. Stream lined the installation process (removed 5 steps)
Update 1/4/11
reflect changes to ubuntu.sh and bootubuntu scripts and streamlining the process. Added screenshots
_________________________
I was over at nexusonehacks.net and looking at the ubuntu on nexus one hack and was thinking that this could be ported to the nook color. The idea is to run ubuntu from an img on the sd card.
The following is a modified version of the "how to" orginally posted here
http://nexusonehacks.net/nexus-one-hacks/how-to-install-ubuntu-on-your-nexus-oneandroid/
Credits
The guys at NexusOneHacks
xda user munday who has modified the scripts to work for the nook color
Devs at XDA Developer for the Ubuntu ARM image for HTC HD2
Saurik (Jay Freeman) for the Debian G1 script, which was hacked for Ubuntu on Nexus One! and then re-hacked for the Nook Color by munday
Here we go:
1) Go download the ubuntu file here: http://www.megaupload.com/?d=67BU4Y3T
2) Extract the contents using 7zip http://www.7-zip.org/download.html
3) Copy the extracted folder "ubuntu" to the root of your SD card
4) Unmount the nook from your pc, go into the app NookColor Tools (if you don't have it download it here courtesy of Ben 74 and click All Settings->Development then uncheck Auto Mount. This will prevent the SD card from being mounted automatically when plugged into the PC
5) Plug the Nook back into your pc and open a command line then navigate to your android sdk folder ie C:\android-sdk or wherever you have it and type
Code:
adb devices
Hit enter and make sure that the nook color comes up (should be the SN of your Nook)
Note: This can also be done from terminal emulator instead of adb...but it is kind of a pain
6) Now we want to go into the command line on the nook so type
Code:
adb shell
Hit enter and this should bring up a "#" sign.
7) Type
Code:
su
hit enter (I do this just as a force of habit)
8) Now we navigate to the ubuntu folder we just copied to our sd card by entering
Code:
cd /sdcard/ubuntu
hit enter. To confirm you are where you want to be you can type
Code:
ls
and it should list the contents of the ubuntu folder.
9) Run the setup script ubuntu.sh by entering the following:
Code:
sh ./ubuntu.sh
hit enter
10) Now type
Code:
bootubuntu
and hit enter
11) So now we have ubuntu command line up and running which should look like:
Code:
[email protected]:/#
We will need to get some packages to run a gui and then connect to it via VNC client. So we need to update a few things first. Type:
Code:
apt-get update
then
Code:
apt-get install tightvncserver
now we need the gui elements so enter this:
Code:
apt-get install lxde
12) Type the following:
Code:
export USER=root
vncserver -geometry 1024×600
this sets the resolution...you can change it to play around, but the native resolution for the nook is 1024x600. This is also where you will set the password for your vnc server...make sure to remember it
13) Next, we are going to add the following to /root/.vnc/xstartup file using cat command: (hit enter after each line and ignore the fact that it looks like it does it twice)
Code:
cat > /root/.vnc/xstartup
#!/bin/sh
xrdb $HOME/.Xresources
xsetroot -solid grey
icewm &
lxsession
After hitting enter after the last line press "Ctrl+D" twice then press enter
14) We need the vnc server to start every time we start ubuntu, type this:
Code:
cat > front
export USER=root
cd /
rm -r -f tmp
mkdir tmp
cd /
vncserver -geometry 1024×600
Same as before, hit enter after each line then after hitting enter for the last line press "Ctrl+D" twice then press enter.
15) Enter this
Code:
cat front /root/.bashrc > temp
Then
Code:
cp temp /root/.bashrc
16) Now on the nook open up your vnc viewer app (android vnc viewer or PocketCloud...or whatever you use)
Use the following settings:
Host Address: 127.0.0.1 (some don't require this)
Password: the password you set up in step 16
Port: 5901
Save and then click connect and you should be up and running on ubuntu! To leave ubuntu type exit from adb. This should kill ubuntu. Exit adb and then you can disconnect the nook from your pc.
To start ubuntu from the nook open up a terminal emulater and type:
Code:
bootubuntu
Hit enter, this should bring up the [email protected], hhen press "Home" key and open up your vnc app. Now you are ready to rock your Linux tablet!
You could also use gscript lite to automate the process of starting ubuntu so you don't have to type it in the terminal everytime. You can get gscript lite from the market or download the file I have attached.
It does seem a little laggy..just a little...for now anyway
To exit ubuntu: Disconnect the vnc client then hold the "Home" key (I use button savior which brings up a nice little task manager) and click the Terminal emulator when it pops up under running tasks. Once you are back in the terminal you can type:
Code:
exit
to shut down ubuntu.
Enjoy and make sure you thank munday and the guys at nexusonehacks and all the devs who helped make it possible.
-devastator
EDIT:
I noticed that after rebooting the nook would hang at the "Future of reading" screen....if this happens turn the device off remove the sd card the turn the nook back on. It should boot fine. After it's finished you can return the sd card and mount it. This is strange and I'm looking into it. I'm not sure if this is limited to me or if it is universal to all nooks. It also still fails at shutting ubuntu down for some reason. I'm still looking into this.g into this.
I got it going, just needed a few "busybox"-es here and there . It needs some work, right now to get X you have to use VNC.
It's sluggish but a bit more work might just yield something a bit more usable. I'll play more tomorrow night.
Here's my scripts:
ubuntu.sh
Code:
mount -o remount,rw /dev/block/mmcblk0p5 /system
busybox modprobe ext2
rm -f /data/local/bin/fsrw
rm -f /data/local/bin/bootubuntu
rm -f /data/local/bin/unionfs
rm -f /data/local/bin/installer.sh
rm -f /data/local/bin/mountonly
mkdir /data/local/mnt
#busybox clear
rm /system/bin/fsrw
rm /system/bin/bootubuntu
rm /system/bin/unionfs
rm -/system/bin/mountonly
busybox cp -f fsrw /system/bin
busybox cp -f bootubuntu /system/bin
busybox cp -f unionfs /system/bin
busybox cp -f mountonly /system/bin
cd /sdcard/ubuntu
busybox chmod 4777 *
cd /system/bin/
busybox chmod 4777 *
cd /
#busybox clear
echo " "
echo "Ubuntu Chroot Bootloader v0.1"
echo "Ubuntu Bootloader is now installed!"
echo "This process does NOT damage Android OS!"
echo " "
echo "Original Installer by Charan Singh"
echo "Modified for Ubuntu Chroot by Max Lee at NexusOneHacks.net"
echo " "
echo "To enter the Debian Linux console just type 'bootubuntu'"
bootubuntu
Code:
mount -o remount,rw /dev/block/mmcblk0p5 /system
export kit=/sdcard/ubuntu
export bin=/system/bin
export mnt=/data/local/mnt
export PATH=$bin:/usr/bin:/usr/sbin:/bin:$PATH
export TERM=linux
export HOME=/root
busybox mknod /dev/loop2 b 7 0
mount -o loop,noatime -t ext2 $kit/ubuntu.img $mnt
mount -t devpts devpts $mnt/dev/pts
mount -t proc proc $mnt/proc
mount -t sysfs sysfs $mnt/sys
busybox sysctl -w net.ipv4.ip_forward=1
echo "Setting /etc/resolv.conf to Google Open DNS 8.8.8.8 and 8.8.4.4"
echo "nameserver 8.8.8.8" > $mnt/etc/resolv.conf
echo "nameserver 8.8.4.4" >> $mnt/etc/resolv.conf
echo "Setting localhost on /etc/hosts "
echo "127.0.0.1 localhost" > $mnt/etc/hosts
echo "READY TO ROCK AND ROLL BABY! "
echo "Brought to you by NexusOneHacks.net and the open source community! "
echo " "
busybox chroot $mnt /bin/bash
#After exit command is executed clear it all up
echo " "
echo "Shutting down Ubuntu"
umount $mnt/dev/pts
umount $mnt/proc
umount $mnt/sys
umount $mnt
Then just followed the instructions at nexusonehacks.
note: to run bootubuntu i had to use sh and the use the full path:
Code:
# sh /system/bin/bootubuntu
other note: I was using adb not a term app on the nook.
Obligatory video
I can't post links yet so check: youtube.com/watch?v=TnXfZ6aagn8 for a really boring video
EDIT: switched the names, DOH!
I also had to use sh and the full path also. Thanks for the update on the script...gonna try it in the morning (it's 2am here) will also see if I can help to get it running smoother. What class SD card are you using? I imagine a class 4 or higher would yeild better results as far as responsiveness goes.
The sd is a class 2 that came in one of my dev phones. I'll pick up a faster one tomorrow after work and test it out.
It's just about 3am here now, we must be in the same time zone.
I'm going to bed now, but first here's a modded version of the script you had originally posted that also works now.
bootubuntu
Code:
#!/bin/sh
mount -o remount,rw /dev/block/mmcblk0p5 /system
export kit=/sdcard/ubuntu
export bin=/system/bin
busybox [ ! -d /data/local/ubuntu ] && mkdir /data/local/ubuntu
export mnt=/data/local/ubuntu
export PATH=$bin:/usr/bin:/usr/sbin:/bin:$PATH
export TERM=linux
export HOME=/root
busybox mknod /dev/loop1 b 7 0
busybox losetup /dev/block/loop1 /sdcard/ubuntu/ubuntu.img
mount -t ext2 /dev/block/loop1 /data/local/ubuntu
#mount -o loop,noatime -t ext2 $kit/ubuntu.img $mnt
mount -t devpts devpts $mnt/dev/pts
mount -t proc proc $mnt/proc
mount -t sysfs sysfs $mnt/sys
busybox sysctl -w net.ipv4.ip_forward=1
echo "Setting /etc/resolv.conf to Google Open DNS 8.8.8.8 and 8.8.4.4"
echo "nameserver 8.8.8.8" > $mnt/etc/resolv.conf
echo "nameserver 8.8.4.4" >> $mnt/etc/resolv.conf
echo "Setting localhost on /etc/hosts "
echo "127.0.0.1 localhost" > $mnt/etc/hosts
echo "READY TO ROCK AND ROLL BABY! "
echo "Brought to you by NexusOneHacks.net and the open source community! "
echo " "
busybox chroot $mnt /bin/bash
#After exit command is executed clear it all up
echo " "
echo "Shutting down Ubuntu"
umount $mnt/dev/pts
umount $mnt/proc
umount $mnt/sys
umount $mnt
busybox losetup -d /dev/loop1
#unregistering the loopback device just seems to die. need to fix or remove.
I'll look at the N1 formus tomorrow too and see if they have made progress in getting X to run fast or without need for VNC.
Nice work, I am addicted in seeing the crazy crap people are doing everyday.
Couldn't sleep so I'm messing around with it now...I'm using a class 4 and have it up and running. It does seem to be a little laggy, but I don't have a class 2 to compare it to. Let me know what you find out, I'll keep playing with it also to see if I can get it to be more responsive...but we are definately on our way to having a great little linux tablet in addition to android. You should also be able to use this for other builds of linux also by just changing out the .img file to a flavor of your choosing. I'm excited
I have also updated the OP with the how to and credits. Really appreciate your help munday.
I noticed that after rebooting the nook would hang at the "Future of reading" screen....if this happens turn the device off remove the sd card the turn the nook back on. It should boot fine. After it's finished you can return the sd card and mount it. This is strange and I'm looking into it. I'm not sure if this is limited to me or if it is universal to all nooks.
Edit:
Running into some strange occurrences...it appears that when you type exit from the terminal to kill ubuntu, I believe ubuntu stays running...anyway, I'm going to bed and will work on it more tomorrow.
devastatorx said:
You should also be able to use this for other builds of linux also by just changing out the .img file to a flavor of your choosing. I'm excited
Click to expand...
Click to collapse
Are there any increased risks with changing the version you use?
Well, you will want to make sure that the build supports ARM based devices.
munday said:
Then just followed the instructions at nexusonehacks.
note: to run bootubuntu i had to use sh and the use the full path:
Code:
# sh /system/bin/bootubuntu
Click to expand...
Click to collapse
I fixed this, the scripts were backwards, I have updated the OP to reflect the changes and bootubuntu now works
devastatorx said:
I fixed this, the scripts were backwards, I have updated the OP to reflect the changes and bootubuntu now works
Click to expand...
Click to collapse
sweet, i can't wait to get home to play more!!!
I've tried running ubuntu.sh from the terminal emulator (With su) and from ADB, and have not had success with either.
The readout is:
Code:
': File existste '/system/bin
': File existste '/system/bin
': File existste '/system/bin
: not found
: not found
cd: can't cd to /sdcard/ubuntu
: not found
: No such file or directory
: not found
cd: can't cd to /system/bin
: not found
: No such file or directory
: not found
cd: can't cd to /
: not found
: not found
Ubuntu Chroot Bootloader v0.1
Ubuntu Bootloader is now installed!
etc., etc.
Is there a problem with how I copied the script? I assume the first part about the file existing is due to this being the third or fourth time I've tried running the script (Unsuccessfully), but I've no idea how to interpret the rest.
Thanks
munday said:
sweet, i can't wait to get home to play more!!!
Click to expand...
Click to collapse
I sent you a message
Link3737 said:
I've tried running ubuntu.sh from the terminal emulator (With su) and from ADB, and have not had success with either.
The readout is:
Code:
': File existste '/system/bin
': File existste '/system/bin
': File existste '/system/bin
: not found
: not found
cd: can't cd to /sdcard/ubuntu
: not found
: No such file or directory
: not found
cd: can't cd to /system/bin
: not found
: No such file or directory
: not found
cd: can't cd to /
: not found
: not found
Ubuntu Chroot Bootloader v0.1
Ubuntu Bootloader is now installed!
etc., etc.
Is there a problem with how I copied the script? I assume the first part about the file existing is due to this being the third or fourth time I've tried running the script (Unsuccessfully), but I've no idea how to interpret the rest.
Thanks
Click to expand...
Click to collapse
Try using these, just unrar and then copy them in your ubuntu folder, if it asks to overwrite just click yes...also you have autmounting of the sd card turnned off in nook color tools settings right?
Yeah, it must have been an error on my end. Using the updated scripts you posted worked like a charm.
Thanks!
Link3737 said:
Yeah, it must have been an error on my end. Using the updated scripts you posted worked like a charm.
Thanks!
Click to expand...
Click to collapse
Good to hear!
I'm currently working on making this a port to the SD card so that with the sd card in it boots into ubuntu from power off, and with the sd card out it boots to android then you replace the sd and use it for storage like normal. It will also run a lot snappier....well that's the idea anyway.
devastatorx said:
Good to hear!
I'm currently working on making this a port to the SD card so that with the sd card in it boots into android from power off, and with the sd card out it boots to android then you replace the sd and use it for storage like normal. It will also run a lot snappier....well that's the idea anyway.
Click to expand...
Click to collapse
Booting from SD in the same fashion as Nookie Froyo? That sounds like it would give a huge performance boost over the current method, I can't wait to see what you come up with.
This should be acheivable using the method mentioned in this topic:
http://forum.xda-developers.com/showthread.php?t=873243 thanks to clockworx.
Currently looking into this
devastatorx said:
This should be acheivable using the method mentioned in this topic:
http://forum.xda-developers.com/showthread.php?t=873243 thanks to clockworx.
Currently looking into this
Click to expand...
Click to collapse
I was thinking the exact same thing, the nook seems to like booting from sd, so we should be able to set up the partitions like the foryo sd and edit the init.rc and env.txt to boot ubuntu instead of android. Just a theory though. It's my plan for tonight anyway.
munday said:
I was thinking the exact same thing, the nook seems to like booting from sd, so we should be able to set up the partitions like the foryo sd and edit the init.rc and env.txt to boot ubuntu instead of android. Just a theory though. It's my plan for tonight anyway.
Click to expand...
Click to collapse
I also stumbled across this: http://androix.org/ Which talks about a native android xserver which does a way with the vnc aspect altogether. I downloaded and attempted to install but I get the error "There is a problem parsing the package" and I haven't had any luck plus there isn't much documentation.
Let me know how it goes munday, I'll be working on the same thing later (have to take the fiance out for dinner)
question
I was just curious, after installing ubuntu can we install flash as we would had we booted linux from netbook?
Hi,
Is there some way to root I9001 now or I have to wait.
Firmware I9001XXKE8
Android 2.3.3
Kernel 2.6.35.7
I tried several methods (Superoneclick 1.7, 1.9.1, Gingerbreak 1.2) available for I9000 but nothing positive.
If someone can guide me in this process will be very appreciated.
Go here for step by step instructions: http://androidhogger.com/how-to-root-samsung-galaxy-s2-heres-the-tutorial.html.
Hi,
It is guide for I9100 but I have I9001 it is completely different hardware, so I doubt that the same guide can be applied to I9001.
Any news on rooting? Have you sucseeded?
No, still waiting, but it starts to sell to mass in Russia so soon will get news.
Since yesterday the new 2.3.4 firmware is out:
http://netload.in/datei5X4ZyAkNkO/I9001XXKP4_v2.3.4.rar.htm
(edit: maybe its not 2.3.4 ... samfirmware write 2.3.3)
... but we wait still for the root...
SPOOKY
afaik 2.3.x cannot be rooted. only 2.2.x
sweetnsour said:
afaik 2.3.x cannot be rooted. only 2.2.x
Click to expand...
Click to collapse
Say what? Ofcourse 2.3.x can be rooted. We just have to get more attention to the 9001 so that the rom builders actively start devving this device.
Any one knows how to root this device?
Sent from my GT-I9001 using XDA Premium App
I'm looking for a solution as well, please don't make me use Touchwiz..
Have tried to look into ways to root this phone. It looks like it'll need to be root in similar way to i9100. So guess will need to wait for dev to come up with a special kernel for rooting.
İ hope they they ll come up with new karnel as soon.as possible
Sent from my GT-I9001 using Tapatalk
sweetnsour said:
afaik 2.3.x cannot be rooted. only 2.2.x
Click to expand...
Click to collapse
Here http://forum.xda-developers.com/archive/index.php/t-1136781.html is afaik 2.3.3 rotted. I think there is a posibility to root I9001.
I hope so ....! Did u try this method?
Sent from my GT-I9001 using Tapatalk
westcrip said:
I hope so ....! Did u try this method?
Sent from my GT-I9001 using Tapatalk
Click to expand...
Click to collapse
Nope but I will try in this weekend. I found how to restore phone when you brick it (if something happen) , and it's not so hard. That's why I will use different method to root it. I just wonder if one of brick is avilable or more. I only know how to unbrick by this method http://www.youtube.com/watch?v=2qB4RNoXTd8 . Its very simple just install software downoladed from http://www.samfirmware.com/WEBPROTECT-i9001.htm our software is in the middle I9001XXKF8 ##. Odin as well recognize my phone.
I have managed it to root the i9001. So far it is very complicated, and the detailed guide as well as the analysis of SMD archives is only in German available:
http://www.android-hilfe.de/samsung...g-galaxy-s-plus-i9001-rooten.html#post1911955
As always: You are responsible for your Phone! If someone bricks his device using this guide, I am not responsible for that! Bad Luck, I have warned you! Its a dangerous job! You really shouldn't do it.
In short:
- extract the PDA SMD File
- mount system.ext4
- copy su binary and Superuser.apk into the mounted image
- adjust the file permissions (especially the suid bit for su)
- umount system.ext4
- repack the PDA SMD.
I have created two Linux bash scripts for extracting and packing SMD Archives. Warning: I'm not very experienced in bash scripting. If someone is here who is capable of making a nice script of it, feel free! The scripts are working, that's all so far. They won't win a price in a beauty contest.
First the extract.sh:
Code:
#!/bin/bash
base=0
length=1
while (( length > 0 ))
do
# calculate Length
let "skip = base + 18"
length=`hexdump -e '"%d"' -s ${skip} -n 2 ${1}`
let "length = length * 65536"
let "skip = base + 16"
length2=`hexdump -e '"%d"' -s ${skip} -n 2 ${1}`
let "length += length2"
let "length = length / 512" # Number of 512-Byte blocks
# calculate offset
let "skip = base + 22"
offset=`hexdump -e '"%d"' -s ${skip} -n 2 ${1}`
let "offset = offset * 65536"
let "skip = base + 20"
offset2=`hexdump -e '"%d"' -s ${skip} -n 2 ${1}`
let "offset += offset2"
let "offset = offset / 512" # Number of 512-Byte blocks
# save header in case of first loop
if (( base == 0 ))
then
dd if=${1} bs=512 of=header count=${offset}
fi
# extract filename
let "skip = base + 32"
filename=`dd if=${1} skip=${skip} count=16 bs=1 2>/dev/null`
# and finally: extract image
if (( length > 0 ))
then
echo "Length: ${length}"
echo "Offset: ${offset}"
echo "Filename: ${filename}"
dd if=${1} bs=512 of=${filename} skip=${offset} count=${length} 2>/dev/null
fi
# next header
let "base += 64"
done
Syntax: ./extract.sh Archive.smd
The script will extract the archive and create a lot of local files (system.ext, boot.img and so on). Well, the content of the Archive obviously.
Root the system.ext4:
I have used the newest su and Superuser.apk from here (3.0-beta4 at the moment. Newer ones should be ok):
http://goo-inside.me/superuser
The steps for rooting a system.ext4:
Code:
mkdir system
sudo mount -o loop system.ext4 system
sudo cp su system/xbin/
sudo chown 0.0 system/xbin/su
sudo chmod 4755 system/xbin/su
sudo cp Superuser.apk system/app/
sudo chown 0.0 system/app/Superuser.apk
sudo chmod 644 system/app/Superuser.apk
sudo umount system
And the pack.sh. Note: The pack.sh so far expects an existing "header" file created from an extract action and all files to be added into the archive. The resulting archive will have the same contents, as the starting archive (of course with a modified system.ext4). MD5 Checksums in the archive are calculated automatically.
Code:
#!/bin/bash
base=16
length=0
filename=dummy
# save the beginning
dd if=header of=newheader bs=1 count=16 2>/dev/null
# First create the MD5 checksums of all included (and maybe modified) files and generate the new header
while [ ! -z "${filename}" ]
do
# Length, offset, etc. is unchanged, just copy it.
let "skip = base"
dd if=header of=newheadertmp bs=1 skip=${skip} count=32 2>/dev/null
cat newheadertmp >> newheader
rm newheadertmp
# extract filename
let "skip = base + 16"
filename=`dd if=header skip=${skip} count=16 bs=1 2>/dev/null`
if [ ! -z "${filename}" ]
then
echo "creating MD5Sum of: ${filename}"
checksum=`md5sum ${filename} | tr '[a-z]' '[A-Z]'`
echo -n ${checksum:0:32} >> newheader
fi
# next header
let "base += 64"
done
# save the rest of the old header.
filesize=$(stat -c%s header)
let "base -= 32"
let "size = filesize - base"
dd if=header of=newheadertmp bs=1 skip=${base} count=${size} 2>/dev/null
cat newheadertmp >> newheader
rm newheadertmp
# the new header is the first content of the new archive.
cat newheader > ${1}
# now add all files to the archive.
filename=dummy
base=16
while [ ! -z "${filename}" ]
do
# extract filename
let "skip = base + 16"
filename=`dd if=header skip=${skip} count=16 bs=1 2>/dev/null`
if [ ! -z "${filename}" ]
then
echo "Adding: ${filename}"
cat ${filename} >> ${1}
fi
# next header
let "base += 64"
done
rm newheader
Syntax: ./pack.sh Archive.smd
Flash the resulting .smd files using Odin Multi Downloader an be happy about a rooted SGS Plus.
Note: The procedure has been tested with European KF6 and KP4 firmware. the scripts are capable of extracting and packing other SMD Archives as well, like Modem or CSC SMDs. But you don't need it for rooting (but maybe for debranding or customizing ROMs).
I'm thinking about an simpler root method like a modified kernel with a "magic" initramfs (like CF Root is working). This would make rooting of course much easier. But I have to investigate a lot of things handling boot.imgs.
Nice one RiverSource! Let's hope this is the start of more to come (ie. easier root, custom roms..).
Hello,
ok, next step for rooting the SGS Plus: The FMROOT (hehe). FMROOT is the original untouched Samsung Kernel with a modified init.rc. The init.rc calls a script which places the su binary and the Superuser.apk into the /system partition.
As always: You are responsible for your Phone! If someone bricks his device using this guide, I am not responsible for that! Bad Luck, I have warned you! Its a dangerous job! You really shouldn't do it.
Howto:
Download the appropriate file for your firmware.
Extract it
There should be 2 Files: AriesVE.ops and FMROOT_?????.smd
Use Odin Multi Downloader
Put "AriesVE.ops" in OPS
Put "FMROOT_?????.smd" in PDA
Flash. Wait 5 Seconds. Phone reboots. Phone is rooted. Normally without loosing data or settings.
Please ask here, if your Firmware is not available. It should be possible to create an appropriate FMROOT Kernel.
Credits:
astuermer for pointing me to the correct su and Superuser binaries.
Chainfire here from XDA Developers. My script is based on the CF-Root
Paul from Madaco. I had a closer look into his "superboot".
Lots and Lots of Custom ROM Developers for i9000 and i9100. I have learned a lot about Android Images on Samsung phones from them.
For the developers: the FMBOOT Script called by init.rc:
Code:
mount -o rw,remount -t ext4 /dev/block/mmcblk0p15 /system
rm /system/xbin/su
rm /system/bin/su
mkdir /system/xbin
cat /fmboot/su > /system/xbin/su
chmod 4755 /system/xbin/su
cat /fmboot/Superuser.apk > /system/app/Superuser.apk
mount -o ro,remount -t ext4 /dev/block/mmcblk0p15 /system
And the calling code inside the init.rc:
Code:
start fmboot
class_start default
## Daemon processes to be run by init.
##
service fmboot /system/bin/sh /fmboot/fmboot.sh
user root
group root
oneshot
If someone is interested, I can post a howto on modifying boot.imgs for SGS Plus. Don't hesitate to ask. BTW, i have also coded a script which is capable of generating SMD archives with any content (not based on a previous SMD archive). I can also post it, if someone is interested.
I think, I will optimize the script in the future. Checking if the phone is already rooted and skip the thing for example. Or adding busybox. Are there any additional ideas?
Thank you very [email protected]@@@ Come on!
THX, THX,..
It works, rooted..!!
Dear Friends,
I have been building custom USB devices for Android as a hobby during my spare time since the end of last year. I have been succesfully using until now Siyah kernel V2.5.2-VWM + Android 2.3.5 in order to test my hardware prototypes with my SGS2. This version of Siyah kernel was compiled with some flags (CONFIG_SEC_WHITELIST=n) that disabled a white-list placed by Samsung that prevented third-party USB devices from connecting to the phone.
I updated yesterday to Siyah-v3.0b6 and CM9 and found that my USB devices are not working (OTG devices like my USB memory stick still works). I tracked the problem using the "lsusb" terminal command and the "USB Device Info" app, and I found that my devices are not enumerated correctly anymore. This is a symptom that the Samsung white-list is enabled and it is filtering USB devices that are not found in the list.
I may be wrong, but I think the workaround is only in the compilation flag above described. Does anyone of you people know of any kernel supporting ICS that is working with custom USB devices, or HID devices (joysticks, keyboards, mouse, gamepads, etc)?
I dont have enough credits to post this in the developer Forum so that Gokhanmoral can receive this feedback. I hope he may eventually read this post.
Thanks in advance for your help,
Saul
Did you try Beta 5? I had problems with Beta 6, I could not access the phone via adb or see any of the drives on my PC via MTP. Maybe there are general USB problems in that version. Going back to Beta 5 solved it.
rovo89 said:
Did you try Beta 5? I had problems with Beta 6, I could not access the phone via adb or see any of the drives on my PC via MTP. Maybe there are general USB problems in that version. Going back to Beta 5 solved it.
Click to expand...
Click to collapse
Thanks a lot for the suggestion. I am digging on this issue and found that it is more related to a compilation flag of the new kernel for ICS.
regards,
Saul
USB Host support for custom devices
Hello Saul,
I am experiencing a similar problem with my custom USB device. I have a rooted Samsung Galaxy S2 (GT-I9100) with android 4.0.3.
Did you manage to complie a kernel that works? I downloaded the GT-I9200_ICS_Opensource_Update4.zip kernel source files from opensource.samsung.com but I am not able to compile it. I got the error:
Code:
drivers/media/video/samsung/mali/linux/mali_osk_mali.c:23:98: error: arch/config.h: No such file or directory
Any ideas or guidance would be greatly appreciated.
Model: GT-I9100
Android version: 4.0.3
Baseband: I9100BULP6
Kernel: [email protected]#3
Compilation: IML74K.BULPC
Hi Saul and everybody,
I figured out what the problem was; this is just in case it's useful to someone.
It seems the "make clean" and "make mrproper" routines in the Makefile created by Samsund does not work properley and you need to unzip the entire source code again and restart the proces from scratch every time you want to change the .config and re-compile.
Afterwards, I also noticed the image won't work because I needed to exctract an initramfs for my device and to link it to the new kernel during the kernel compilation process and setting the CONFIG_INITRAMFS_SOURCE .config parameter pointing to the location where it was extracted.
In order to extract my initramfs, I applied the following script (which is an adaptation I made to this one http://forum.xda-developers.com/wiki/Extract_initramfs_from_zImage) to a zImage kernel included in a stockrom that worked fine in my device:
Code:
#!/bin/bash
#
#Source: http://forum.xda-developers.com/wiki/Extract_initramfs_from_zImage
#
#Extract initramfs from zImage
#
#initramfs provides the rootfs when booting a Linux kernel on a mobile device.
#Below script may be helpful if you are interested in extracting such an image from a zImage kernel file.
#Tested on Ubuntu for Samsung Galaxy S firmware. Other zImages may have different archiving options - would require a #modification to the script...
#
#After extracting the initramfs, it can be unpacked into the local directory with
#
#cpio -v -i --no-absolute-filenames < <path-to-initramfs.img>
#
zImage=$1
#========================================================
# find start of gziped kernel object in the zImage file:
#========================================================
#
# Next two lines modified by Federico Linares
#
p1=`perl -e 'print "\x1F\x8B\x08"'` # Added by Federico Liares
pos=`grep -P -a -b --only-matching $p1 $zImage | cut -f 1 -d :` # Modified by Federico Linares
echo "-I- Extracting kernel image from $zImage (start = $pos)"
#========================================================================
# the cpio archive might be gzipped too, so two gunzips could be needed:
#========================================================================
dd if=$zImage bs=1 skip=$pos | gunzip > /tmp/kernel.img
pos=`grep -P -a -b -m 1 --only-matching $'\x1F\x8B\x08' /tmp/kernel.img | cut -f 1 -d :`
#===========================================================================
# find start and end of the "cpio" initramfs image inside the kernel object:
# ASCII cpio header starts with '070701'
# The end of the cpio archive is marked with an empty file named TRAILER!!!
#===========================================================================
if [ ! $pos = "" ]; then
echo "-I- Extracting compressed cpio image from kernel image (start = $pos)"
dd if=/tmp/kernel.img bs=1 skip=$pos | gunzip > /tmp/cpio.img
start=`grep -a -b -m 1 --only-matching '070701' /tmp/cpio.img | head -1 | cut -f 1 -d :`
end=`grep -a -b -m 1 --only-matching 'TRAILER!!!' /tmp/cpio.img | head -1 | cut -f 1 -d :`
inputfile=/tmp/cpio.img
else
echo "-I- Already uncompressed cpio.img, not decompressing"
start=`grep -a -b -m 1 --only-matching '070701' /tmp/kernel.img | head -1 | cut -f 1 -d :`
end=`grep -a -b -m 1 --only-matching 'TRAILER!!!' /tmp/kernel.img | head -1 | cut -f 1 -d :`
inputfile=/tmp/kernel.img
fi
# 11 bytes = length of TRAILER!!! zero terminated string, fixes premature end of file warning in CPIO
end=$((end + 11))
count=$((end - start))
if (($count < 0)); then
echo "-E- Couldn't match start/end of the initramfs image."
exit
fi
echo "-I- Extracting initramfs image from $inputfile (start = $start, end = $end)"
dd if=$inputfile bs=1 skip=$start count=$count > initramfs.cpio
And that's almost all. At this point everything works fine except the Wifi. I think I have to link it to the kernel as a module, but I am not sure where to get the module from.
Any help would be greatly appreciated.
______________________________
Device: GT-I9100
Android version: 4.0.3
Baseband: I9100BULP6
Kernel: 3.0.15-I9100G
Compilation: IML74K.BULPC
I wrote this script and use it for a while.after that i decided too expand it and share it with others.
I know how to make a code with C language but not shell
I surfed the internet and use similarity and write a very simple code. :good:
the first code was worked line by line.
after that i used for loop just for changing six boot animation in a sort mod.
and now i want to expand it for as many boot animation as we want.
this is my code:
Code:
#!/system/bin/sh
#
#My mod for having different BootAnimations on each Boot
#
#prepare the script
echo "BootAnimation Changer";
busybox mount -o remount,rw /system;
cd /system/media/
#for finding number of Bootanimations
i=0;
for file in *.zip;
do
i=$(($i+1));
done;
max=$(($i));
echo "number of BootAnimation is ${max}";
#
#main Progress
busybox mv bootanimation.zip bootanimation${max}.zip;
busybox mv bootanimation1.zip bootanimation.zip;
count=1;
c=2;
while [ $c -le $max ]; do
busybox mv bootanimation${c}.zip bootanimation${count}.zip;
c=$(($c+1));
count=$(($count+1));
done;
#
#unmount the progress
chmod 777 /system/media/;
busybox mount -o remount,ro /system;
echo "BootAnimation changer Mod Done";
#
#done
How to install script:
copy your boot animations(as many as you want) to /system/media/
name them bootanimation1.zip,bootanimation2.zip,...
copy the code part in notepad.
change type to sh
OR
download and extract the attachment
run it with any script manager.
the problems are this:
-there is a syntax error which i couldn't understand which one is and for what -solved (tnx to sevenup30 )
-doesn't work with init.d -why??
no one could help me ??
Go to the play store and get ROM Toolbox. It will randomize your boot animation.
Sent from my Kindle Fire running CM10
85gallon said:
Go to the play store and get ROM Toolbox. It will randomize your boot animation.
Sent from my Kindle Fire running CM10
Click to expand...
Click to collapse
i know it has but i prefer to dont use this with out it:
-after days use it causes the phone become slow (my experiences)
-save the space
-the phone wont run extra app and it will have more free memory
just for these reason
and my idea is come from there :good:
Look at your first while
You write done ; echo ... done ;
You end your while twice
Remove the first done ; and it works ! !
Good script anyway ! Good work
sevenup30 said:
Look at your first while
You write done ; echo ... done ;
You end your while twice
Remove the first done ; and it works ! !
Good script anyway ! Good work
Click to expand...
Click to collapse
tnx bro.i corrected it
but it didn't work
the problem is here:
PHP:
while [ -f /system/media/bootnanimation${c} -ge $max];
is it correct??
it gave -ge error
try this please :
android bash is a little different from linux one.
seq does not seems to exist
so i change this and your while.
Try and tell me if it works
sevenup30 said:
try this please :
android bash is a little different from linux one.
seq does not seems to exist
so i change this and your while.
Try and tell me if it works
Click to expand...
Click to collapse
tnx a lot.:good::good:
i tried it.
no syntax error.
i use it and reboot my phone but boot animation was not changed.
i look at it and script ran successfully.
i changed some parameters and find out the while[ -f bootanimation${c} ]; do ... is not working.
and max is 1 always because of it.
edit:
after about an hour i correct the script totally(except init.d that i didn't test it yet due to my new ROM problem )
tnx a lot for helping
Well the script should be working, it is 'ettin.sh' now. To get VNC to work on separate device just change 'eth0' to 'wlan0' or whatever other interface you know how to configure, like usb maybe, in the 'init.sh' script that resides in ~/ on the images you can download from http://linuxonandroid.org/downloads/. Cool. If anyone can help with the usb configuring that would be cool.
Also on the different roms your storage might be different so just change that to what suites your environment,
BAD NEWS, After my first launch and exiting the VNC on my laptop (Ubuntu) My phones home button and a few other functions stopped working, a reboot remounts the root and system partitions and it goes back to normal essentially, I haven't noticed any adverse affects after the reboot.
Good luck.
EDIT: If you can't help me, you probably shouldn't attempt any of this.
I want to connect to backtrack over usb from Ubuntu on my laptop instead of from my phone. Is there a good way of doing this?
The thing is, I didn't chroot, I mounted the image, copied the contents of '/etc/*' and '/sbin/*' to the '*/etc' '*/sbin' dirs of the mounted image. and then mounted it's (the image's) contents to Androids rootfs '/' then I set up a little script to set up the environment and execute '/bin/bash -i init.sh' and again reset PATH to include /system/*.
Then in the init.sh script I want to set up a way to 'vnc' through' usb to backt4acks desktop. How would I do this?
EDIT: I started this script blelow, its not complete, feel free to use it however you like.
If anyone is good with bash I need help with loops in Bash or shell, ksh, or ash. So if you change it at all share those changes here. I haven't tested any of the loops, I wrote this here and need to do some reading on shell scripting, peace out.
Just NOTE that I would not execute this script yet, it is NOT YET COMPLETE.
I will be making minor changes as I learn and test things out, Also this was inspired by the autobootscrip (sp?) that the Linux on Android Installer app uses.
mintberrycrunch revision
I need a little help with the mounting part, "is there anybody out there?"
EDIT: Maybe escape '\' characters...
Maybe this will work? 'if [ ! -d "/$d" -a "$d" \!= "dev" -o "$d \!= "mnt" ]; then ' I want it to test whether the directory does not already exists in / and if it is not named dev or named mnt then mount it. Do you think this is a decent way to do it? Any suggestions?
Sorry, I still haven't tested this script yet, so if you brave and see any changes that will make it work I am not resposible. But it is getting close to when I will run it for the first time. The difference between this and the one I wrote for Kali is this should be a one stop shop so to speak for getting into a non chroot enviroment where you can access Bt's tools from Android directly. Apperently about a year ago someone was trying something similar called "debian installer" or something, I haven't tried it out so maybe that actually works, idk, I am happy with this.
LOL
LMFAO!
I just realized I don't think I needed to worry about testing if the variable $d was named 'dev' or 'mnt' because they should get skipped by already being mounted. If not I guess if it works as is, may be extra precaution.
Done! Almost ;{)-
Uhmm.... hope you can see the screenshot...
its over wifi though, I had to edit the init.sh script just eth0 to wlan0 in 2 lines, duh! where is eth0 on phone?
Check out the filesystem
Bada bing, bada doom, dare ya goes`a for ya.
V-0.021
This should support args, if your using different image or location such as external sdcard or want to mount to a different location
Notes: 'ettin.sh' [/IMAGE/LOCATION] [IMAGENAME] [MOUNT/POINT]'
1) Don't add a trailing forward slash for image location, the first argument. Doing so may conflict with the script.
2) Don't add suffix to image name ( second argument), the script uses a wild card period wild card syntax to account for .iso, .raw, or .img aswell as version numbers, so if its backtrack-v-r5.img all you need is 'backtrack'.
3) Default mount is "/data/local/mnt"
for example:
Code:
ettin.sh /storage/extSdCard/ubuntufolder ubuntu /mnt/myLinux
That ^^^ will use a ubuntu image on the external sdcard and mount it to a folder called "myLinux" within the "/mnt" directory.
The script below...
Code:
#!/system/bin/sh
# ettin.sh v-0.021, "Two heads are better than one."
# Written by 'Edge-Case' @ 'forum.xda-developers.com'
# This version is attempting to use symbolic linking to correct some issues.
## The purpose of ettin.sh is to merge a Linux system with Android
## hopefully allowing both systems to run in synch with each other.
## It is probably best to be ran on devices with multi-core processors.
##"""Notes on Backtrack and Kali Linux Distributions:
##"""1) Postgresql needs to be configured in order for metasploit to connect to
##""" the database. This might be possible within the script. Perhaps
##""" it is simply a matter of configuring SSH? I don't know.
##"""2) The Kernel needs to be patched to allow for packet injection and
##""" monitor mode for an external 'wi-fi' card as the factory hardware
##""" does not support monitor mode, at least on Samsung Galaxy SIII.
#########
# Prep ##
#########
mount -wo remount systemfs /system
mount -wo remount rootfs /
imloc=${1:-"/storage/sdcard0/backtrack"}
imname=${2:-"backtrack"}
subset=${3:-"/data/local/mnt"}
#Check for root!
if [ ! -d "$subset" ]; then mkdir "$subset"; fi
busybox mount -wo loop ${imloc}*/${imname}*.* ${subset}
check_mnt="`echo $?`"
if [ ${check_mnt} != 0 ]; then echo "Something is wrong with mounting, check the situation!" && exit; fi
##################################################
# Copy contents of special directories to image ##
##################################################
if [ ! -f "${imloc}/success.txt" ] ; then cp -ai /sbin/* ${subset}/sbin && echo "Files have been copied on `date`." > ${imloc}/success.txt; fi
if [ -e "/root/*" ]; then cp ai /root/* ${subset}/root; fi
######################################################
# Make directories needed and mount the file-system ##
######################################################
cd ${subset}
for d in `ls` ; do if [ ! -d "/${d}" ] ; then mkdir /${d} && busybox mount --rbind ${subset}/${d} /${d} ; fi ; done
busybox mount --rbind ${subset}/root /root
busybox mount --rbind ${subset}/sbin /sbin
busybox cp -rspi ${subset}/etc/* /etc # We'll try making symbolic links from the image to Android's /etc instead.
# Add any directories as needed.
###############################
# be safe before we continue ##
###############################
mount -ro remount systemfs /system
mount -ro remount rootfs /
######################################
# continue building the environment ##
######################################
export PATH="/system/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/system/xbin:/usr/games"
export TERM=linux
export HOME="/root"
#################################
# further down the rabbit hole ##
#################################
/bin/bash -i ~/init.sh
Pretty happy with it now, so far. Touch FIXED
Well, I am tethered from my phone to my laptop, running ubuntu, this is how I am on the internet, so my phone is doing that...
I ran 'ettin.sh /storage/sdcard0/ubuntu ubuntu' using V-0.022 and only had two files that needed overwriting.
The touch is working....check
adb is working...check
Everything is mounted ...check
Apps like browser and dsploit are working on the phone as usual...check
'apt-get update && apt-get upgrade'....check (over adb, no chroot, as [email protected] using bin/bash)
'which nmap' .....check ("
[email protected]:~# which nmap
/usr/bin/nmap
")
Well **** ya'll looks like this might work... I am now going to consider modifying a stock rom to support users and login that meshes with debian and its "shadow" file etc etc, also I need to work out permissions and enviroment variables...
I'm happy...
Also for pentesting distro's "modifying Android kernel" tutorials would be nice, anybody able to point me to one?