├── _posts ├── .gitkeep ├── 2015-09-25-general-usage.md ├── 2018-05-12-audit.md ├── 2015-09-25-winapp2ini.md ├── 2018-03-14-troubleshooting.md ├── 2019-08-14-chaff.md ├── 2015-09-30-install-on-windows.md ├── 2019-04-19-contributing.md ├── 2019-04-19-variables.md ├── 2015-09-25-preferences.md ├── 2015-09-25-running-from-source-code.md ├── 2015-09-25-command-line-interface.md ├── 2015-09-30-install-on-linux.md ├── 2015-09-25-cleanerml.md ├── 2021-04-17-testing.md ├── 2015-09-25-frequently-asked-questions.md └── 2015-09-25-shred-files-and-wipe-disks.md ├── CNAME ├── _includes ├── footer.html ├── ad.html ├── header.html ├── google_analytics.html ├── navigation.html └── disqus.html ├── .gitignore ├── images ├── debug-windows10.png ├── run-dialog-windows10.png └── windows-10-verified-publisher-certum.png ├── Gemfile ├── _layouts ├── page.html └── default.html ├── README.md ├── index.md ├── css ├── main.css └── syntax.css ├── _config.yml ├── bin └── jekyll-page └── COPYING /_posts/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /CNAME: -------------------------------------------------------------------------------- 1 | docs.bleachbit.org 2 | -------------------------------------------------------------------------------- /_includes/footer.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.sw? 2 | _site 3 | _pages 4 | *~ 5 | -------------------------------------------------------------------------------- /images/debug-windows10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bleachbit/docs/HEAD/images/debug-windows10.png -------------------------------------------------------------------------------- /images/run-dialog-windows10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bleachbit/docs/HEAD/images/run-dialog-windows10.png -------------------------------------------------------------------------------- /images/windows-10-verified-publisher-certum.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bleachbit/docs/HEAD/images/windows-10-verified-publisher-certum.png -------------------------------------------------------------------------------- /_includes/ad.html: -------------------------------------------------------------------------------- 1 | 3 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source "https://rubygems.org" 2 | 3 | #https://talk.jekyllrb.com/t/liquid-4-0-3-tainted/7946/12 4 | 5 | gem 'liquid', '>= 4.0', '< 6.0' 6 | gem 'jekyll', '>= 4.3.2' 7 | gem 'jekyll-redirect-from' 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /_layouts/page.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | --- 4 | 5 |
Main site 6 | | Download 7 | | Get Help 8 | | Edit this documentation 9 |
10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /_includes/google_analytics.html: -------------------------------------------------------------------------------- 1 | 10 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # BleachBit Documentation 2 | 3 | Are you a user wanting to learn how to use BleachBit? [Read the documentation.](https://docs.bleachbit.org/) 4 | 5 | # Build 6 | 7 | ```sh 8 | sudo apt-get update 9 | sudo apt-get install gnupg2 ruby jekyll bundle 10 | sudo apt-get remove ruby-liquid # in case installed earlier 11 | bundle install 12 | bundle exec jekyll serve 13 | bundle exec jekyll build 14 | ``` 15 | 16 | # Help improve 17 | 18 | 1. Log in to GitHub. 19 | 2. Fork this repository to make your own copy. 20 | 3. Make the edits in your own repository. 21 | 4. Submit a pull request to merge your changes. 22 | 23 | # License 24 | 25 | The documentation is under the GNU General Public License version 3 or later 26 | -------------------------------------------------------------------------------- /_includes/navigation.html: -------------------------------------------------------------------------------- 1 | 17 | -------------------------------------------------------------------------------- /index.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: "BleachBit Documentation" 4 | redirect_from: "/doc/install.html" 5 | --- 6 | 7 | ### BleachBit 8 | 9 | This is the manual for [BleachBit](https://www.bleachbit.org), a fast and safe system cleaner. By simply checking boxes, you can delete unnecessary files such as cache, logs, cookies, recently-used-files lists, and more. 10 | 11 | Use the navigation on left to browse the documentation. 12 | 13 |  14 | 15 | [Edit this documentation](https://github.com/bleachbit/docs) on GitHub. 16 | -------------------------------------------------------------------------------- /_includes/disqus.html: -------------------------------------------------------------------------------- 1 | 2 | 13 | 14 | -------------------------------------------------------------------------------- /_posts/2015-09-25-general-usage.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "General Usage" 4 | category: doc 5 | date: 2015-09-25 23:25:52 6 | order: 3 7 | --- 8 | 9 | The general usage is as follows: 10 | 11 | 1. Notice on the left of the main window is a list of cleaners and options. (Each cleaner has one or more options.) 12 | 2. Click on the label of the cleaner that interests you. (The label is the text next to the checkbox.) 13 | 3. Read the cleaner's description (which appears on the right). 14 | 4. Check any options you want to clean. 15 | 5. _Close any applications you will be cleaning._ For example, you should not clean Firefox while Firefox is running. 16 | 6. Click the **Preview** button, and review the list of files. The preview button is "safe" and makes no changes to your system. 17 | 7. Make any adjustments to your selection of options, and preview again until you are comfortable with the changes. Disable any options which you don't understand or make you uncomfortable. 18 | 8. Click the **Delete** button. 19 | 20 | Watch the [videos](https://www.bleachbit.org/videos) for narrated walk-through of usage. 21 | 22 | 23 | -------------------------------------------------------------------------------- /css/main.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-weight: 400; 3 | text-shadow: 0 1px 1px rgba(255, 255, 255, 0.7); 4 | } 5 | 6 | pre, code { 7 | border: none; 8 | border-radius: 0; 9 | background-color: #f9f9f9; 10 | font-size: 0.85em; 11 | } 12 | 13 | pre { 14 | font-size: 1em; 15 | } 16 | 17 | code { 18 | color: inherit; 19 | } 20 | 21 | #header { 22 | border-bottom: 1px solid #eee; 23 | margin-bottom: 20px; 24 | } 25 | 26 | #header a:hover { 27 | text-decoration: none; 28 | } 29 | 30 | #footer { 31 | margin: 20px 0; 32 | font-size: 0.85em; 33 | color: #999; 34 | text-align: center; 35 | } 36 | 37 | #content > .page-header:first-child { 38 | margin-top: 0; 39 | } 40 | 41 | #content > .page-header:first-child h2 { 42 | margin-top: 0; 43 | } 44 | 45 | 46 | #navigation { 47 | font-size: 0.9em; 48 | } 49 | 50 | #navigation li a { 51 | padding-left: 10px; 52 | padding-right: 10px; 53 | } 54 | 55 | #navigation .nav-header { 56 | padding-left: 0; 57 | padding-right: 0; 58 | } 59 | 60 | body.rtl { 61 | direction: rtl; 62 | } 63 | 64 | body.rtl #header .brand { 65 | float: right; 66 | margin-left: 5px; 67 | } 68 | body.rtl .row-fluid [class*="span"] { 69 | float: right !important; 70 | margin-left: 0; 71 | margin-right: 2.564102564102564%; 72 | } 73 | body.rtl .row-fluid [class*="span"]:first-child { 74 | margin-right: 0; 75 | } 76 | 77 | body.rtl ul, body.rtl ol { 78 | margin: 0 25px 10px 0; 79 | } 80 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | # Site title and subtitle. This is used in _includes/header.html 2 | title: BleachBit Documentation 3 | #subtitle: 'Documentation for BleachBit' 4 | 5 | # if you wish to integrate disqus on pages set your shortname here 6 | disqus_shortname: '' 7 | 8 | # if you use google analytics, add your tracking id here 9 | google_analytics_id: '' 10 | 11 | # Enable/show navigation. There are there options: 12 | # 0 - always hide 13 | # 1 - always show 14 | # 2 - show only if posts are present 15 | navigation: 2 16 | 17 | # URL to source code, used in _includes/footer.html 18 | #codeurl: 'https://github.com/bruth/jekyll-docs-template' 19 | 20 | # Default categories (in order) to appear in the navigation 21 | sections: [ 22 | ['doc', 'Documentation'], 23 | ['tut', 'Tutorial'], 24 | ['ref', 'Reference'], 25 | ['cml', 'CleanerML'], 26 | ['dev', 'Developers'], 27 | ['post', 'Posts'] 28 | ] 29 | 30 | # Keep as an empty string if served up at the root. If served up at a specific 31 | # path (e.g. on GitHub pages) leave off the trailing slash, e.g. /my-project 32 | baseurl: '' 33 | 34 | # Dates are not included in permalinks 35 | permalink: none 36 | 37 | # Syntax highlighting 38 | highlighter: rouge 39 | 40 | # Since these are pages, it doesn't really matter 41 | future: true 42 | 43 | # Exclude non-site files 44 | exclude: ['bin', 'README.md'] 45 | 46 | # Use the kramdown Markdown renderer 47 | markdown: kramdown 48 | redcarpet: 49 | extensions: [ 50 | 'no_intra_emphasis', 51 | 'fenced_code_blocks', 52 | 'autolink', 53 | 'strikethrough', 54 | 'superscript', 55 | 'with_toc_data', 56 | 'tables', 57 | 'hardwrap' 58 | ] 59 | 60 | # https://help.github.com/articles/redirects-on-github-pages/ 61 | plugins: 62 | - jekyll-redirect-from 63 | 64 | -------------------------------------------------------------------------------- /_posts/2018-05-12-audit.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "Audit" 4 | category: dev 5 | date: 2018-05-12 15:38:24 6 | --- 7 | 8 | This is one procedure to audit the BleachBit's effectiveness. 9 | 10 | ### Prerequisite 11 | 12 | Make sure you have the latest version of BleachBit. Preferably, it is 13 | the latest version in Git or [the latest CI build](https://ci.bleachbit.org/). 14 | 15 | ### Google Chrome 16 | 17 | #### Exercise 18 | 19 | These steps "exercise" the browser to use all its functionality. 20 | 21 | 1. Start Google Chrome. 22 | 1. Enable Chrome Sync. 23 | 1. Go to Google Search, and search for a [string of random characters](https://www.random.org/strings/?num=10&len=8&digits=on&upperalpha=on&loweralpha=on&unique=off&format=plain&rnd=new). Make a note of this string for a step below. 24 | 1. On the [Evercookie](https://samy.pl/evercookie/) page, open the Chrome site preferences. Enable Flash, Location, and other site-specific preferences. 25 | 1. Create an Evercookie. 26 | 1. Download a file from any site, and make a note of the filename and download URL. 27 | 1. Run Service Workers ([demo](https://googlechrome.github.io/samples/service-worker/basic/)). 28 | 1. Play media ([demo](https://www.webmfiles.org/demo-files/)). (This is not equivalent to downloading the media.) 29 | 1. Use other functionality in Google Chrome, and make a note of the associated URLs or other strings. 30 | 31 | #### Clean 32 | 33 | 1. Close Google Chrome. 34 | 1. Start BleachBit. 35 | 1. In the BleachBit preferences, enable the option *Overwrite contents*. 36 | 1. Use BleachBit to clean all of Google Chrome. 37 | 38 | #### Audit 39 | 40 | 1. Use a tool such as `grep` to search the Google Chrome profile folder for the random string (used in Google Search, above), the site address `samy.pl`, and other strings from the exercise phase. There should be no matches. 41 | 1. Start Google Chrome. 42 | 1. Open the browser history (CTRL+H), and there should be none. 43 | 1. Revisit the Evercookie page, and the cookie with the same identifier should not be rediscovered. 44 | -------------------------------------------------------------------------------- /_posts/2015-09-25-winapp2ini.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "Winapp2.ini" 4 | category: doc 5 | date: 2015-09-25 23:38:45 6 | order: 8 7 | --- 8 | 9 | BleachBit imports cleaning rules from winapp2.ini files giving Windows users 2400+ additional cleaners (and growing) created by the community. [Piriform does not endorse importing "CCleaner data" into BleachBit](https://www.bleachbit.org/news/ccleaner-asks-bleachbit-remove-winapp2ini-importer). 10 | 11 | If you are writing new cleaner definitions, it is recommended you write them in [CleanerML](cleanerml) instead of winapp2.ini format because CleanerML is cross-platform, not legally encumbered, and contains many features not available in winapp2.ini. 12 | 13 | ### Automatically import Winapp2.ini 14 | 15 | Check this box, and restart BleachBit to download the winapp2.ini file. Restart BleachBit again for it to take effect. 16 | 17 |  18 | 19 | ### Manually import Winapp2.ini 20 | 21 | To manually import winapp2.ini cleaners, simply do this: 22 | 23 | 1. Download a winapp2.ini file. The CCleaner community organically maintains various files: [winapp2.ini](https://github.com/MoscaDotTo/Winapp2/). This file is not created by endorsed by Piriform, maker of CCleaner. An alternative file [Winapp2.ini plus](https://github.com/bleachbit/winapp2.ini) contains additional entries for BleachBit. 24 | 2. Place the winapp2.ini file in the right directory, which is most of the same directories as [CleanerML](cleanerml). If you install BleachBit (i.e., non-portable mode), below are the recommended directories. See [CleanerML storage](cleanerml) for more options. 25 | * Windows XP: ```C:\Documents and Settings\(username)\Application Data\BleachBit\Cleaners\``` 26 | * Windows Vista/7: ```C:\Users\(username)\AppData\Roaming\BleachBit\Cleaners\``` 27 | 3. Restart BleachBit. 28 | 29 | 30 | -------------------------------------------------------------------------------- /_posts/2018-03-14-troubleshooting.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "Troubleshooting" 4 | category: doc 5 | date: 2000-03-14 21:36:58 6 | order: 10 7 | --- 8 | 9 | When something goes wrong, these steps will help you gather information to ask for help or to file a bug report. 10 | 11 | ## Show system information 12 | 13 | Sometimes the system information is helpful to include when asking for help, and here is how to find it. 14 | 15 | 1. Open BleachBit 16 | 2. Click on the Help menu 17 | 3. Click on System Information 18 | 4. Click the Copy button to copy the information the clipboard. 19 | 20 | Then paste the information in your help request. 21 | 22 | ## Show the application log 23 | 24 | ### When installed on Windows 10 25 | 26 | When BleachBit is installed on Windows 10, use these steps to show logging information in the console. This sets the logging level to the normal level for normal releases, and it sets it to verbose level for beta releases. 27 | 28 | 1. Click in the Windows search box 29 | 2. Type `debug` to search for it 30 | 2. Click on **BleachBit Debugging Terminal** 31 | 32 |  33 | 34 | To make logging more verbose for normal releases or to write the log to a file, instead follow these steps. 35 | 36 | 1. Hold down the **Windows** key while pressing the **R** button. This brings up the Run dialog. 37 | 2. Type or paste the command `"%ProgramFiles(x86)%\BleachBit\bleachbit_console.exe" --gui --debug-log=%USERPROFILE%\desktop\bleachbit.log` 38 | 3. Click **Run** 39 | 40 |  41 | 42 | Please note that in the screenshot above, the whole command cannot be seen because it is wider than the field. 43 | 44 | The log will appear on the desktop, and you will also see it live in the console window. 45 | 46 | ### On Linux 47 | 48 | On Linux systems use these steps to show verbose logging information: 49 | 50 | 1. Open a terminal such as GNOME Terminal 51 | 2. Type or paste the command `bleachbit --gui --debug-log=/home/username/bleachbit.log` (while replacing *username* with your system username) 52 | 53 | The log will appear in your home directory. 54 | 55 | ## Where to get help 56 | 57 | See [BleachBit support](https://www.bleachbit.org/help) to get help. 58 | -------------------------------------------------------------------------------- /_posts/2019-08-14-chaff.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "Chaff" 4 | category: doc 5 | date: 2000-08-14 20:45:26 6 | --- 7 | 8 | For aircrafts, chaff is a physical countermeasure that confuses radar by making it 9 | seem like there are additional aircraft in the sky, and chaff protects the aircraft 10 | by misdirecting radar-guided missiles. 11 | 12 | Likewise, BleachBit version 3 introduces a basic chaff system that creates files to 13 | confuse digital forensics. Think of it also like the metaphor of the needle in the haystack. 14 | The needle represents the files you want to keep private, and the chaff is the haystack that makes 15 | the needle difficult to find because the forensic investigator has more junk to sift through 16 | before finding all the needles. 17 | 18 | Does this imply that using BleachBit to delete other data, such as browser history, 19 | is counterproductive? No. Use BleachBit to remove any private data you don't want found. 20 | However, there may be private data you decide to keep or forgot to clean, and chaff is 21 | one of an array of options to protect this private data. Of course, please also consider 22 | other options such as encryption! 23 | 24 | BleachBit uses a statistical model called Markov chains to learn a document as inspiration 25 | and then use it to generate random text that is difficult for an investigator to fingerprint. 26 | At a glance, the chaff files seem to be English, but a closer inspection reveals they are 27 | nonsense, so do not spend much time reading them looking for any wisdom. 28 | 29 | BleachBit 3.0 comes with two statistical models. The first model was inspired by [Hillary 30 | Clinton's emails as released by the United States Department of State](https://foia.state.gov/Search/Collections.aspx). 31 | Please remember that [FBI documents](https://www.bleachbit.org/press) indicate Clinton's 32 | IT guy used BleachBit to wipe emails from her private server, and now BleachBit can also 33 | do the opposite: generate Clinton's emails. 34 | 35 | The second model was inspired by [2600: The Hacker Quarterly](https://2600.com), a magazine 36 | of the computer underground, to yield more interesting keywords that might show up on the 37 | forensic investigator's scans. 38 | 39 | When making chaff files, either leave them undeleted or delete them without shredding 40 | them. Shredding them would remove any trace, which would be counterproductive, 41 | but deleting them without shredding can slow down the forensic investigator. 42 | 43 | While BleachBit itself does not implement any steganography, a savvy user can consider 44 | hiding private data in the seemingly-useless chaff files. Just this possibility 45 | implies a thorough digital forensics investigation would require examining the contents 46 | of the chaff files rather than whitelisting them. 47 | 48 | -------------------------------------------------------------------------------- /_posts/2015-09-30-install-on-windows.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "Install on Windows" 4 | category: doc 5 | date: 2015-09-30 20:37:24 6 | order: 1 7 | --- 8 | 9 | To install BleachBit, first download the latest installation package for your system. 10 | 11 | BleachBit version 4 is supported on Windows 10 and 11 (32-bit or 64-bit). 12 | 13 | #### Standard Installation 14 | 15 | Most Windows users want the standard installation. 16 | 17 | First, run the installer, which has a name like BleachBit-4.6.2-setup.exe. Then, follow the prompts. 18 | 19 | Verify the installer comes from the verified publisher shown in the screenshot. 20 | 21 |  22 | 23 | #### Portable Use 24 | 25 | While installation is the typical way of using BleachBit, some users prefer an alternative. They may want to put the application on a removable drive or use it on a system without system permission to run installers, but a downside is that the context menu integration is not supported. 26 | 27 | To run in portable mode, download the package, which has a name like BleachBit-4.6.2-portable.zip. Then use a standard unzip utility to unpack the file. Such a utility is included with Windows: just right-click on the .zip file and choose **Extract all files** which creates a new folder. 28 | 29 | Do not double-click on the .zip file. 30 | 31 | #### Silent Installation 32 | 33 | Silent installation is for advanced users or system administrators. This feature installs the application without any prompts from the user, and system administrators use it to automate the process of installing an application across many systems. 34 | 35 | Using BleachBit 4.6.2 as an example, run the following command to install the application for all users. It requires the calling process to have administrator privileges: 36 | 37 | `BleachBit-4.6.2-setup.exe /S /allusers` 38 | 39 | To install for only the current user, run this command: 40 | 41 | `BleachBit-4.6.2-setup.exe /S /currentuser` 42 | 43 | To omit the desktop shortcut, add `/NoDesktopShortcut` directly after `/S`: 44 | 45 | `BleachBit-4.6.2-setup.exe /S /NoDesktopShortcut /currentuser` 46 | 47 | Because the installer is silent, it will not throw an error such as if you forget to choose between `/allusers` and `/currentuser` or if the calling process has insufficient privileges. 48 | 49 | The `/S` and `/NoDesktopShortcut` switches _are_ case-sensitive. 50 | 51 | The switch `/NoDesktopShortcut` was added in BleachBit 4.4.1. 52 | 53 | #### After Installation 54 | 55 | After installation, review the [preference options](/doc/preferences.html) or skip to [general usage](/doc/general-usage.html). 56 | -------------------------------------------------------------------------------- /bin/jekyll-page: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | require 'date' 4 | require 'optparse' 5 | 6 | options = { 7 | # Expects to be in the bin/ sub-directory by default 8 | :path => File.dirname(File.dirname(__FILE__)) 9 | } 10 | 11 | parser = OptionParser.new do |opt| 12 | opt.banner = 'usage: jekyll-page TITLE CATEGORY [FILENAME] [OPTIONS]' 13 | opt.separator '' 14 | opt.separator 'Options' 15 | opt.on('-e', '--edit', 'Edit the page') do |edit| 16 | options[:edit] = true 17 | end 18 | opt.on('-l', '--link', 'Relink pages') do |link| 19 | options[:link] = true 20 | end 21 | opt.on('-p PATH', '--path PATH', String, 'Path to project root') do |path| 22 | options[:path] = path 23 | end 24 | opt.separator '' 25 | end 26 | 27 | parser.parse! 28 | 29 | title = ARGV[0] 30 | category = ARGV[1] 31 | filename = ARGV[2] 32 | 33 | # Resolve any relative links 34 | BASE_DIR = File.expand_path(options[:path]) 35 | POSTS_DIR = "#{BASE_DIR}/_posts" 36 | PAGES_DIR = "#{BASE_DIR}/_pages" 37 | 38 | # Ensure the _posts directory exists (we are in the correct directory) 39 | if not Dir.exists?(POSTS_DIR) 40 | puts "#{POSTS_DIR} directory does not exists" 41 | exit 42 | end 43 | 44 | # Create _pages directory if it doesn't exist 45 | if not Dir.exists?(PAGES_DIR) 46 | Dir.mkdir(PAGES_DIR) 47 | end 48 | 49 | if options[:link] 50 | Dir.foreach(POSTS_DIR) do |name| 51 | next if name[0] == '.' 52 | nodate = name[/\d{4}-\d{2}-\d{2}-(?