photorec and regripper works on linux and deleted photorec binary files

This commit is contained in:
rishwanth 2018-02-08 15:58:26 -05:00
parent aa66f6a388
commit 4718cf7c28
28 changed files with 57 additions and 8090 deletions

View File

@ -2,43 +2,46 @@
<!-- You may freely edit this file. See harness/README in the NetBeans platform -->
<!-- for some information on what you could do (e.g. targets to override). -->
<!-- If you delete this file and reopen the project it will be recreated. -->
<project name="org.sleuthkit.autopsy.core" default="netbeans" basedir="." xmlns:ivy="antlib:org.apache.ivy.ant">
<project name="org.sleuthkit.autopsy.core" default="netbeans" basedir="." xmlns:ivy="antlib:org.apache.ivy.ant" >
<description>Builds, tests, and runs the project org.sleuthkit.autopsy.core</description>
<import file="nbproject/build-impl.xml"/>
<import file="../BootstrapIvy.xml"/>
<property name="thirdparty.dir" value="${basedir}/../thirdparty"/>
<property name="modules.dir" value="${basedir}/release/modules/"/>
<property name="ext.dir" value="${modules.dir}/ext"/>
<target name="get-InternalPythonModules" description="get internal python modules">
<copy todir="release/InternalPythonModules">
<property name="thirdparty.dir" value="${basedir}/../thirdparty" />
<property name="modules.dir" value="${basedir}/release/modules/" />
<property name="ext.dir" value="${modules.dir}/ext" />
<target name="get-InternalPythonModules" description="get internal python modules">
<copy todir="release/InternalPythonModules" >
<fileset dir="{basedir}/../../InternalPythonModules"/>
</copy>
</target>
<property name="VERSION" value="4.6.0"/>
<target name="get-thirdparty-dependencies" description="get third-party dependencies">
<property name="VERSION" value="4.6.0"/>
<target name="get-thirdparty-dependencies" description="get third-party dependencies">
<!--Copy openCV dependencies to release-->
<copy todir="${modules.dir}">
<fileset dir="${thirdparty.dir}/opencv"/>
<copy todir="${modules.dir}" >
<fileset dir="${thirdparty.dir}/opencv" />
</copy>
<!--Copy photorec to release-->
<copy todir="${basedir}/release/photorec_exec">
<copy todir="${basedir}/release/photorec_exec" >
<fileset dir="${thirdparty.dir}/photorec_exec"/>
</copy>
<!--Copy other jars-->
<copy file="${thirdparty.dir}/rejistry/Rejistry-1.0-SNAPSHOT.jar" todir="${ext.dir}"/>
<copy file="${thirdparty.dir}/sevenzip/sevenzipjbinding.jar" todir="${ext.dir}"/>
<copy file="${thirdparty.dir}/sevenzip/sevenzipjbinding-AllPlatforms.jar" todir="${ext.dir}"/>
<copy file="${thirdparty.dir}/stix/StixLib.jar" todir="${ext.dir}"/>
<copy file="${thirdparty.dir}/jdom/jdom-2.0.5.jar" todir="${ext.dir}"/>
<copy file="${thirdparty.dir}/jdom/jdom-2.0.5-contrib.jar" todir="${ext.dir}"/>
<copy file="${thirdparty.dir}/rejistry/Rejistry-1.0-SNAPSHOT.jar" todir="${ext.dir}" />
<copy file="${thirdparty.dir}/sevenzip/sevenzipjbinding.jar" todir="${ext.dir}" />
<copy file="${thirdparty.dir}/sevenzip/sevenzipjbinding-AllPlatforms.jar" todir="${ext.dir}" />
<copy file="${thirdparty.dir}/stix/StixLib.jar" todir="${ext.dir}" />
<copy file="${thirdparty.dir}/jdom/jdom-2.0.5.jar" todir="${ext.dir}" />
<copy file="${thirdparty.dir}/jdom/jdom-2.0.5-contrib.jar" todir="${ext.dir}" />
</target>
<!-- Verify that the TSK_HOME env variable is set -->
<target name="findTSK">
<property environment="env"/>
@ -46,37 +49,47 @@
<isset property="env.TSK_HOME"/>
</condition>
<fail unless="tskFound" message="TSK_HOME must be set as an environment variable."/>
<echo>
TSK_HOME: ${env.TSK_HOME}</echo>
</target>
<echo> TSK_HOME: ${env.TSK_HOME}</echo>
</target>
<target name="getTSKJars" depends="findTSK">
<property environment="env"/>
<copy file="${env.TSK_HOME}/bindings/java/dist/sleuthkit-postgresql-${VERSION}.jar" tofile="${ext.dir}/sleuthkit-postgresql-${VERSION}.jar"/>
<copy file="${env.TSK_HOME}/bindings/java/lib/sqlite-jdbc-3.8.11.jar" tofile="${ext.dir}/sqlite-jdbc-3.8.11.jar"/>
<copy file="${env.TSK_HOME}/bindings/java/lib/postgresql-9.4.1211.jre7.jar" tofile="${ext.dir}/postgresql-9.4.1211.jre7.jar"/>
<copy file="${env.TSK_HOME}/bindings/java/lib/mchange-commons-java-0.2.9.jar" tofile="${ext.dir}/mchange-commons-java-0.2.9.jar"/>
<copy file="${env.TSK_HOME}/bindings/java/lib/c3p0-0.9.5.jar" tofile="${ext.dir}/c3p0-0.9.5.jar"/>
<copy file="${env.TSK_HOME}/bindings/java/dist/sleuthkit-postgresql-${VERSION}.jar"
tofile="${ext.dir}/sleuthkit-postgresql-${VERSION}.jar"/>
<copy file="${env.TSK_HOME}/bindings/java/lib/sqlite-jdbc-3.8.11.jar"
tofile="${ext.dir}/sqlite-jdbc-3.8.11.jar"/>
<copy file="${env.TSK_HOME}/bindings/java/lib/postgresql-9.4.1211.jre7.jar"
tofile="${ext.dir}/postgresql-9.4.1211.jre7.jar"/>
<copy file="${env.TSK_HOME}/bindings/java/lib/mchange-commons-java-0.2.9.jar"
tofile="${ext.dir}/mchange-commons-java-0.2.9.jar"/>
<copy file="${env.TSK_HOME}/bindings/java/lib/c3p0-0.9.5.jar"
tofile="${ext.dir}/c3p0-0.9.5.jar"/>
</target>
<target name="download-binlist">
<get src="https://raw.githubusercontent.com/binlist/data/master/ranges.csv" dest="src\org\sleuthkit\autopsy\datamodel" ignoreerrors="true" verbose="true"/>
<get src="https://raw.githubusercontent.com/binlist/data/master/ranges.csv"
dest="src\org\sleuthkit\autopsy\datamodel"
ignoreerrors="true"
verbose="true"/>
</target>
<target name="get-deps" depends="init-ivy,getTSKJars,get-thirdparty-dependencies,get-InternalPythonModules, download-binlist">
<mkdir dir="${ext.dir}"/>
<copy file="${thirdparty.dir}/LICENSE-2.0.txt" todir="${ext.dir}"/>
<copy file="${thirdparty.dir}/LICENSE-2.0.txt" todir="${ext.dir}" />
<!-- fetch all the dependencies from Ivy and stick them in the right places -->
<ivy:resolve/>
<ivy:retrieve conf="core" pattern="${ext.dir}/[artifact]-[revision](-[classifier]).[ext]"/>
</target>
<ivy:retrieve conf="core" pattern="${ext.dir}/[artifact]-[revision](-[classifier]).[ext]" />
</target>
<target name="init" depends="get-deps,harness.init"/>
<target name="clean" depends="projectized-common.clean">
<!--Override clean to delete jars, etc downloaded with Ivy, or copied in from thirdparty folder. This way we don't end up with out-of-date/unneeded stuff in the installer-->
<target name="init" depends="get-deps,harness.init"/>
<target name="clean" depends="projectized-common.clean">
<!--Override clean to delete jars, etc downloaded with Ivy,
or copied in from thirdparty folder. This way we don't end up with
out-of-date/unneeded stuff in the installer-->
<delete dir="${basedir}/release/"/>
</target>
</project>

View File

@ -235,7 +235,7 @@ final class PhotoRecCarverFileIngestModule implements FileIngestModule {
"/cmd", // NON-NLS
tempFilePath.toFile().toString(),
"search"); // NON-NLS
System.out.println(processAndSettings.command());
// Add environment variable to force PhotoRec to run with the same permissions Autopsy uses
processAndSettings.environment().put("__COMPAT_LAYER", "RunAsInvoker"); //NON-NLS
processAndSettings.redirectErrorStream(true);

View File

@ -288,7 +288,6 @@ class ExtractRegistry extends Extract {
commandLine.add(hiveFileType);
ProcessBuilder processBuilder = new ProcessBuilder(commandLine);
System.out.println(processBuilder.command());
processBuilder.directory(regRipperHomeDir.toFile()); // RegRipper 2.8 has to be run from its own directory
processBuilder.redirectOutput(new File(outputFile));
processBuilder.redirectError(new File(errFile));

View File

@ -1,4 +0,0 @@
TestDisk and PhotoRec are written and maintained by Christophe GRENIER <grenier@cgsecurity.org>
TestDisk logos has been created by Simone Brandt and by Dmitri Zdorov in 2001,
PhotoRec logo by Marcel Bruins in 2006.

View File

@ -1,339 +0,0 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

File diff suppressed because it is too large Load Diff

View File

@ -1,2 +0,0 @@
TestDisk & PhotoRec , https://www.cgsecurity.org
Copyright (C) 1998-2017 Christophe GRENIER <grenier@cgsecurity.org>

View File

@ -1,438 +0,0 @@
Current news
== 7.1-WIP ==
== 7.0 ==
=== General Improvements ===
Various fix including security fix, thanks to
* Coverity scan (Static Analysis of source code)
* afl-fuzz (security-oriented fuzzer).
* Denis Andzakovic from Security Assessment for reporting an exploitable Stack Buffer Overflow
=== TestDisk ===
==== Improvements ====
* exFAT: better support
* ext4: handle 64 bit blocks or 64 KiB blocksize. Fix detection and file listing
==== Bug fixes ====
* Avoid erroneous error when writing 512 bytes on hard disk using 4k sector
* FAT, NTFS: avoid NULL pointer dereference if localtime() returns NULL. Thanks to Graham Sutherland for reporting this bug.
=== PhotoRec & QPhotoRec ===
QPhotoRec is a Graphical User Interface (Qt based GUI) version of PhotoRec. More user friendly, it recognizes the same file formats.
PhotoRec remains recommended for advanced users, it can stop a recovery and resume it later, it recovers more fragmented files when brute-force technology is enabled and expert mode is available.
==== Improvements ====
* Reduced false positives for more than 80 file formats.
* .gif: fix filesize detection
* .flv: add Flash filesize detection
* .mpg: detect filesize for MPEG
* .ra: detect filesize for RealAudio3
* Improved algorithm to deal with data fragmentation resulting in a general speed increased
* Speedup brute-force mode. Brute-force mode can recover more fragmented files, but it's still slow and not 100% reliable. You can enable it in PhotoRec Options menu.
New file formats recovered by PhotoRec:
* .3dm: Rhino / openNURBS
* .ari: ARRI Raw Video
* .camrec: Camtasia Studio
* .dad: Micae DVR
* .dcm: Digital Imaging and Communications in Medicine (DICOM)
* .fp12: File Maker Pro 12
* .kra: Krita
* .mlv: Magic Lantern Video
* .notebook: SMART notebook
* .ora: Mypaint
* .red: RED2 video format
* .rlv: Revelation password
* .vbm: Veeam Backup Metadata
* .woff: Web Open Font Format
== 6.14 ==
* The log file generated by the Windows version (cygwin) reports bad sectors in a more readable fashion, example
<code>ReadFile Data error (cyclic redundancy check)</code>.
* As openssl isn't used, don't link with this cryptographic library (Debian tries to avoid mixing GPL code and openssl)
=== TestDisk ===
==== Improvements ====
* <code>testdisk /list</code> now displays the disk model, serial number, firmware version and hpa or dco presence if detected
* Recover WBFS (Wii Backup File System) partition
* Make FAT RebuildBS works when there is a single FAT table
* Interface: Display the partition table type if autodetected
* Interface: modified warning about mismatching geometry between FAT or NTFS boot sector and HD geometry information ([http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=651756 Debian #651756])
* Interface: Remove "Allow partial last cylinder" option
==== Bug fixes ====
* Fix crc in EFI backup GPT
* Rewrote how TestDisk aligns partition on cylinder or 1MB boundary. It avoids to create partition entry where the partition ends after the end of the disk.
=== PhotoRec ===
==== Improvements ====
* Improve Olympus .orf recovery
* Improve WP Mac/WP5/WP6 Corel Documents .wpd files recovery
* Fix thumbs.db recovery, avoid some false positive with .doc
* Interface: if less than 10 file families are enabled, display the results even if zero has been found yet
New file formats:
* .aep After Effects
* .axx AxCrypt
* .dp Designer, a Photobook Designer Software
* .lzh archive
* .mmap MindManager
* .plt Gerber Graphix Advantage
* .prproj Adobe Premiere project
* .psb Adobe Photoshop Image
* .pts PTGui, panoramic stitching software
* .qcp The QCP File Format and Media Types for Speech Data (RFC3625)
* .shn Shorten audio file
* .snt Windows Sticky Notes
* .ttd TinyTag Data
* .wallet Armory bitcoin wallet
* .wim Windows imaging (WIM) image
==== Bug fixes ====
* Fix an endless loop during .caf file recovery
* Fix tiff recovery including some raw file formats, 64-bit version wasn't affected
== 6.13 ==
Fix UAC manifests for Windows, so users don't need to use right-click "Run As Administrator"
TestDisk
- Fix image creation, image.dd file wasn't created (Regression introduced in 6.12)
- Detect Vmware VMFS partition
- Locate lost GFS2 partition but not yet the size
- Log HDD serial number and firmware revision
- List NTFS Alternate Data Streams (ADS)
PhotoRec
- Session recovery restarts at the previous location
- Better MPEG recovery, there should be less concatenated videos.
- Better JPG recovery, there should be less cases where thumbnails were recovered instead of the picture itself.
- Handle large avi files using "AVIX" or mov files using 64-bit chunk size.
- Rename recovered pdf using the title (not perfect)
- Major cleanup of PhotoRec core code
6.12
fidentify, a little utility sharing PhotoRec signature database, is now build by default. It identifies the type of data contained in a file and reports the extension as seen by PhotoRec. It is similar to the Unix file command. Add compatibility with
- libewf 20110312
- ncurses 5.8
- ntfs-3g
Fix detection of Encase 6 .ewf files
TestDisk
- Convert the directory name when it can't be created (Fix for Windows/Cygwin version)
- Better HPA/DCO detection: handle the case where native_max is null.
- Image Creation is now faster than previous version when there are bad sectors
- List and copy (experimental) files from exFAT filesystem
- Improved NTFS undelete interface
PhotoRec
- PhotoRec checks for EFBIG (file too large) error when writing files. It's usefull to avoid erronous message about "no free space available" when recovering to a FAT filesystem.
- Recover files from exFAT unallocated space
- Use doc/xls/ppt title to name recovered Office document, use first filename in zip archive...
- Possibility to add your own extension/custom signature to PhotoRec
- Generated a report.xml file using Digital Forensics XML
6.11
TestDisk & PhotoRec 6.11 should use less CPU.
This new TestDisk version can undelete files for NTFS filesystem and recover deleted exFAT and ext4.
PhotoRec
- Performance improvement when scanning for numerous file type
- Fix several bugs including an endless loop, several memory leaks and several out-of-bound memory access
- 50 file formats have been added
6.10
TestDisk & PhotoRec 6.10 comes with severals improvements:
- Report disk manufacturer and model under Windows and Linux (Only Linux was
supported in 6.9)
- Under Linux, /dev/mapper/* and /dev/md? are now listed with the harddisks.
- Now both OS and compiler versions are recorded in the log file.
This new TestDisk version can
- undelete files and directories for FAT filesystem,
- undelete files for ext2 filesystem,
- copy files from ext2/ext3 partitions. These feature was already available
for FAT and NTFS.
PhotoRec
- Load and save FileOpts settings: remember which file types to recover
- For JPEG files, extract the time/date from Exif header and set the
file time. It's now easier to sort the recovered jpg.
- PhotoRec can now identify and recover 38 additional file formats.
6.9
TestDisk & PhotoRec 6.9 comes with numerous improvements:
- They are compatible with ntfsprogs 2.0, the latest library version for
accessing NTFS partitions, e2fsprogs 1.40.6, the latest library for accessing
ext2/ext3 partitions.
- EFI GUID Partition Table is now supported. EFI GPT is mainly used on Itanium,
MacBook and Mac Pro.
- Both utilities can use sudo if the user is not root, this functionnality will
be enabled for at least MacOSX, so users won't have to go into a command line.
- Improved Windows disk support, most internal USB card reader should now work.
- Disk model (ie. ATA ST3120026AS, _NEC DVD_RW ND-4550A...) are now reported
under Linux.
TestDisk
- New file system support has been added: encrypted LUKS, Mac HFSX, Linux Raid
md 1.0/1.1/1.2 (0.9 was already supported).
- It displays unicode filenames correctly, and can handle unicode filesnames
while copying files from an NTFS partition when supported by the underlying
libraries.
- It's now possible to copy files from a lost FAT partition found by TestDisk
(Already possible for NTFS).
- In the Advanced menu, TestDisk can create a raw/dd-like image of a partition.
PhotoRec
- For ext2/ext3 file systems, PhotoRec 6.9 can search in the whole space or in
unallocated space only. This feature was already available for FAT and NTFS
filesystem.
- It has better session support which allows a recovery to be stopped and
restarted later.
- New file formats are supported: Acronis True Image .TIB, AutoCAD's .DWG and
PowerTab .PTB, Cineon image file/SMTPE DPX .DPX, Comic Life .comicdoc, HP
Photosmart Photo Printing Album .albm, KeepAssX .KDB, Maya .MB and .MP,
Microsoft OneNOte .one file, Microsoft Visual Studio Resource file .RES,
Microsoft VB's .CLS, Outlook .MSG, QuickBook .FST, SketchUp .SKP, Vmware .vmdk,
WinSpec .SPE, Windows Enhanced MetaFile .emf, MS Windows Link .lnk, Internet
Explorer index.dat, Macintosh Picture .pct, SunPCI Disk Image,XBOX GTA San
Andreas Save File, Final Cut Pro .fcp and Digital Speech Standard .dss.
6.8
Version 6.8 is mainly a bugfix but some small improvements has been made to
both TestDisk and PhotoRec:
- Partition type is now autodetected.
- TestDisk and PhotoRec can now be used under screen, the screen manager with
VT100/ANSI terminal emulation.
TestDisk
HFS detection has been improved to avoid false positive.
TestDisk logs potential NTFS partition location from MFT & MFTMirr location
while rebuilding NTFS boot sector.
PhotoRec
Some important bugfixes (false positive problem, implementation bugs) have been
made in PhotoRec 6.8. JPG bruteforce recovery has been improved a little bit,
you can use it to recover more fragmented jpeg but it's very time consuming and
not 100% reliable, so it's still disabled by default.
.7z, .cab, .rar and .tar recovery have been improved, .dta and .spss file
formats have been added.
6.7
Both utilities are faster than previous versions: a better disk caching is
used in PhotoRec, a better way to handle the sector to scan is used in
TestDisk. Windows version of TestDisk and PhotoRec doesn't use
pread()/pwrite() cygwin implementation (A bug seems present).
TestDisk
TestDisk 6.7 handles partition created under Microsoft Vista.
Traditionally partitions were created on cylinder boundaries. Under Vista,
they are now independent of the disk geometry: partitions are aligned to 1
MB boundary, TestDisk now handles that. It also fixes how the advanced
menu works.
PhotoRec
PhotoRec 6.7 uses less CPU. It also adds support for 3ds max, Archive
.ace, CD Audio .cda, FastTrackerII Extended Module .xm, Linux archive .a,
Linux/Unix ELF binary, Mac OS .emlx mail format, Macomedia Compressed
Flash .swc, Macromedia .flv, Macromedia Freehand 5 (.fh5) & 10 (.fh10) and
InDesign .indd, Matroska .mkv, MP3 with ID3 header, MS cabinet archive
.cab, MSOffice "Open" XML .docx, .pptx, .xlsx, MS executable (PE), MS
Windows Metafile .wmf, NJStar .njx, Quickbooks .qbb and .qbw, Real Audio
.rm, registry config file .reg, RPM package .rpm, Windows registry header
detection and Event Log .evt
6.6
General Improvements
- Encase Expert Witness Compression Format is now supported, so Computer
Forensic Experts can use TestDisk and PhotoRec more easily.
- Under new Vista OS, harddisks are now being reported again.
TestDisk
- If LBA48 support seems missing (HD bigger than 130 GB not supported by
the OS), TestDisk will warn the user. This problem is common when a user
reinstalls his OS and forgets to install the latest service patches.
- NTFS: TestDisk should be able to list files from NTFS partitions even if
some filesystem corruption has occurred; more importantly, it will allow
the user to copy whatever file data it can as well.
- FAT: Improved heuristics to find the first FAT area during boot sector
rebuild.
PhotoRec
- A new method for handling fragmented data is now used, making recovery
more reliable and faster.
- PhotoRec can be set to search for files in FAT16/FAT32 unallocated space
only; which avoids wasting time recovering files that are still
accessible, making the recovery of 'lost files' much faster and more
efficient.
- New file formats have been added: .3g2 (Mov video family), .aif Apple
Audio, .all .cpr Cubase Song, .blend Blender, .cam Casio QV Digital Camera
Image, .flac Free Lossless Audio Codec, .mdf Microsoft SQL, .swf
Macromedia Flash and .vcf VCard (not confused with .txt anymore)
6.5
TestDisk
- A screen has been added to control the log file creation.
- It's now possible from TestDisk file listing to copy files from NTFS
partition to a selected directory.
- NTFS MFT can also be repaired in more cases.
- A compilation problem has been fixed with old version of libntfs.
- Documentation has been fixed, it now displays correctly with IE.
PhotoRec
- New file formats have been added: AppleWorks .cwk, DIF Digital Video .dv,
DjVu .djv, Finale .mus, Incredimail .imm, .imb, iTunes mhbd, MIDI .mid,
MS Backup, Real Media .rm & .ram, Reason .rns, ruby .rb, .xml
- File size detection for .bmp, .pdf, .gif, Office document has been improved.
- A endless loop bug and a memory leak have been fixed.
- The I/O cache engine now caches read failure, it will speedup some recovery.
6.4
Support for ReiserFS 4 has been added in TestDisk
PhotoRec detects new files formats and better recovery of jpeg, txt/html, zip...
Fixes numerous bugs.
6.3
Fix for 64 bits architecture and improved interface.
Photorec adds support for Quicken, OpenDocument, mp3, ogg,
StarOffice, Encapsulated PostScript, PostScript, gif, gz, mov file format
or better detection.
6.2
New User Interface
Disk cache and read ahead to improve performance
Endianess portability fix
6.1
TestDisk
Fix for Mac version
Remove an erroneous message after writing a partition without logical partition
6.0
TestDisk
Fix for Dos version and some cosmetic change
5.9
TestDisk
- User Interface has been improved
- Mac partition map is now supported
- FAT: better check for directory attribut
- FAT: fix a bug in expert mode
- FAT: fix directory listing time using timezone
- Linux Raid: fix regression from 5.8, Raid 1 is again detected.
- NTFS boot sector: copy boot sector over backup boot sector now works
Photorec
- Photorec now works on ext2/ext3 filesystem (Check Options)
- add support for Papyrus, 7zip, text file, OGG audio files, RAR archive recovery
- add a default file size limit of 2GB
- add support for ZIP files starting with PK00 (packed to removable disk)
5.8
TestDisk
- Add support for HFS+, UFS2 filesystem and Intel Solaris superblock
- Linux Raid: Add some code to detect Raid 5 earlier
- FAT: Update the cleaning FAT function to repair FAT table (Expert mode only)
- EXT2: e2fsprogs-1.36 parses the device name given in ext2fs_open, give a string instead of the io_channel.
- NTFS: Fix a bug in NTFS rebuilding introduced in 5.7
- Fix a memory freed problem when detecting if a partition can be Primary, Logical...
Photorec
- Recognize php header
- MPG format is using streaming
5.7
TestDisk
- Replace standard MBR i386 boot sector code by a GPL one
- HFS detection has been improved to avoid false positive
- FAT: add support for one FAT only (instead of usual 2) in directory listing
and boot sector rebuilding (need expert mode)
- FAT: Support for FAT without FAT12 (ie DOS 3.30), FAT16 or FAT32 mark.
- FAT12/16: Add the possibility to initialize FAT root directory (Delete everything,
Expert mode only)
- FAT: fix for directory listing in boot sector rebuilding.
- FAT32: Fix for last FAT sector while cleaning the FAT (Expert mode only)
- EXT2/EXT3: while listing filename permit to list file where inode information is unavaible.
- Doesn't halt if TestDisk can't create the log file
- configure.ac, compile.sh: remove --enable-debug option
- Modify Linux RPM spec file to get non-empty debug-info rpm
- Directory listing: little UI modification
- Dos version: fix read/write error message
Photorec 5.7
- add support for a bunch of other file format
- incremental directory name for recovery
- a lot of code cleaning
5.6
TestDisk
New features:
- Can list files from NTFS partition found using backup boot sector
- Display a warning if TestDisk think the logical geometry (CHS) is wrong
- Handle filesystem image (In Options, Partition type: None)
- Filesystem: HFS (minimal testing) and LVM2 support
- NetBSD and FreeBSD support
Improvements:
- Win32: Windows version is now as fast as other version.
Using FileRead() instead of read() is about 10 times faster.
Fixs:
- HD Geometry: the number of cylinders can be bigger than 65535
- BSD slice: display content even if crc is wrong
- FAT boot sector rebuilding: better support for FAT16 converted to FAT32
- NTFS boot sector rebuilding: better handle copy of MFT
- Win32: Windows version always creates a log file (was introduced in 5.3 but
boggus since 5.4)
Photorec 5.6
- Use libjpeg for a better recovery of lost jpeg files.
- Konica/Minolta raw (MRW) pictures recovery
- Canon raw (CRW) pictures recovery
- Minimal support for Sigma/Foveon: .X3F, Rollei (RDC), Fuji (RAF)
5.5
Fix FAT32 recovery using backup boot sector
Remove some debugging code
Upgrade to libntfs 1.9.4
Fix RPM spec file to get a working reiserfs support
5.4
New features:
- Option to backup unknown partition header.
- Save/Load current partition list
- handle sector size != 512
- XFS and CramFS support
Improvements:
- Interface has been improved.
- log libreiserfs errors in the log file
- can choose to minimize or maximize the extended partition before writing
- FAT32 root cluster rebuild improved (use first free cluster, mark it as used or/and EOC)
Fixs:
- ReiserFS and EXT2/EXT3 directory listing fix
- fix a bug with BeFS partition recovery
5.3
New features:
- When rebuilding FAT boot sector in expert mode, lets the user choose FAT locations.
Improvements:
- Exit if TestDisk can't create log file.
- Windows version always create log file.
Bug corrections:
- Fix superblock number displayed when telling the user to use e2fsck.
- Fix extended partition creation.
5.2
TestDisk now compiles and run under NT 4 and Windows 2000.
New features:
- can rebuild NTFS boot sector
- can recover JFS partition
- some advanced FAT32 functions have been added (Expert mode only)
Improvements:
- Can align partition to cylinder boundary or to head boundary.
- Doesn't abort while writing partitions if read failed.
- Doesn't let the user write an empty partition table.

View File

@ -1,73 +0,0 @@
**TestDisk** checks the partition and boot sectors of your disks.
It is very useful in recovering lost partitions.
It works with :
- DOS/Windows FAT12, FAT16 and FAT32
- NTFS ( Windows NT/2K/XP )
- Linux Ext2 and Ext3
- BeFS ( BeOS )
- BSD disklabel ( FreeBSD/OpenBSD/NetBSD )
- CramFS (Compressed File System)
- HFS and HFS+, Hierarchical File System
- JFS, IBM's Journaled File System
- Linux Raid
- Linux Swap (versions 1 and 2)
- LVM and LVM2, Linux Logical Volume Manager
- Netware NSS
- ReiserFS 3.5, 3.6 and 4
- Sun Solaris i386 disklabel
- UFS and UFS2 (Sun/BSD/...)
- XFS, SGI's Journaled File System
**PhotoRec** is file data recovery software designed to recover
lost pictures from digital camera memory or even Hard Disks.
It has been extended to search also for non audio/video headers.
It searches for
- Sun/NeXT audio data (.au)
- RIFF audio/video (.avi/.wav)
- BMP bitmap (.bmp)
- bzip2 compressed data (.bz2)
- Source code written in C (.c)
- Canon Raw picture (.crw)
- Canon catalog (.ctg)
- FAT subdirectory
- Microsoft Office Document (.doc)
- Nikon dsc (.dsc)
- HTML page (.html)
- JPEG picture (.jpg)
- MOV video (.mov)
- MP3 audio (MPEG ADTS, layer III, v1) (.mp3)
- Moving Picture Experts Group video (.mpg)
- Minolta Raw picture (.mrw)
- Olympus Raw Format picture (.orf)
- Portable Document Format (.pdf)
- Perl script (.pl)
- Portable Network Graphics (.png)
- Raw Fujifilm picture (.raf)
- Contax picture (.raw)
- Rollei picture (.rdc)
- Rich Text Format (.rtf)
- Shell script (.sh)
- Tar archive (.tar )
- Tag Image File Format (.tiff)
- Microsoft ASF (.wma)
- Sigma/Foveon X3 raw picture (.x3f)
- zip archive (.zip)
TestDisk and PhotoRec run under:
- Dos, Win9x
- Windows
- Linux
- FreeBSD, NetBSD, OpenBSD
- SunOS
Both are under GNU General Public License.
Christophe GRENIER
[grenier@cgsecurity.org](mailto:grenier@cgsecurity.org)
[https://www.cgsecurity.org/](https://www.cgsecurity.org/)
[![Build Status](https://travis-ci.org/cgsecurity/testdisk.svg?branch=master)](https://travis-ci.org/cgsecurity/testdisk)

View File

@ -1,58 +0,0 @@
PhotoRec - Theory of operation:
Carvers are plugable. Each carver consists of:
struct file_hint_t - describes extension, name, max size, enable by default, etc.
file_enable_t list_file_enable[] - array with all file hints and whether enabled or not.
phmain.c - Contains the main() and driver logic for photorec.
main():
- reads parameters
- scans for available devices
- parses the HD (or image)
- resets the list of which file carvers are enabled
- Initializes ncurses
- Calls do_curses_photorec() (in pdisksel.c)
- shuts down ncurses
pdiskseln.c -
int do_curses_photorec(struct ph_param *params, struct ph_options *options, const list_disk_t *list_disk)
- Implements Disk selection
- May call photorec_disk_selection_ncurses()
- Eventually call menu_photorec() in ppartseln.c
ppartseln.c -
void menu_photorec(struct ph_param *params, struct ph_options *options, alloc_data_t*list_search_space)
- Implements Partition selection and Search/Options/File Opt/Geometry/Quit menu
- Search Option call photorec()
phrecn.c -
int photorec(struct ph_param *params, const struct ph_options *options, alloc_data_t *list_search_space)
- runs multiple passes until status==STATUS_QUIT
- calls photorec_mkdir() to actually make the output directory
- calls photorec_find_blocksize() to find the block size
- calls photorec_aux() to do the recovery
- may call photorec_bf() to recover more files by brute-force method
src/psearchn.c -
pstatus_t photorec_aux(struct ph_param *params, const struct ph_options *options, alloc_data_t *list_search_space)
- calls file_finish2() when recovery of a file is finished (ie. a new file has been found)
- calls file_recovery_aborted() if the user stops the recovery or there is not enough space on the destination
photorec.c: -
int file_finish_bf(file_recovery_t *file_recovery, struct ph_param *params, alloc_data_t *list_search_space)
- called when recovery of a file is done by
- photorec_bf()
- photorec_bf_pad()
- photorec_bf_frag()
- photorec_bf_aux()
photorec.c
pfstatus_t file_finish2(file_recovery_t *file_recovery, struct ph_param *params, const int paranoid, alloc_data_t *list_search_space)
- called when a file is done by
- photorec_aux() (in three places)

View File

@ -1,6 +0,0 @@
TestDisk & PhotoRec are mainly written by Christophe GRENIER.
Many people further contributed to TestDisk, directly or indirectly, by
reporting problems, helping with the documentation, suggesting various
improvements, sending me gifts using my Amazon whish-list...
Thanks to the thousands of people who have provided support for the project!

View File

@ -1 +0,0 @@
7.1-WIP Wed Feb 7 08:31:23 CET 2018

View File

@ -1,16 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>TestDisk &amp; PhotoRec documentation</title>
<link rel="shortcut icon" href="https://www.cgsecurity.org/favicon.ico" />
<meta charset="UTF-8">
</head>
<body>
TestDisk &amp; PhotoRec documentation can be found online:
<ul>
<li><a href="https://www.cgsecurity.org/wiki/TestDisk">TestDisk</a></li>
<li><a href="https://www.cgsecurity.org/wiki/PhotoRec">PhotoRec</a></li>
<li><a href="https://www.cgsecurity.org/testdisk.pdf">testdisk.pdf</a></li>
</ul>
</body>
</html>

View File

@ -1,27 +0,0 @@
.\" May be distributed under the GNU General Public License
.TH FIDENTIFY 8 February 2018 "Administration Tools"
.SH NAME
fidentify \- Determine file type using PhotoRec database
.SH SYNOPSIS
.BI "fidentify [--check] [directory|file]
.sp
.BI "fidentify --version
.sp
.SH DESCRIPTION
\fBfidentify\fP identify the file type, the "extension", by using the same database than PhotoRec.
When a file or directory is specified, fidentify will output the type of file, or files under the specified directory.
If given no arguments, fidentify will output type of files under current directory.
fidentify is similar to file(1).
.SH OPTIONS
.TP
.B --check
check the file format like PhotoRec does by default
.SH SEE ALSO
.BR photorec(8), testdisk(8), file(1)
.BR
.SH AUTHOR
PhotoRec 7.1-WIP, Data Recovery Utility, February 2018
.br
Christophe GRENIER <grenier@cgsecurity.org>
.br
https://www.cgsecurity.org

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

View File

@ -1,25 +0,0 @@
EXTRA_DIST = photorec.ico testdisk.ico \
48x48/apps/qphotorec.png \
scalable/apps/qphotorec.svg
iconsdir = $(datadir)/icons/hicolor
gtk_update_icon_cache = gtk-update-icon-cache -f -t $(iconsdir)
if USEQT
nobase_icons_DATA = 48x48/apps/qphotorec.png \
scalable/apps/qphotorec.svg
UPDATE_ICON_CACHE=update-icon-cache
endif
install-data-hook: $(UPDATE_ICON_CACHE)
uninstall-hook: $(UPDATE_ICON_CACHE)
update-icon-cache:
@-if test -z "$(DESTDIR)"; then \
echo "Updating GTK icon cache."; \
$(gtk_update_icon_cache) || : ; \
else \
echo "*** Icon cache not updated. After (un)install, run this:"; \
echo "*** $(gtk_update_icon_cache)"; \
fi

View File

@ -1,525 +0,0 @@
# Makefile.in generated by automake 1.15 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
VPATH = @srcdir@
am__is_gnu_make = { \
if test -z '$(MAKELEVEL)'; then \
false; \
elif test -n '$(MAKE_HOST)'; then \
true; \
elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
true; \
else \
false; \
fi; \
}
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
*) echo "am__make_running_with_option: internal error: invalid" \
"target option '$${target_option-}' specified" >&2; \
exit 1;; \
esac; \
has_opt=no; \
sane_makeflags=$$MAKEFLAGS; \
if $(am__is_gnu_make); then \
sane_makeflags=$$MFLAGS; \
else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
bs=\\; \
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
esac; \
fi; \
skip_next=no; \
strip_trailopt () \
{ \
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
}; \
for flg in $$sane_makeflags; do \
test $$skip_next = yes && { skip_next=no; continue; }; \
case $$flg in \
*=*|--*) continue;; \
-*I) strip_trailopt 'I'; skip_next=yes;; \
-*I?*) strip_trailopt 'I';; \
-*O) strip_trailopt 'O'; skip_next=yes;; \
-*O?*) strip_trailopt 'O';; \
-*l) strip_trailopt 'l'; skip_next=yes;; \
-*l?*) strip_trailopt 'l';; \
-[dEDm]) skip_next=yes;; \
-[JT]) skip_next=yes;; \
esac; \
case $$flg in \
*$$target_option*) has_opt=yes; break;; \
esac; \
done; \
test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
target_triplet = @target@
subdir = icons
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/acx_pthread.m4 \
$(top_srcdir)/mkdir.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_@AM_V@)
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
am__v_GEN_0 = @echo " GEN " $@;
am__v_GEN_1 =
AM_V_at = $(am__v_at_@AM_V@)
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
am__v_at_1 =
SOURCES =
DIST_SOURCES =
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \
esac
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
am__install_max = 40
am__nobase_strip_setup = \
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
am__nobase_strip = \
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
am__nobase_list = $(am__nobase_strip_setup); \
for p in $$list; do echo "$$p $$p"; done | \
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
if (++n[$$2] == $(am__install_max)) \
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
END { for (dir in files) print dir, files[dir] }'
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
am__uninstall_files_from_dir = { \
test -z "$$files" \
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
$(am__cd) "$$dir" && rm -f $$files; }; \
}
am__installdirs = "$(DESTDIR)$(iconsdir)"
DATA = $(nobase_icons_DATA)
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
am__DIST_COMMON = $(srcdir)/Makefile.in
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
GREP = @GREP@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LN_S = @LN_S@
LRELEASE = @LRELEASE@
LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
MOC = @MOC@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
PTHREAD_CC = @PTHREAD_CC@
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
PTHREAD_LIBS = @PTHREAD_LIBS@
QTGUI_CFLAGS = @QTGUI_CFLAGS@
QTGUI_LIBS = @QTGUI_LIBS@
QTWIDGETS_CFLAGS = @QTWIDGETS_CFLAGS@
QTWIDGETS_LIBS = @QTWIDGETS_LIBS@
QT_SELECT = @QT_SELECT@
RCC = @RCC@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
SUDO = @SUDO@
TESTDISKDATE = @TESTDISKDATE@
VERSION = @VERSION@
WINDRES = @WINDRES@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_LRELEASE = @ac_ct_LRELEASE@
ac_ct_MOC = @ac_ct_MOC@
ac_ct_RCC = @ac_ct_RCC@
acx_pthread_config = @acx_pthread_config@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
fidentify_LDADD = @fidentify_LDADD@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
photorec_LDADD = @photorec_LDADD@
photorecf_LDADD = @photorecf_LDADD@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
qphotorec_CXXFLAGS = @qphotorec_CXXFLAGS@
qphotorec_LDADD = @qphotorec_LDADD@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target = @target@
target_alias = @target_alias@
target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
testdisk_LDADD = @testdisk_LDADD@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
EXTRA_DIST = photorec.ico testdisk.ico \
48x48/apps/qphotorec.png \
scalable/apps/qphotorec.svg
iconsdir = $(datadir)/icons/hicolor
gtk_update_icon_cache = gtk-update-icon-cache -f -t $(iconsdir)
@USEQT_TRUE@nobase_icons_DATA = 48x48/apps/qphotorec.png \
@USEQT_TRUE@ scalable/apps/qphotorec.svg
@USEQT_TRUE@UPDATE_ICON_CACHE = update-icon-cache
all: all-am
.SUFFIXES:
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
&& { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign icons/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --foreign icons/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
install-nobase_iconsDATA: $(nobase_icons_DATA)
@$(NORMAL_INSTALL)
@list='$(nobase_icons_DATA)'; test -n "$(iconsdir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(iconsdir)'"; \
$(MKDIR_P) "$(DESTDIR)$(iconsdir)" || exit 1; \
fi; \
$(am__nobase_list) | while read dir files; do \
xfiles=; for file in $$files; do \
if test -f "$$file"; then xfiles="$$xfiles $$file"; \
else xfiles="$$xfiles $(srcdir)/$$file"; fi; done; \
test -z "$$xfiles" || { \
test "x$$dir" = x. || { \
echo " $(MKDIR_P) '$(DESTDIR)$(iconsdir)/$$dir'"; \
$(MKDIR_P) "$(DESTDIR)$(iconsdir)/$$dir"; }; \
echo " $(INSTALL_DATA) $$xfiles '$(DESTDIR)$(iconsdir)/$$dir'"; \
$(INSTALL_DATA) $$xfiles "$(DESTDIR)$(iconsdir)/$$dir" || exit $$?; }; \
done
uninstall-nobase_iconsDATA:
@$(NORMAL_UNINSTALL)
@list='$(nobase_icons_DATA)'; test -n "$(iconsdir)" || list=; \
$(am__nobase_strip_setup); files=`$(am__nobase_strip)`; \
dir='$(DESTDIR)$(iconsdir)'; $(am__uninstall_files_from_dir)
tags TAGS:
ctags CTAGS:
cscope cscopelist:
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
dist_files=`for file in $$list; do echo $$file; done | \
sed -e "s|^$$srcdirstrip/||;t" \
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
case $$dist_files in \
*/*) $(MKDIR_P) `echo "$$dist_files" | \
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
sort -u` ;; \
esac; \
for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
check-am: all-am
check: check-am
all-am: Makefile $(DATA)
installdirs:
for dir in "$(DESTDIR)$(iconsdir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
if test -z '$(STRIP)'; then \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
install; \
else \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
html: html-am
html-am:
info: info-am
info-am:
install-data-am: install-nobase_iconsDATA
@$(NORMAL_INSTALL)
$(MAKE) $(AM_MAKEFLAGS) install-data-hook
install-dvi: install-dvi-am
install-dvi-am:
install-exec-am:
install-html: install-html-am
install-html-am:
install-info: install-info-am
install-info-am:
install-man:
install-pdf: install-pdf-am
install-pdf-am:
install-ps: install-ps-am
install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-generic
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am: uninstall-nobase_iconsDATA
@$(NORMAL_INSTALL)
$(MAKE) $(AM_MAKEFLAGS) uninstall-hook
.MAKE: install-am install-data-am install-strip uninstall-am
.PHONY: all all-am check check-am clean clean-generic cscopelist-am \
ctags-am distclean distclean-generic distdir dvi dvi-am html \
html-am info info-am install install-am install-data \
install-data-am install-data-hook install-dvi install-dvi-am \
install-exec install-exec-am install-html install-html-am \
install-info install-info-am install-man \
install-nobase_iconsDATA install-pdf install-pdf-am install-ps \
install-ps-am install-strip installcheck installcheck-am \
installdirs maintainer-clean maintainer-clean-generic \
mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags-am \
uninstall uninstall-am uninstall-hook \
uninstall-nobase_iconsDATA
.PRECIOUS: Makefile
install-data-hook: $(UPDATE_ICON_CACHE)
uninstall-hook: $(UPDATE_ICON_CACHE)
update-icon-cache:
@-if test -z "$(DESTDIR)"; then \
echo "Updating GTK icon cache."; \
$(gtk_update_icon_cache) || : ; \
else \
echo "*** Icon cache not updated. After (un)install, run this:"; \
echo "*** $(gtk_update_icon_cache)"; \
fi
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -1,115 +0,0 @@
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" width="94.883331" height="94.883331" id="svg3309" enable-background="new">
<defs id="defs3311">
<linearGradient id="linearGradient3286">
<stop id="stop3288" offset="0" style="stop-color:#b3b3b3;stop-opacity:1"/>
<stop id="stop3313" offset="0.5" style="stop-color:#e6e6e6;stop-opacity:1"/>
<stop id="stop3315" offset="0.89887643" style="stop-color:#ffffff;stop-opacity:1"/>
<stop id="stop3290" offset="1" style="stop-color:#ffffff;stop-opacity:1"/>
</linearGradient>
<linearGradient id="linearGradient3261">
<stop id="stop3263" offset="0" style="stop-color:#ffffff;stop-opacity:1"/>
<stop id="stop3265" offset="0.33418018" style="stop-color:#ffffff;stop-opacity:1"/>
<stop id="stop3267" offset="1" style="stop-color:#000000;stop-opacity:1"/>
</linearGradient>
<linearGradient id="linearGradient3233">
<stop id="stop3242" offset="0" style="stop-color:#ffffff;stop-opacity:1"/>
<stop id="stop3244" offset="0.75" style="stop-color:#ffffff;stop-opacity:1"/>
<stop id="stop3237" offset="1" style="stop-color:#000000;stop-opacity:1"/>
</linearGradient>
<linearGradient id="linearGradient4174">
<stop id="stop3323" offset="0" style="stop-color:#000000;stop-opacity:0"/>
<stop id="stop4178" offset="1" style="stop-color:#ffffff;stop-opacity:1"/>
</linearGradient>
<linearGradient id="linearGradient4124">
<stop id="stop4126" offset="0" style="stop-color:#000000;stop-opacity:0"/>
<stop id="stop4132" offset="0.64999998" style="stop-color:#ffffff;stop-opacity:0"/>
<stop id="stop4134" offset="0.95442492" style="stop-color:#ffffff;stop-opacity:0.69999999"/>
<stop id="stop4128" offset="1" style="stop-color:#ffffff;stop-opacity:0"/>
</linearGradient>
<linearGradient id="linearGradient4106">
<stop id="stop4114" offset="0" style="stop-color:#ffffff;stop-opacity:0"/>
<stop id="stop4120" offset="0.88999999" style="stop-color:#666666;stop-opacity:0"/>
<stop id="stop4116" offset="1" style="stop-color:#333333;stop-opacity:1"/>
</linearGradient>
<linearGradient id="linearGradient4068">
<stop id="stop4070" offset="0" style="stop-color:#ff0000;stop-opacity:1"/>
<stop id="stop4076" offset="0.5" style="stop-color:#f2ff00;stop-opacity:1"/>
<stop id="stop4078" offset="0.56741571" style="stop-color:#86ff00;stop-opacity:1"/>
<stop id="stop4084" offset="0.96111602" style="stop-color:#02a2ff;stop-opacity:1"/>
<stop id="stop4080" offset="1" style="stop-color:#6d36ff;stop-opacity:1"/>
</linearGradient>
<linearGradient x1="11.583031" y1="1004.9205" x2="83.425392" y2="1004.9205" id="linearGradient4100" xlink:href="#linearGradient4068" gradientUnits="userSpaceOnUse"/>
<radialGradient cx="47.504211" cy="1004.9205" r="35.921181" fx="47.504211" fy="1004.9205" id="radialGradient4118" xlink:href="#linearGradient4106" gradientUnits="userSpaceOnUse"/>
<radialGradient cx="47.504211" cy="1004.9205" r="31.961046" fx="47.504211" fy="1004.9205" id="radialGradient4130" xlink:href="#linearGradient4124" gradientUnits="userSpaceOnUse"/>
<linearGradient x1="24.904339" y1="988.94238" x2="70.10408" y2="988.94238" id="linearGradient4326" xlink:href="#linearGradient4174" gradientUnits="userSpaceOnUse"/>
<filter color-interpolation-filters="sRGB" id="filter3353">
<feBlend in2="BackgroundImage" mode="lighten" id="feBlend3355"/>
</filter>
<linearGradient x1="24.904339" y1="988.94238" x2="70.10408" y2="988.94238" id="linearGradient3239" xlink:href="#linearGradient4174" gradientUnits="userSpaceOnUse"/>
<radialGradient cx="47.504211" cy="968.4248" r="24.679482" fx="47.504211" fy="968.4248" id="radialGradient3273" xlink:href="#linearGradient3261" gradientUnits="userSpaceOnUse" gradientTransform="matrix(2.0587749e-6,0.609653,-0.9522188,3.2146281e-6,969.65639,948.51477)"/>
<mask id="mask3269">
<rect width="47.008537" height="19.651985" x="23.995932" y="972.90875" id="rect3271" fill="url(#radialGradient3273)"/>
</mask>
<mask id="mask3279">
<path d="m53.783543 1003.8133a6.3762002 6.3762002 0 1 1-5.172117-5.17216l-1.107215 6.27936z" transform="matrix(4.6501196,0,0,4.6501196,-165.39605,-3676.0799)" id="path3281" fill="#fff"/>
</mask>
<linearGradient x1="47.504211" y1="1004.9205" x2="47.504211" y2="968.21008" id="linearGradient3357" xlink:href="#linearGradient3286" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.0297027,0,0,1.984915,0.4703387,-953.41447)"/>
<mask id="mask3353">
<rect width="93.884247" height="72.521454" x="0.4703387" y="968.74597" id="rect3355" style="enable-background:new;fill:url(#linearGradient3357)"/>
</mask>
<radialGradient cx="47.504211" cy="1004.9205" r="31.961046" fx="47.504211" fy="1004.9205" id="radialGradient3360" xlink:href="#linearGradient4124" gradientUnits="userSpaceOnUse"/>
<radialGradient cx="47.504211" cy="1004.9205" r="35.921181" fx="47.504211" fy="1004.9205" id="radialGradient3362" xlink:href="#linearGradient4106" gradientUnits="userSpaceOnUse"/>
</defs>
<metadata id="metadata3314">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>
image/svg+xml
</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
</cc:Work>
</rdf:RDF>
</metadata>
<g transform="translate(-0.06254578,-957.47881)" id="layer2">
<path d="m94.945877 1004.9205a47.441666 47.441666 0 1 1-94.88333122 0 47.441666 47.441666 0 1 1 94.88333122 0z" id="path3902" fill="#fff"/>
<path d="m91.938427 1004.9205a44.434216 44.434216 0 1 1-88.8684311 0 44.434216 44.434216 0 1 1 88.8684311 0z" id="path3900" fill="#000"/>
<path d="m83.425392 1004.9205a35.921181 35.921181 0 1 1-71.842361 0 35.921181 35.921181 0 1 1 71.842361 0z" id="path3914" fill="url(#linearGradient4100)"/>
<path d="m65.701572 1004.9205a18.197361 18.197361 0 1 1-36.394722 0 18.197361 18.197361 0 1 1 36.394722 0z" mask="url(#mask3279)" id="path3912" fill="#000"/>
<path d="m51.221839 1004.9205a3.7176273 3.7176273 0 1 1-7.435255 0 3.7176273 3.7176273 0 1 1 7.435255 0zM53.880412 1004.9205 53.880412 1004.9205 53.880412 1004.9205 53.880412 1004.9205" id="path3906" fill="#fff"/>
<path d="m53.880412 1004.9205a6.3762002 6.3762002 0 1 1-12.752401 0 6.3762002 6.3762002 0 1 1 12.752401 0z" transform="translate(8,-8)" id="path3910" fill="#fff"/>
<path d="m32.218113 1018.1054-8.879585 7.6254M30.923656 1016.4353l-9.628013 6.6555M30.923656 1016.4353l-9.628013 6.6555M30.923656 1016.4353l-9.628013 6.6555M30.923656 1016.4353l-9.628013 6.6555" id="path3930" style="fill:none;stroke:#fff"/>
<path d="m30.923656 1016.4353-9.628013 6.6555" id="path3934" style="fill:none;stroke:#fff"/>
<path d="m29.810864 1014.6391-10.270959 5.6126" id="path3936" style="fill:none;stroke:#fff"/>
<path d="m28.891922 1012.7364-10.80137 4.5082" id="path3938" style="fill:none;stroke:#fff"/>
<path d="m28.1769 1010.7481-11.213434 3.3544" id="path3940" style="fill:none;stroke:#fff"/>
<path d="m27.673629 1008.6959-11.502636 2.1639" id="path3942" style="fill:none;stroke:#fff"/>
<path d="m27.387628 1006.6024-11.665812 0.9497" id="path3944" style="fill:none;stroke:#fff"/>
<path d="m27.322024 1004.4904-11.701176-0.2749" id="path3946" style="fill:none;stroke:#fff"/>
<path d="m27.477544 1002.3831-11.608341-1.4965" id="path3948" style="fill:none;stroke:#fff"/>
<path d="M27.852485 1000.3036 16.464162 997.60194" id="path3950" style="fill:none;stroke:#fff"/>
<path d="M28.442739 998.27473 17.399202 994.39746" id="path3952" style="fill:none;stroke:#fff"/>
<path d="M29.241834 996.31867 18.66408 991.30828" id="path3954" style="fill:none;stroke:#fff"/>
<path d="m30.241015 994.45685-9.996079-6.08862" id="path3956" style="fill:none;stroke:#fff"/>
<path d="M31.429336 992.70968 22.12445 985.60954" id="path3958" style="fill:none;stroke:#fff"/>
<path d="M32.793817 991.09629 24.28207 983.06242" id="path3960" style="fill:none;stroke:#fff"/>
<path d="m57.359032 987.30271 5.736056-10.20249" id="path3962" style="fill:none;stroke:#fff"/>
<path d="m59.146609 988.42933 6.771084-9.54702" id="path3964" style="fill:none;stroke:#fff"/>
<path d="m63.459449 992.55382 9.266499-7.15019" id="path3966" style="fill:none;stroke:#fff"/>
<path d="m64.664717 994.28934 9.963134-6.1424" id="path4002" style="fill:none;stroke:#fff"/>
<path d="m65.681971 996.14134 10.55061-5.06732" id="path4004" style="fill:none;stroke:#fff"/>
<path d="m66.500065 998.08953 11.022492-3.93672" id="path4006" style="fill:none;stroke:#fff"/>
<path d="m67.110037 1000.1126 11.373608-2.76303" id="path4008" style="fill:none;stroke:#fff"/>
<path d="m67.505199 1002.1883 11.600117-1.559" id="path4010" style="fill:none;stroke:#fff"/>
<path d="m62.453612 1018.4859 8.650626 7.8842" id="path4012" style="fill:none;stroke:#fff"/>
<path d="m63.684972 1016.9906 9.366467 7.0188" id="path4020" style="fill:none;stroke:#fff"/>
<path d="m64.767345 1015.3842 9.996068 6.0887" id="path4022" style="fill:none;stroke:#fff"/>
<path d="m65.690768 1013.6814 10.533624 5.1026" id="path4024" style="fill:none;stroke:#fff"/>
<path d="m66.446734 1011.898 10.974192 4.0695" id="path4026" style="fill:none;stroke:#fff"/>
<path d="m67.028288 1010.0503 11.313714 2.999" id="path4028" style="fill:none;stroke:#fff"/>
<path d="m67.430071 1008.1554 11.549069 1.9008" id="path4030" style="fill:none;stroke:#fff"/>
<path d="m67.648386 1006.2307 11.678083 0.7851" id="path4032" style="fill:none;stroke:#fff"/>
<path d="m67.681221 1004.2939 11.699568-0.3378" id="path4034" style="fill:none;stroke:#fff"/>
<path d="m24.904339 982.3206a31.961046 31.961046 0 0 1 45.199744 0l-22.599872 22.5999z" transform="matrix(1.05,0,0,1.05,-2.3752106,-50.246024)" mask="url(#mask3269)" id="path4122" style="fill:url(#radialGradient3360);filter:url(#filter3353)"/>
<path d="m83.425392 1004.9205a35.921181 35.921181 0 1 1-71.842361 0 35.921181 35.921181 0 1 1 71.842361 0z" transform="matrix(1.01,0,0,1.01,-0.4750421,-10.049205)" mask="url(#mask3353)" id="path4102" style="enable-background:new;fill:url(#radialGradient3362)"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 KiB

View File

@ -1,83 +0,0 @@
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
TARGET_PLATFORM := android-8
testdisk_TOP := $(abspath $(LOCAL_PATH))/..
NDK_PROJECT_PATH = $(testdisk_TOP)
CONFIGURE_CC := $(TARGET_CC)
CONFIGURE_INCLUDES := -I$(TOPMOST)/include
CONFIGURE_LDFLAGS := -lc -ldl
CONFIGURE_CFLAGS := \
-nostdlib -Bdynamic \
-Wl,-dynamic-linker,/system/bin/linker \
-Wl,--gc-sections \
-Wl,-z,nocopyreloc \
$(call host-path,\
$(TARGET_CRTBEGIN_DYNAMIC_O) \
$(PRIVATE_OBJECTS)) \
$(call link-whole-archives,$(PRIVATE_WHOLE_STATIC_LIBRARIES))\
$(call host-path,\
$(PRIVATE_STATIC_LIBRARIES) \
$(TARGET_LIBGCC) \
$(PRIVATE_SHARED_LIBRARIES)) \
$(PRIVATE_LDFLAGS) \
$(PRIVATE_LDLIBS) \
$(call host-path,\
$(TARGET_CRTEND_O)) \
$(CONFIGURE_INCLUDES)
CONFIGURE_LDFLAGS += -L$(SYSROOT)/usr/lib -L$(TARGET_OUT)
CONFIGURE_INCLUDES += -I$(SYSROOT)/usr/include
CONFIGURE_CPP := $(TOOLCHAIN_PREFIX)cpp
LIB := $(SYSROOT)/usr/lib
CONFIGURE_CPPFLAGS := \
$(CONFIGURE_INCLUDES)
CONFIGURE := configure
#.SECONDARYEXPANSION:
#CONFIGURE_TARGETS :=
TD_BUILT_MAKEFILES := $(testdisk_TOP)/src/Android.mk
.PHONY: testdisk-configure testdisk-configure-real
testdisk-configure-real:
echo $(TD_BUILT_MAKEFILES)
cd $(testdisk_TOP) ; \
CC="$(CONFIGURE_CC)" \
CFLAGS="$(CONFIGURE_CFLAGS)" \
LD=$(TARGET_LD) \
LDFLAGS="$(CONFIGURE_LDFLAGS)" \
CPP=$(CONFIGURE_CPP) \
CPPFLAGS="$(CONFIGURE_CPPFLAGS)" \
PKG_CONFIG_LIBDIR=$(CONFIGURE_PKG_CONFIG_LIBDIR) \
PKG_CONFIG_TOP_BUILD_DIR=/ \
$(abspath $(testdisk_TOP))/configure --host=arm-linux-androideabi \
--prefix=/system \
--libexec /system/bin \
--datarootdir /system/usr/share \
--without-ncurses --without-ext2fs --without-jpeg \
--without-ntfs --without-ntfs3g --without-ewf \
--enable-missing-uuid-ok
rm -f $(TD_BUILT_MAKEFILES)
for file in $(TD_BUILT_MAKEFILES); do \
echo "make -C $$(dirname $$file) $$(basename $$file)" ; \
make -C $$(dirname $$file) $$(basename $$file) ; \
done
testdisk-configure: testdisk-configure-real
CONFIGURE_TARGETS += testdisk-configure
-include $(TD_BUILT_MAKEFILES)
run:
adb push libs/armeabi/photorec /data/local/bin/photorec
adb push libs/armeabi/testdisk /data/local/bin/testdisk
adb shell chmod 755 /data/local/bin/photorec /data/local/bin/testdisk
adb shell /data/local/bin/testdisk -lu
adb shell /data/local/bin/photorec

Binary file not shown.

View File

@ -1,28 +0,0 @@
.\" May be distributed under the GNU General Public License
.TH PHOTOREC 8 February 2018 "Administration Tools"
.SH NAME
photorec \- Recover lost files from harddisk, digital camera and cdrom
.SH SYNOPSIS
.BI "photorec [/log] [/debug] [/d recup_dir] [device|image.dd|image.e01]
.sp
.BI "photorec /version
.SH DESCRIPTION
\fBPhotoRec\fP is file data recovery software designed to recover lost files including video, documents and archives from Hard Disks and CDRom and lost pictures (Photo Recovery) from digital camera memory. PhotoRec ignores the filesystem and goes after the underlying data, so it'll work even if your media's filesystem is severely damaged or formatted. PhotoRec is safe to use, it will never attempt to write to the drive or memory support you are about to recover lost data from.
For more information on how to use, please visit the wiki pages on www.cgsecurity.org
.SH OPTIONS
.TP
.B /log
create a photorec.log file
.TP
.B /debug
add debug information
.SH SEE ALSO
.BR testdisk(8),
.BR fdisk (8).
.BR
.SH AUTHOR
PhotoRec 7.1-WIP, Data Recovery Utility, February 2018
.br
Christophe GRENIER <grenier@cgsecurity.org>
.br
https://www.cgsecurity.org

Binary file not shown.

View File

@ -1,7 +0,0 @@
This Linux version of TestDisk & PhotoRec should work on any 2.6 i386
or x86_64 kernel. It's a static version, the binary doesn't depend on
shared libraries.
TestDisk & PhotoRec documentation can be found online:
- http://www.cgsecurity.org/wiki/TestDisk
- http://www.cgsecurity.org/wiki/PhotoRec

View File

@ -1,64 +0,0 @@
.\" May be distributed under the GNU General Public License
.TH TESTDISK 8 February 2018 "Administration Tools"
.SH NAME
testdisk \- Scan and repair disk partitions
.SH SYNOPSIS
.BI "testdisk [/log] [/debug] [/dump] [device|image.dd|image.e01]
.sp
.BI "testdisk /version
.sp
.BI "testdisk /list [/log]
.SH DESCRIPTION
\fBTestDisk\fP checks and recovers lost partitions
It works with :
- BeFS (BeOS)
- BSD disklabel (FreeBSD/OpenBSD/NetBSD)
- CramFS, Compressed File System
- DOS/Windows FAT12, FAT16 and FAT32
- HFS and HFS+, Hierarchical File System
- JFS, IBM's Journaled File System
- Linux ext2/ext3/ext4
- Linux Raid
RAID 1: mirroring
RAID 4: striped array with parity device
RAID 5: striped array with distributed parity information
RAID 6: striped array with distributed dual redundancy information
- Linux Swap (versions 1 and 2)
- LVM and LVM2, Linux Logical Volume Manager
- Mac partition map
- Novell Storage Services NSS
- NTFS (Windows NT/2K/XP/2003/Vista/...)
- ReiserFS 3.5, 3.6 and 4
- Sun Solaris i386 disklabel
- Unix File System UFS and UFS2 (Sun/BSD/...)
- XFS, SGI's Journaled File System
It can undelete files from
- DOS/Windows FAT12, FAT16 and FAT32
- Linux ext2
- NTFS (Windows NT/2K/XP/2003/Vista/...)
For more information on how to use, please visit the wiki pages on www.cgsecurity.org
.SH OPTIONS
.TP
.B /log
create a testdisk.log file
.TP
.B /debug
add debug information
.TP
.B /dump
dump raw sectors
.TP
.B /list
display current partitions
.SH SEE ALSO
.BR fdisk (8),
.BR photorec(8).
.BR
.SH AUTHOR
TestDisk 7.1-WIP, Data Recovery Utility, February 2018
.br
Christophe GRENIER <grenier@cgsecurity.org>
.br
https://www.cgsecurity.org

Binary file not shown.