Python Shell C Makefile
Latest commit d9b54ce Jul 5, 2016 @Rafiot Rafiot committed on GitHub Reject all network connexions.
Failed to load latest commit information.
deb Fix #11 Oct 9, 2013
diode_controller Fix permissions Feb 11, 2016
doc Visual guide on how to use CIRCLean added Jan 29, 2016
fs Reject all network connexions. Jul 5, 2016
fs_filecheck Add scripts required by CIRCLean 2.0 Nov 6, 2015
fs_shell/etc Fix permissions Feb 11, 2016
gpio_tests Add GPIO testing script Jul 4, 2015
kernel_config Re-enable updates of the system May 9, 2014
ledButton_controller Fix permissions Feb 11, 2016
midi midi grooming tunes Oct 9, 2013
tests Update to neest raspbian jessie lite Apr 26, 2016
.gitignore Initial version of the standalone python module May 10, 2015
CHANGELOG Typos Feb 10, 2016
LICENSE LICENCE->LICENSE Jul 8, 2014 Add info how to mount a SD created with NOOBS May 25, 2015
NOTES Typos Feb 10, 2016
NOTES-RPI2 Typo Feb 16, 2016 Update Mar 10, 2015 Use own version of officedissector. May 9, 2016 Update to neest raspbian jessie lite Apr 26, 2016
TODO Typos Feb 10, 2016 add a bunch of script to boot the rpi in qemu, and get a root shell May 7, 2014 Merge branch 'master' into dev Dec 8, 2015 add sudoers file, ensuring no users are sudoers with no or default pa… Nov 20, 2013
get_shell.exp Use newest version of Raspian, updated to jessie. Jul 30, 2014 Re-enable updates of the system May 9, 2014 Use own version of officedissector. May 9, 2016 Use pmount, remove sudoer rights to the user Jul 30, 2014 Update helpers to Debian Jessie. Mar 26, 2014 make it easyer to run the tests Mar 26, 2014 Update to neest raspbian jessie lite Apr 26, 2016 Rework the way we select which partition types to test and introduce … Oct 9, 2015 Make it easier to update the PyCIRCLean install inside an image. Oct 9, 2015 Use most recent image Sep 30, 2014


CIRCLean logo Cleaner in action

How To

Graphical how-to and pre-build image.

To prepare the SD card on Windows, you can use Win32DiskImager.

And the linux way is in the command line, via dd (see in


This project aims to be used in case you got an USB key you do not know what is contains but still want to have a look.

Work in progress, contributions welcome:

The content of the first key will be copyed or/and converted to the second key following theses rules (based on the mime type):

  • direct copy of plain text files (mime type: text/*)
  • direct copy of audio files (mime type: audio/*)
  • direct copy of image files (mime type: image/*)
  • direct copy of video files (mime type: video/*)
  • direct copy of example files (mime type: example/*)
  • direct copy of message files (mime type: message/*)
  • direct copy of model files (mime type: model/*)
  • direct copy of multipart files (mime type: multipart/*)
  • Copying or converting the application files this way (mime type: application/*):
    • pdf => HTML
    • msword|vnd.openxmlformats-officedocument.||vnd.oasis.opendocument* => pdf => html
    • xml => copy as a text file
    • x-dosexec (executable) => prepend and append DANGEROUS to the filename
    • x-gzip|x-tar|x-7z-compressed => compressed file
    • octet-stream => direct copy

Compressed files (zip|x-rar|x-bzip2|x-lzip|x-lzma|x-lzop|x-xz|x-compress|x-gzip|x-tar|*compressed):

  • Unpacking of archives
  • Recursively run the rules on the unpacked files


  1. Power off the device
  2. Plug the untrusted key in the top usb slot of the Raspberry Pi
  3. Plug your own key in the bottom usb slot

    Note: This key should be bigger than the original one because the archives will be copyed

  4. Optional: connect the HDMI cable to a screen to see what happen

  5. Connect the power to the micro USB

    Note: 5V, 700mA regulated power supply

  6. Wait until you do not see any blinking green light on the board, or if you connected the HDMI cable, check the screen it's slow and can take 30-60 minutes depending on how many document conversions take place

  7. Power off the device and disconnect the drives

Helper scripts

You should use them as example when you are creating a new image and probably not run them blindly as you will most probably have to change constraints accordingly to your configuration.


  • uses qemu to chroot into a raspbian instance (.img or SD Card)
  • update the system, add the repositories and install all the dependencies needed to compile poppler and pdf2htmlEX on a rPi
  • compile the latest version of poppler from debian experimental, pull and compile the latest version of pdf2htmlEX from the git repository
  • update the system, install the dependencies of poppler and pdf2htmlEX, install poppler and pdf2htmlEX (the deb packages compiled in the builder)
  • create the user who will run the scripts, assign the proper sudo rights.
  • populate the content of the directory fs/ in the image, contains a sample of dd command to write the image on the SD card. TAKE CARE NOT USING THE WRONG DESTINATION