XiaopanOS is an easy to use software package for beginners and experts that includes a number of advanced hacking tools to penetrate wireless networks. Based on the Tiny Core Linux (TCL) operating system (OS), it has a slick graphical user interface (GUI) requiring no need for typing Linux commands. XiaopanOS is Windows, Mac and Linux compatible and users can simply install and boot this ~70MB OS through a USB pen drive or in a virtual machine (VM) environment.
You can boot from XiaOpan direct from the ISO file on a grub4dos bootable USB Flash drive or from the extracted files (flat file). You can also save changes if you wish – e.g. Desktop background choice, etc.
The Batman – Dark Knight wallpaper is set in the mydata.tgz data store folder which is loaded on boot.
This Tutorial assumes you already have a multiboot grub4dos USB drive and that you want to add XiaOpan to it.
If you do not already have a suitable USB drive, you can prepare one using RMPrepUSB – select the following options and click 6 Prepare Drive:
- 1. MAX
- 2. (any name you want)
- 3. Bootloader options – WinPE
- 4. FAT32 + Boot as HDD
- 5. (do not tick)
After clicking on 6 Prepare Drive and formatting the USB drive, click on the Install grub4dos button to install grub4dos.
You will also need to download the XiaOpan ISO from here – I used the 4.2.2 (0.4.4) ISO for my tests which I downloaded via Torrent.
Note: Drive partition types supported by the Tiny Core base are: ext2, ext3, ext4, fat32 – NTFS is not supported!
If you have an NTFS grub4dos USB drive, use Easy2Boot (or the partnew method).
You need a recent version of 0.4.5c grub4dos (2013 at least – make sure the grldr file is recent!).
BOOT FROM ISO
Default ‘core’ wallpaper if mydata.tgz is not found on boot.
The ISO file can be placed in any folder on your USB drive. For this Tutorial, I will assume the ISO file is in the \ISO folder.
Add the following menu entry:
- iftitle [if exist /iso/Xiaopan0.4.4.iso] Xiaopan0.4.4.iso
- uuid (bd) && call set UUID=%^?%
- map /iso/Xiaopan0.4.4.iso (0xff)
- map –hook
- root (0xff)
- set mydata=
- if exist (bd)/xi.tgz set mydata=mydata=xi
- kernel /boot/vmlinuz quiet tinycore iso=UUID=%UUID%/iso/Xiaopan0.4.4.iso waitusb=5 %mydata%
- initrd /boot/core.gz
Change the iso filename and the path if you place the ISO anywhere else on your USB drive!
You can test it to see if it boots using F11 in RMPrepUSB in the usual way (though it is quite slow!).
Note that uuid () && call set UUID=%^?% is used because uuid () && set UUID=%?% does not work due to the order of execution when using &&..
ext2/3/4/FAT32 only – To make your extensions and changes persistent, Tiny Core needs a directory to store them.
If you wish to have any changes that you make saved, then you also need to follow these instructions
1. Extract the mydata.tgz file from the root of the ISO file using 7Zip (or mount the ISO file using ImDisk or Virtual CloneDrive and extract the file)
2. Copy the file to the root of the USB boot drive
3. Rename the file to xi.tgz
You should now find that when the ISO boots, you will have a black background picture with a ‘Batman – Dark Knight’ bat logo in the centre. Any changes you make to the Desktop, etc. will now be saved in the \xi.tgz file.
Note: The mydatabk.tgz file within the ISO root is a backup copy that can be saved or loaded manually from the Desktop
You can boot from the ISO on an NTFS USB drive with persistence
Use Easy2Boot – see my blog entry here.
BOOT FROM FLAT FILE STRUCTURE
1. Create a folder on your USB drive called \xiaopan
2. Extract all files from the ISO and copy them to the \xiaopan folder
3. Use the following menu entry
- iftitle [find /xiaopan/boot/vmlinuz] XiaoPan OS 0.4.4 Flat file
- uuid (bd) > nul
- set UUID=%?_UUID%
- find –set-root /xiaopan/boot/vmlinuz
- set mydata=
- if exist (bd)/xi.tgz set mydata=mydata=xi
- kernel /xiaopan/boot/vmlinuz quiet tinycore tce=UUID=%UUID%/xiaopan/cde tz=GMT+0 showapps waitusb=5 %mydata%
- initrd /xiaopan/boot/core.gz
Any changes you make will be saved to the \xiaopan\cde\mydata.tgz file on exit. If you wish to use the same mydata file that was included with the ISO and get the batman bat logo wallpaper – follow the instructions in the persistence section above.
CHANGING THE PARAMETERS (SOME CHEAT CODES)
A full list of cheat codes can be found here.
Some useful ones are:
- quiet – do not show all text messages
- showapps – list all app packages as they are loaded
- tz= – set the timezone
- waitusb=5 – set a 5 second wait for USB detection – important to add this when USB booting!
- mydata=filename – set the name of the datastore – do not specify an extension, .tgz will be added automatically
- tce= – set the Tiny Core extensions data path
- vga=xxx – set the vga mode – see here for a list. 788=800×600 for instance. Tiny Core defaults to vga=791.
- xvesa=800x600x32 – specify resolution
- norestore – do not restore settings
The default location is the root of the drive \mydata.tgz. This can be changed with the tce= boot parameter (the mydata.tgz file will be expected in whatever folder is set). However, this can be overridden by specifiyng a mydata= cheat code – e.g. cheat codes…
tce=UUID=%UUID%/ISO – would cause the file \ISO\mydata.tgz to be created on exit and/or used on boot
tce=UUID=%UUID%/ISO mydata=xi – would cause the file \xi.tgz to be created on exit and/or used on boot
If tce=xxx is specified, then the following files/folder will be saved (though they may be empty) at \xxx :
- optional\ (contains many .tcz files)
How Tinycore boots
When Tinycore boots, it will first need to know where it’s extension files and any backup/restore/customized file are located, then it will load the applications and drivers that are listed in onboot.lst and copy2fs.lst into RAM. Settings in mydata.tgz will then be written to the file structure in RAM.
Both ‘APP/Driver’.tce and ‘APP/Driver’.tcz are installable Tinycore Extension files. ‘.tce’ will get priority and install to RAM to be ready at any time, ‘.tcz’ does not load in RAM deliberately unless specified in onboot.lst or copy2fs.lst.
Tinycore will search inside the ‘tce’ folder you’ve specified in the boot parameter, for onboot.lst, mydata.tgz, also ‘optional’ and ‘on demand’ folders. All priority loaded Tinycore extensions files should be put inside the ‘optional’ folder, and those not actively run should put inside ‘ondemand’ folder. The idea is to lighten the load of RAM in use.