├── template.app └── Contents │ ├── MacOS │ └── Application Stub │ ├── Resources │ ├── AutomatorApplet.icns │ ├── ar.lproj │ │ └── ApplicationStub.nib │ ├── ca.lproj │ │ └── ApplicationStub.nib │ ├── cs.lproj │ │ └── ApplicationStub.nib │ ├── da.lproj │ │ └── ApplicationStub.nib │ ├── el.lproj │ │ └── ApplicationStub.nib │ ├── fi.lproj │ │ └── ApplicationStub.nib │ ├── he.lproj │ │ └── ApplicationStub.nib │ ├── hr.lproj │ │ └── ApplicationStub.nib │ ├── hu.lproj │ │ └── ApplicationStub.nib │ ├── id.lproj │ │ └── ApplicationStub.nib │ ├── ko.lproj │ │ └── ApplicationStub.nib │ ├── ms.lproj │ │ └── ApplicationStub.nib │ ├── no.lproj │ │ └── ApplicationStub.nib │ ├── pl.lproj │ │ └── ApplicationStub.nib │ ├── pt.lproj │ │ └── ApplicationStub.nib │ ├── ro.lproj │ │ └── ApplicationStub.nib │ ├── ru.lproj │ │ └── ApplicationStub.nib │ ├── sk.lproj │ │ └── ApplicationStub.nib │ ├── sv.lproj │ │ └── ApplicationStub.nib │ ├── th.lproj │ │ └── ApplicationStub.nib │ ├── tr.lproj │ │ └── ApplicationStub.nib │ ├── uk.lproj │ │ └── ApplicationStub.nib │ ├── vi.lproj │ │ └── ApplicationStub.nib │ ├── Dutch.lproj │ │ └── ApplicationStub.nib │ ├── es_MX.lproj │ │ └── ApplicationStub.nib │ ├── pt_PT.lproj │ │ └── ApplicationStub.nib │ ├── zh_CN.lproj │ │ └── ApplicationStub.nib │ ├── zh_TW.lproj │ │ └── ApplicationStub.nib │ ├── English.lproj │ │ └── ApplicationStub.nib │ ├── French.lproj │ │ └── ApplicationStub.nib │ ├── German.lproj │ │ └── ApplicationStub.nib │ ├── Italian.lproj │ │ └── ApplicationStub.nib │ ├── Spanish.lproj │ │ └── ApplicationStub.nib │ └── Japanese.lproj │ │ └── ApplicationStub.nib │ ├── Info.plist │ └── document.wflow ├── .gitignore ├── README.md ├── mactomb.sh └── LICENSE /template.app/Contents/MacOS/Application Stub: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davinerd/MacTomb/HEAD/template.app/Contents/MacOS/Application Stub -------------------------------------------------------------------------------- /template.app/Contents/Resources/AutomatorApplet.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davinerd/MacTomb/HEAD/template.app/Contents/Resources/AutomatorApplet.icns -------------------------------------------------------------------------------- /template.app/Contents/Resources/ar.lproj/ApplicationStub.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davinerd/MacTomb/HEAD/template.app/Contents/Resources/ar.lproj/ApplicationStub.nib -------------------------------------------------------------------------------- /template.app/Contents/Resources/ca.lproj/ApplicationStub.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davinerd/MacTomb/HEAD/template.app/Contents/Resources/ca.lproj/ApplicationStub.nib -------------------------------------------------------------------------------- /template.app/Contents/Resources/cs.lproj/ApplicationStub.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davinerd/MacTomb/HEAD/template.app/Contents/Resources/cs.lproj/ApplicationStub.nib -------------------------------------------------------------------------------- /template.app/Contents/Resources/da.lproj/ApplicationStub.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davinerd/MacTomb/HEAD/template.app/Contents/Resources/da.lproj/ApplicationStub.nib -------------------------------------------------------------------------------- /template.app/Contents/Resources/el.lproj/ApplicationStub.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davinerd/MacTomb/HEAD/template.app/Contents/Resources/el.lproj/ApplicationStub.nib -------------------------------------------------------------------------------- /template.app/Contents/Resources/fi.lproj/ApplicationStub.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davinerd/MacTomb/HEAD/template.app/Contents/Resources/fi.lproj/ApplicationStub.nib -------------------------------------------------------------------------------- /template.app/Contents/Resources/he.lproj/ApplicationStub.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davinerd/MacTomb/HEAD/template.app/Contents/Resources/he.lproj/ApplicationStub.nib -------------------------------------------------------------------------------- /template.app/Contents/Resources/hr.lproj/ApplicationStub.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davinerd/MacTomb/HEAD/template.app/Contents/Resources/hr.lproj/ApplicationStub.nib -------------------------------------------------------------------------------- /template.app/Contents/Resources/hu.lproj/ApplicationStub.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davinerd/MacTomb/HEAD/template.app/Contents/Resources/hu.lproj/ApplicationStub.nib -------------------------------------------------------------------------------- /template.app/Contents/Resources/id.lproj/ApplicationStub.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davinerd/MacTomb/HEAD/template.app/Contents/Resources/id.lproj/ApplicationStub.nib -------------------------------------------------------------------------------- /template.app/Contents/Resources/ko.lproj/ApplicationStub.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davinerd/MacTomb/HEAD/template.app/Contents/Resources/ko.lproj/ApplicationStub.nib -------------------------------------------------------------------------------- /template.app/Contents/Resources/ms.lproj/ApplicationStub.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davinerd/MacTomb/HEAD/template.app/Contents/Resources/ms.lproj/ApplicationStub.nib -------------------------------------------------------------------------------- /template.app/Contents/Resources/no.lproj/ApplicationStub.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davinerd/MacTomb/HEAD/template.app/Contents/Resources/no.lproj/ApplicationStub.nib -------------------------------------------------------------------------------- /template.app/Contents/Resources/pl.lproj/ApplicationStub.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davinerd/MacTomb/HEAD/template.app/Contents/Resources/pl.lproj/ApplicationStub.nib -------------------------------------------------------------------------------- /template.app/Contents/Resources/pt.lproj/ApplicationStub.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davinerd/MacTomb/HEAD/template.app/Contents/Resources/pt.lproj/ApplicationStub.nib -------------------------------------------------------------------------------- /template.app/Contents/Resources/ro.lproj/ApplicationStub.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davinerd/MacTomb/HEAD/template.app/Contents/Resources/ro.lproj/ApplicationStub.nib -------------------------------------------------------------------------------- /template.app/Contents/Resources/ru.lproj/ApplicationStub.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davinerd/MacTomb/HEAD/template.app/Contents/Resources/ru.lproj/ApplicationStub.nib -------------------------------------------------------------------------------- /template.app/Contents/Resources/sk.lproj/ApplicationStub.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davinerd/MacTomb/HEAD/template.app/Contents/Resources/sk.lproj/ApplicationStub.nib -------------------------------------------------------------------------------- /template.app/Contents/Resources/sv.lproj/ApplicationStub.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davinerd/MacTomb/HEAD/template.app/Contents/Resources/sv.lproj/ApplicationStub.nib -------------------------------------------------------------------------------- /template.app/Contents/Resources/th.lproj/ApplicationStub.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davinerd/MacTomb/HEAD/template.app/Contents/Resources/th.lproj/ApplicationStub.nib -------------------------------------------------------------------------------- /template.app/Contents/Resources/tr.lproj/ApplicationStub.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davinerd/MacTomb/HEAD/template.app/Contents/Resources/tr.lproj/ApplicationStub.nib -------------------------------------------------------------------------------- /template.app/Contents/Resources/uk.lproj/ApplicationStub.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davinerd/MacTomb/HEAD/template.app/Contents/Resources/uk.lproj/ApplicationStub.nib -------------------------------------------------------------------------------- /template.app/Contents/Resources/vi.lproj/ApplicationStub.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davinerd/MacTomb/HEAD/template.app/Contents/Resources/vi.lproj/ApplicationStub.nib -------------------------------------------------------------------------------- /template.app/Contents/Resources/Dutch.lproj/ApplicationStub.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davinerd/MacTomb/HEAD/template.app/Contents/Resources/Dutch.lproj/ApplicationStub.nib -------------------------------------------------------------------------------- /template.app/Contents/Resources/es_MX.lproj/ApplicationStub.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davinerd/MacTomb/HEAD/template.app/Contents/Resources/es_MX.lproj/ApplicationStub.nib -------------------------------------------------------------------------------- /template.app/Contents/Resources/pt_PT.lproj/ApplicationStub.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davinerd/MacTomb/HEAD/template.app/Contents/Resources/pt_PT.lproj/ApplicationStub.nib -------------------------------------------------------------------------------- /template.app/Contents/Resources/zh_CN.lproj/ApplicationStub.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davinerd/MacTomb/HEAD/template.app/Contents/Resources/zh_CN.lproj/ApplicationStub.nib -------------------------------------------------------------------------------- /template.app/Contents/Resources/zh_TW.lproj/ApplicationStub.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davinerd/MacTomb/HEAD/template.app/Contents/Resources/zh_TW.lproj/ApplicationStub.nib -------------------------------------------------------------------------------- /template.app/Contents/Resources/English.lproj/ApplicationStub.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davinerd/MacTomb/HEAD/template.app/Contents/Resources/English.lproj/ApplicationStub.nib -------------------------------------------------------------------------------- /template.app/Contents/Resources/French.lproj/ApplicationStub.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davinerd/MacTomb/HEAD/template.app/Contents/Resources/French.lproj/ApplicationStub.nib -------------------------------------------------------------------------------- /template.app/Contents/Resources/German.lproj/ApplicationStub.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davinerd/MacTomb/HEAD/template.app/Contents/Resources/German.lproj/ApplicationStub.nib -------------------------------------------------------------------------------- /template.app/Contents/Resources/Italian.lproj/ApplicationStub.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davinerd/MacTomb/HEAD/template.app/Contents/Resources/Italian.lproj/ApplicationStub.nib -------------------------------------------------------------------------------- /template.app/Contents/Resources/Spanish.lproj/ApplicationStub.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davinerd/MacTomb/HEAD/template.app/Contents/Resources/Spanish.lproj/ApplicationStub.nib -------------------------------------------------------------------------------- /template.app/Contents/Resources/Japanese.lproj/ApplicationStub.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/davinerd/MacTomb/HEAD/template.app/Contents/Resources/Japanese.lproj/ApplicationStub.nib -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | 5 | # C extensions 6 | *.so 7 | 8 | # Distribution / packaging 9 | .Python 10 | env/ 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | *.egg-info/ 23 | .installed.cfg 24 | *.egg 25 | 26 | # PyInstaller 27 | # Usually these files are written by a python script from a template 28 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 29 | *.manifest 30 | *.spec 31 | 32 | # Installer logs 33 | pip-log.txt 34 | pip-delete-this-directory.txt 35 | 36 | # Unit test / coverage reports 37 | htmlcov/ 38 | .tox/ 39 | .coverage 40 | .coverage.* 41 | .cache 42 | nosetests.xml 43 | coverage.xml 44 | *,cover 45 | 46 | # Translations 47 | *.mo 48 | *.pot 49 | 50 | # Django stuff: 51 | *.log 52 | 53 | # Sphinx documentation 54 | docs/_build/ 55 | 56 | # PyBuilder 57 | target/ 58 | 59 | .DS_Store 60 | -------------------------------------------------------------------------------- /template.app/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AMIsApplet 6 | 7 | AMStayOpen 8 | 9 | BuildMachineOSBuild 10 | 14D49 11 | CFBundleDevelopmentRegion 12 | English 13 | CFBundleDocumentTypes 14 | 15 | 16 | CFBundleTypeExtensions 17 | 18 | * 19 | 20 | CFBundleTypeName 21 | Automator workflow file 22 | CFBundleTypeOSTypes 23 | 24 | **** 25 | 26 | CFBundleTypeRole 27 | Viewer 28 | 29 | 30 | CFBundleExecutable 31 | Application Stub 32 | CFBundleIconFile 33 | AutomatorApplet 34 | CFBundleIdentifier 35 | com.apple.automator.test 36 | CFBundleInfoDictionaryVersion 37 | 6.0 38 | CFBundleName 39 | test 40 | CFBundlePackageType 41 | APPL 42 | CFBundleShortVersionString 43 | 1.2 44 | CFBundleSignature 45 | ???? 46 | CFBundleURLTypes 47 | 48 | CFBundleVersion 49 | 409.2 50 | DTCompiler 51 | com.apple.compilers.llvm.clang.1_0 52 | DTPlatformBuild 53 | 6D97u 54 | DTPlatformVersion 55 | GM 56 | DTSDKBuild 57 | 14D42 58 | DTSDKName 59 | macosx10.10internal 60 | DTXcode 61 | 0630 62 | DTXcodeBuild 63 | 6D97u 64 | LSMinimumSystemVersion 65 | 10.5 66 | LSMinimumSystemVersionByArchitecture 67 | 68 | x86_64 69 | 10.6 70 | 71 | LSUIElement 72 | 73 | NSAppleScriptEnabled 74 | YES 75 | NSMainNibFile 76 | ApplicationStub 77 | NSPrincipalClass 78 | NSApplication 79 | NSServices 80 | 81 | UTExportedTypeDeclarations 82 | 83 | UTImportedTypeDeclarations 84 | 85 | 86 | 87 | -------------------------------------------------------------------------------- /template.app/Contents/document.wflow: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AMApplicationBuild 6 | 409.2 7 | AMApplicationVersion 8 | 2.5 9 | AMDocumentVersion 10 | 2 11 | actions 12 | 13 | 14 | action 15 | 16 | AMAccepts 17 | 18 | Container 19 | List 20 | Optional 21 | 22 | Types 23 | 24 | com.apple.cocoa.string 25 | 26 | 27 | AMActionVersion 28 | 2.0.3 29 | AMApplication 30 | 31 | Automator 32 | 33 | AMParameterProperties 34 | 35 | COMMAND_STRING 36 | 37 | CheckedForUserDefaultShell 38 | 39 | inputMethod 40 | 41 | shell 42 | 43 | source 44 | 45 | 46 | AMProvides 47 | 48 | Container 49 | List 50 | Types 51 | 52 | com.apple.cocoa.string 53 | 54 | 55 | ActionBundlePath 56 | /System/Library/Automator/Run Shell Script.action 57 | ActionName 58 | Run Shell Script 59 | ActionParameters 60 | 61 | COMMAND_STRING 62 | SCRIPT_TO_RUN 63 | CheckedForUserDefaultShell 64 | 65 | inputMethod 66 | 1 67 | shell 68 | /bin/bash 69 | source 70 | 71 | 72 | BundleIdentifier 73 | com.apple.RunShellScript 74 | CFBundleVersion 75 | 2.0.3 76 | CanShowSelectedItemsWhenRun 77 | 78 | CanShowWhenRun 79 | 80 | Category 81 | 82 | AMCategoryUtilities 83 | 84 | Class Name 85 | RunShellScriptAction 86 | InputUUID 87 | 5A7FF472-A24F-44E3-AD8D-43ED6DF847A0 88 | Keywords 89 | 90 | Shell 91 | Script 92 | Command 93 | Run 94 | Unix 95 | 96 | OutputUUID 97 | 37124BF6-B995-4E34-A0C8-B4C32724900F 98 | UUID 99 | FF0EAC27-596A-42D0-9A73-84C94BE955FE 100 | UnlocalizedApplications 101 | 102 | Automator 103 | 104 | arguments 105 | 106 | 0 107 | 108 | default value 109 | 0 110 | name 111 | inputMethod 112 | required 113 | 0 114 | type 115 | 0 116 | uuid 117 | 0 118 | 119 | 1 120 | 121 | default value 122 | 123 | name 124 | source 125 | required 126 | 0 127 | type 128 | 0 129 | uuid 130 | 1 131 | 132 | 2 133 | 134 | default value 135 | 136 | name 137 | CheckedForUserDefaultShell 138 | required 139 | 0 140 | type 141 | 0 142 | uuid 143 | 2 144 | 145 | 3 146 | 147 | default value 148 | 149 | name 150 | COMMAND_STRING 151 | required 152 | 0 153 | type 154 | 0 155 | uuid 156 | 3 157 | 158 | 4 159 | 160 | default value 161 | /bin/sh 162 | name 163 | shell 164 | required 165 | 0 166 | type 167 | 0 168 | uuid 169 | 4 170 | 171 | 172 | isViewVisible 173 | 174 | location 175 | 309.000000:305.000000 176 | nibPath 177 | /System/Library/Automator/Run Shell Script.action/Contents/Resources/English.lproj/main.nib 178 | 179 | isViewVisible 180 | 181 | 182 | 183 | connectors 184 | 185 | workflowMetaData 186 | 187 | workflowTypeIdentifier 188 | com.apple.Automator.application 189 | 190 | 191 | 192 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # MacTomb 2 | MacTomb is a kind of [Tomb](https://github.com/dyne/Tomb) porting for Mac OS X. It allows you to create encrypted DMG file (called `mactomb`), copy files and folders into it and setup a couple of scripts needed to easily mount & run apps that use files stored inside the mactomb. 3 | 4 | Read about MacTomb on [dyne](https://www.dyne.org/software/mactomb/) and [Lost in ICT blog](https://lostinict.wordpress.com/2015/09/27/mactomb-enhance-your-privacy-on-mac-os-x/) 5 | 6 | # What's new? (v.1.4) 7 | - added `encrypt` command: you can now encrypt an unencrypted tomb 8 | - `rename` command now updates also the bash script (if specified) 9 | - added the `-t` flag: you can specify two types of image format: SPARSEBUNDLE (default) and DMG 10 | - nicer output 11 | - moar checks 12 | 13 | # What's new? (v.1.3) 14 | - added `rename` command: you can now change your volume label within `mactomb` and by specify the flag `-b` also in the bash script (**N.B.** you may need to replace the volume label in other files like, in example, Firefox or Thunderbird profiles) 15 | - more robust checks to ensure everything works fine 16 | 17 | # What's new? (v.1.2) 18 | - compression/decompression support: mactomb is able to compress and decompress mactomb files. See the related section 19 | - `list` command: it will list all the open mactombs 20 | - change password: with `chpass` you can change your mactomb's password 21 | - bug fixes and improvements 22 | 23 | # What's new? (v.1.1) 24 | - changing flags (again!): now `-n` specify the name of the volume (the famous `$VOLNAME`) while `-v` enables Mac OS X notification 25 | - now the bash script umount the mactomb when closing the application. It means that when you close the Automatr App, the mactomb will be umounted 26 | - added strong checks to verify if bash script and Automator App already exist or they are a directory 27 | - added a check for the filename to ensure it contains/adds the `.dmg` extension 28 | - better error messages 29 | 30 | # What's new? (v.1.0) 31 | Version 1.0 released! Yes, from 0.1 to 1.0. Why? Big improvements has been made. Read below: 32 | - there was a conflict between two `-s` options (size and Automator app). Now the Automator app has the `-o` flag and the bash script (that previously was `-o`) becomes `-b`. 33 | - possibility to call `forge` without automatically fire `create` and `app`. This means: you can use `forge` to create only the Automator app. For a better explaination on `forge`, see the related paragrah 34 | - you can now specify a command (binary + arguments) with the `-a` flag, that will be outputted in the bash script created with the `-b` flag 35 | - `-o` ensure the Automator app has .app extension so Mac OS X can recognise it (you don't need to specify it via command line) 36 | - introduced the `VOLNAME` variable (line 305). By default, the encrypted DMG is labeled `untitled`. You can rename it by changing the value of that variable. 37 | - the `VOLNAME` variable can be used also inside the `-a` argument to specify an action that has to access file(s) inside the mactomb. As in example, the following line works: `-a /Applications/Firefox.app/Contents/MacOS/firefox-bin \$VOLNAME/index.html` (will tell Firefox to open _/Volumes/$VOLNAME/index.html_). Please note the `\$VOLNAME`: it will be automatically translated to the value of the `VOLNAME` variable defined in the script 38 | - more robust errors checking 39 | 40 | # What exactly it does? 41 | The help is quite explicit: 42 | ``` 43 | $ bash mactomb.sh help 44 | ..:: MacTomb v.1.3 ::.. 45 | by Davide Barbato 46 | 47 | Help! 48 | 49 | list: 50 | list all opened mactombs 51 | 52 | chpass: 53 | -f Change passphrase of mactomb 54 | 55 | compress: 56 | -f Compress a mactomb (will make it read-only) 57 | 58 | decompress: 59 | -f Decompress a mactomb 60 | 61 | rename: 62 | -f mactomb file (already created) 63 | Optional: 64 | -n Specify the new volume name to assign to the mactomb (default is "untitled") 65 | -b