diff --git a/net-wireless/proxmark3/Manifest b/net-wireless/proxmark3/Manifest
index ec78cf670..83bbaf445 100644
--- a/net-wireless/proxmark3/Manifest
+++ b/net-wireless/proxmark3/Manifest
@@ -1,2 +1,3 @@
DIST proxmark3-4.18218.tar.gz 31530182 BLAKE2B c26f82d468deace11b7cc0048269a7f17ca54005631bfddf55cd1d0ad957c684735ffd3e24a73fd1f5ef7de35e1a0609916d34bf0d2525053fec8b1fcb5a18db SHA512 8c89089674e349629cfa156bbf85366e28962dde7c48a9e6941c63df05417a9a8c8a06f018614e4129e4a08b954216a5e29349abceea24bf6e6fc9b498c68ecb
DIST proxmark3-4.18341.tar.gz 31594493 BLAKE2B 8f0e1f7d69a1ebd339bdb412fe85437936b344f6c545e5747f35c0fd18e3b900388add22ed80d1113b73af0a5686eda04bcf40cee6411a14cbaeb90031339374 SHA512 af0f8d724b6e319be191b60da80edf14e3742218992c6ae6fcd8ad0aa7c26d24321f91f0d96172283708925c28e8b47919b292057aed41a51eb00c2fcb87cda2
+DIST proxmark3-4.18994.tar.gz 31699671 BLAKE2B fadc6e0829da27b295ed83857372bf16e1dfde35bee2d6fc63d8c9071d29df8d1a5b15a7fb29d8da064b6634b48e1d31f34be8afeb9a70ba6c5d4d48d6e0e41b SHA512 718809522036ebd0de880c7dc3cc9c291eac62d3d67061f6f22b7d07be4850c952b23299c45324d2537594227f787e242bcfa741c7050f416a4666aaf87e1c19
diff --git a/net-wireless/proxmark3/metadata.xml b/net-wireless/proxmark3/metadata.xml
index 589f392f8..3bf02f275 100644
--- a/net-wireless/proxmark3/metadata.xml
+++ b/net-wireless/proxmark3/metadata.xml
@@ -11,34 +11,34 @@
build firmware to update the proxmark3 hardware
build proxmark3 rdv4 specific firmware instead of generic
build support for qt graphical scope interface
- standalone HID26 read/clone/sim
- standalone HID ProxII bruteforce
- standalone HID corporate 1000 bruteforce
- standalone Mifare sniff/simulation
- standalone Mifare sniff/clone
- standalone 14a based protocol
- standalone Mifare ultra fast sniff/sim/clone
- standalone 14a sniff with ULC/ULEV1/NTAG auth
Load multiple standalone modes
HF 14a sniff to flashmem
HF 15693 sniff to flashmem
MIFARE Ultralight read/simulation
+ standalone 14a sniff with ULC/ULEV1/NTAG auth
+ standalone 14a based protocol
+ standalone Mifare ultra fast sniff/sim/clone
UID stealer - Emulates scanned 14a UID
iCLASS 4-1 mode sim/read and dump/loclass/glitch and config to flashmem
Read/simulate Legic Prime tags (RDV4: + save to flashmem)
Simulate Legic Prime tags
+ standalone Mifare sniff/clone
MIFARE Classic simulate
(default) Read and emulate MSD Visa cards
14A relay over BT
IKEA Rothult ST25TA, Standalone Master Key Dump/Emulation
Read and emulate ISO15693 card UID
Multimode HF sniffer with optional flashmem and runtime select
+ standalone Mifare sniff/simulation
Simulate predefined EM4100 tags
Read/simulate/brute/clone EM4100 tags
Read/simulate/clone EM4100 tags
+ standalone HID corporate 1000 bruteforce
HID Facility Code bruteforce
LF HID / IOprox / AWID / EM4100 collector to flashmem
Nexwatch credentials detection mode
+ standalone HID ProxII bruteforce
+ standalone HID26 read/clone/sim
LF EM4x50 simulator/read standalone mode
diff --git a/net-wireless/proxmark3/proxmark3-4.18994.ebuild b/net-wireless/proxmark3/proxmark3-4.18994.ebuild
new file mode 100644
index 000000000..393222190
--- /dev/null
+++ b/net-wireless/proxmark3/proxmark3-4.18994.ebuild
@@ -0,0 +1,231 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit udev toolchain-funcs
+
+if [ "${PV}" = "9999" ]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/RfidResearchGroup/proxmark3.git"
+ RESTRICT="strip"
+else
+ #snapshot
+ #HASH_COMMIT="1ac5211601b50b82b41737dce0c3a72d9e0374ac"
+ #SRC_URI="https://github.com/RfidResearchGroup/${PN}/archive/${HASH_COMMIT}.tar.gz -> ${P}.tar.gz"
+ #S=${WORKDIR}/${PN}-${HASH_COMMIT}
+
+ #or release
+ KEYWORDS="~amd64"
+ SRC_URI="https://github.com/RfidResearchGroup/proxmark3/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+fi
+DESCRIPTION="A general purpose RFID tool for Proxmark3 hardware"
+HOMEPAGE="https://github.com/RfidResearchGroup/proxmark3"
+
+LICENSE="GPL-3+"
+SLOT="0"
+IUSE="+bluez +firmware opencl +qt"
+
+CDEPEND="
+ app-arch/bzip2
+ app-arch/lz4:=
+ dev-libs/jansson:=
+ dev-libs/openssl:=
+ sys-libs/readline:=
+ media-libs/gd:2=
+ bluez? ( net-wireless/bluez:= )
+ opencl? ( dev-libs/opencl-icd-loader )
+ qt? ( dev-qt/qtcore:5
+ dev-qt/qtwidgets:5
+ dev-qt/qtgui:5 )
+"
+DEPEND="${CDEPEND}
+ dev-util/opencl-headers
+"
+RDEPEND="${CDEPEND}
+ dev-python/ansicolors
+ dev-python/sslcrypto
+"
+#ncurses is basically just used for termcap
+PDEPEND="sys-libs/ncurses:*[tinfo]"
+BDEPEND="firmware? ( sys-devel/gcc-arm-none-eabi:0 )"
+
+QA_FLAGS_IGNORED="usr/share/proxmark3/firmware/bootrom.elf
+ usr/share/proxmark3/firmware/fullimage.elf
+ usr/share/proxmark3/firmware/PM3BOOTROM.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_256.elf
+ usr/share/proxmark3/firmware/PM3GENERIC.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_LFSKELETON.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_LFEM4100EMUL.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_LFEM4100RSWB.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_LFEM4100RSWW.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_LFEM4100RWC.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_LFHIDBRUTE.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_LFMULTIHID.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_LFNEDAP_SIM.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_LFPROXBRUTE.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_LFPROX2BRUTE.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_LFSAMYRUN.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_HF14ASNIFF.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_HF14BSNIFF.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_HF15SNIFF.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_HF15SIM.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_HFAVEFUL.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_HFCRAFTBYTE.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_HFLEGIC.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_HFMATTYRUN.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_HFMSDSAL.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_HFTCPRST.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_HFTMUDFORD.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_HFUNISNIFF.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_HFYOUNG.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_DANKARMULTI.elf
+ usr/share/proxmark3/firmware/PM3RDV4.elf
+ usr/share/proxmark3/firmware/PM3RDV4_LFSKELETON.elf
+ usr/share/proxmark3/firmware/PM3RDV4_LFEM4100EMUL.elf
+ usr/share/proxmark3/firmware/PM3RDV4_LFEM4100RSWB.elf
+ usr/share/proxmark3/firmware/PM3RDV4_LFEM4100RSWW.elf
+ usr/share/proxmark3/firmware/PM3RDV4_LFEM4100RWC.elf
+ usr/share/proxmark3/firmware/PM3RDV4_LFHIDBRUTE.elf
+ usr/share/proxmark3/firmware/PM3RDV4_LFHIDFCBRUTE.elf
+ usr/share/proxmark3/firmware/PM3RDV4_LFICEHID.elf
+ usr/share/proxmark3/firmware/PM3RDV4_LFMULTIHID.elf
+ usr/share/proxmark3/firmware/PM3RDV4_LFNEDAP_SIM.elf
+ usr/share/proxmark3/firmware/PM3RDV4_LFNEXID.elf
+ usr/share/proxmark3/firmware/PM3RDV4_LFPROXBRUTE.elf
+ usr/share/proxmark3/firmware/PM3RDV4_LFPROX2BRUTE.elf
+ usr/share/proxmark3/firmware/PM3RDV4_LFSAMYRUN.elf
+ usr/share/proxmark3/firmware/PM3RDV4_LFTHAREXDE.elf
+ usr/share/proxmark3/firmware/PM3RDV4_HF14ASNIFF.elf
+ usr/share/proxmark3/firmware/PM3RDV4_HF14BSNIFF.elf
+ usr/share/proxmark3/firmware/PM3RDV4_HF15SNIFF.elf
+ usr/share/proxmark3/firmware/PM3RDV4_HF15SIM.elf
+ usr/share/proxmark3/firmware/PM3RDV4_HFAVEFUL.elf
+ usr/share/proxmark3/firmware/PM3RDV4_HFBOG.elf
+ usr/share/proxmark3/firmware/PM3RDV4_HFCOLIN.elf
+ usr/share/proxmark3/firmware/PM3RDV4_HFCRAFTBYTE.elf
+ usr/share/proxmark3/firmware/PM3RDV4_HFICECLASS.elf
+ usr/share/proxmark3/firmware/PM3RDV4_HFLEGIC.elf
+ usr/share/proxmark3/firmware/PM3RDV4_HFLEGICSIM.elf
+ usr/share/proxmark3/firmware/PM3RDV4_HFMATTYRUN.elf
+ usr/share/proxmark3/firmware/PM3RDV4_HFMFCSIM.elf
+ usr/share/proxmark3/firmware/PM3RDV4_HFMSDSAL.elf
+ usr/share/proxmark3/firmware/PM3RDV4_HFTCPRST.elf
+ usr/share/proxmark3/firmware/PM3RDV4_HFTMUDFORD.elf
+ usr/share/proxmark3/firmware/PM3RDV4_HFUNISNIFF.elf
+ usr/share/proxmark3/firmware/PM3RDV4_HFYOUNG.elf
+ usr/share/proxmark3/firmware/PM3RDV4_DANKARMULTI.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_LFSKELETON.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_LFEM4100EMUL.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_LFEM4100RSWB.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_LFEM4100RSWW.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_LFEM4100RWC.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_LFHIDBRUTE.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_LFHIDFCBRUTE.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_LFICEHID.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_LFMULTIHID.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_LFNEDAP_SIM.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_LFNEXID.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_LFPROXBRUTE.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_LFPROX2BRUTE.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_LFSAMYRUN.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_LFTHAREXDE.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_HF14ASNIFF.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_HF14BSNIFF.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_HF15SNIFF.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_HF15SIM.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_HFAVEFUL.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_HFBOG.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_HFCARDHOPPER.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_HFCOLIN.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_HFCRAFTBYTE.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_HFICECLASS.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_HFLEGIC.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_HFLEGICSIM.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_HFMATTYRUN.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_HFMFCSIM.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_HFMSDSAL.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_HFREBLAY.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_HFTCPRST.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_HFTMUDFORD.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_HFUNISNIFF.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_HFYOUNG.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_DANKARMULTI.elf
+"
+
+src_prepare(){
+ default
+ build_time=$(date '+%Y-%m-%d %H:%M:%S')
+ sed -i "s#\"\$ctime\",#\"${build_time}\",#" tools/mkversion.sh || die
+}
+
+src_compile(){
+ export PREFIX=/usr
+ #verbose
+ export V=1
+ #common flags
+ EMAKE_COMMON=CC="$(tc-getCC)" DEFCFLAGS="${CFLAGS}" MYCFLAGS="${CFLAGS}"
+ EMAKE_COMMON+= MYCXXFLAGS="${CXXFLAGS}" MYLDFLAGS="${LDFLAGS}"
+ use bluez || export SKIPBT=1
+ use qt || export SKIPQT=1
+ use opencl || export SKIPOPENCL=1
+ if use firmware; then
+ #prevent repeat cleaning of things which were never built
+ sed -i '/\$(Q)\$(MAKE) \-\-no-print-directory \-C recovery clean/d' Makefile || die
+ sed -i '/\$(Q)\$(MAKE) \-\-no-print-directory \-C client clean/d' Makefile || die
+ #prevent rebuilding fpga_compress for every firmware
+ sed -i '/\$(Q)\$(MAKE) \-\-no-print-directory \-C tools\/fpga_compress clean/d' Makefile || die
+ DEST="firmware" MKFLAGS="${MAKEOPTS} ${EMAKE_COMMON}" ./tools/build_all_firmwares.sh || die
+ # We removed the auto cleans for speed so we have to do it once manually
+ emake clean
+ fi
+ # If we wanted firmware we built it in USE=firmware
+ sed -i 's#bootrom/% armsrc/% recovery/%##' Makefile || die
+ emake ${EMAKE_COMMON} all hitag2crack
+}
+
+src_install(){
+ export PREFIX=/usr
+ export DESTDIR="${ED}"
+ # hitag2crack needs it's own DESTDIR variable?
+ export MYDESTDIR="${ED}"
+ export UDEV_PREFIX="$(get_udevdir)/rules.d"
+ export INSTALLDOCSRELPATH="/share/doc/${PF}"
+ emake INSTALLDOCSRELPATH="/share/doc/${PF}" install hitag2crack/install
+ if use firmware; then
+ insinto /usr/share/${PN}
+ doins -r "${S}"/firmware
+ ln -s ./PM3BOOTROM.elf "${ED}/usr/share/${PN}/firmware/bootrom.elf"
+ ln -s ./PM3GENERIC_256.elf "${ED}/usr/share/${PN}/firmware/proxmark3_recovery.bin"
+ ln -s ./PM3GENERIC.elf "${ED}/usr/share/${PN}/firmware/fullimage.elf"
+ fi
+}
+
+src_test() {
+ # Because of building all firmware the some files end up in a different location with a different name
+ sed -i -e 's#bootrom/obj/bootrom.elf#firmware/PM3BOOTROM.elf#' \
+ -e 's#recovery/proxmark3_recovery.bin#firmware/PM3GENERIC_256.elf#' \
+ -e 's#armsrc/obj/fullimage.elf#firmware/PM3GENERIC.elf#' tools/pm3_tests.sh || die
+ # This isn't installed and was removed by "make clean" after firmware build
+ sed -i '/if ! CheckFileExist "fpgacompress exists"/d' tools/pm3_tests.sh || die
+ if use firmware; then
+ ./tools/pm3_tests.sh --long || die
+ else
+ ./tools/pm3_tests.sh --long client || die
+ fi
+ # Opencl stuff doesn't work as the portage user
+ #if use opencl; then
+ # ./tools/pm3_tests.sh --long --opencl hitag2crack || die
+ #else
+ ./tools/pm3_tests.sh --long hitag2crack || die
+ #fi
+}
+
+pkg_postinst() {
+ udev_reload
+}
+
+pkg_postrm() {
+ udev_reload
+}
diff --git a/net-wireless/proxmark3/proxmark3-9999.ebuild b/net-wireless/proxmark3/proxmark3-9999.ebuild
index cf36d0655..393222190 100644
--- a/net-wireless/proxmark3/proxmark3-9999.ebuild
+++ b/net-wireless/proxmark3/proxmark3-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -16,7 +16,7 @@ else
#S=${WORKDIR}/${PN}-${HASH_COMMIT}
#or release
- KEYWORDS="amd64"
+ KEYWORDS="~amd64"
SRC_URI="https://github.com/RfidResearchGroup/proxmark3/archive/v${PV}.tar.gz -> ${P}.tar.gz"
fi
DESCRIPTION="A general purpose RFID tool for Proxmark3 hardware"
@@ -24,25 +24,9 @@ HOMEPAGE="https://github.com/RfidResearchGroup/proxmark3"
LICENSE="GPL-3+"
SLOT="0"
-# https://github.com/RfidResearchGroup/proxmark3/wiki/Standalone-mode
-STANDALONE="standalone-lf-em4100emul standalone-lf-em4100rswb standalone-lf-em4100rwc standalone-lf-hidbrute standalone-lf-hidfcbrute standalone-lf-icehid standalone-lf-nexid standalone-lf-proxbrute standalone-lf-samyrun standalone-lf-tharexde standalone-hf-14asniff standalone-hf-15sniff standalone-hf-aveful standalone-hf-bog standalone-hf-cardhopper standalone-hf-colin standalone-hf-craftbyte standalone-hf-iceclass standalone-hf-legic standalone-hf-legicsim standalone-hf-mattyrun standalone-hf-mfcsim standalone-hf-msdsal standalone-hf-reblay standalone-hf-tcprst standalone-hf-tmudford standalone-hf-unisniff standalone-hf-young standalone-dankarmulti"
-IUSE="+bluez deprecated +firmware +pm3rdv4 +qt ${STANDALONE}"
-REQUIRED_USE="?? ( ${STANDALONE/+/} )
- standalone-lf-hidfcbrute? ( pm3rdv4 )
- standalone-lf-icehid? ( pm3rdv4 )
- standalone-lf-nexid? ( pm3rdv4 )
- standalone-lf-tharexde? ( pm3rdv4 )
- standalone-hf-14asniff? ( pm3rdv4 )
- standalone-hf-15sniff? ( pm3rdv4 )
- standalone-hf-bog? ( pm3rdv4 )
- standalone-hf-cardhopper? ( pm3rdv4 )
- standalone-hf-colin? ( pm3rdv4 )
- standalone-hf-iceclass? ( pm3rdv4 )
- standalone-hf-legicsim? ( pm3rdv4 )
- standalone-hf-mfcsim? ( pm3rdv4 )
- "
+IUSE="+bluez +firmware opencl +qt"
-DEPEND="
+CDEPEND="
app-arch/bzip2
app-arch/lz4:=
dev-libs/jansson:=
@@ -50,88 +34,130 @@ DEPEND="
sys-libs/readline:=
media-libs/gd:2=
bluez? ( net-wireless/bluez:= )
+ opencl? ( dev-libs/opencl-icd-loader )
qt? ( dev-qt/qtcore:5
dev-qt/qtwidgets:5
dev-qt/qtgui:5 )
"
-#this is basically just used for termcap
-RDEPEND="${DEPEND}
- sys-libs/ncurses:*[tinfo]
- "
+DEPEND="${CDEPEND}
+ dev-util/opencl-headers
+"
+RDEPEND="${CDEPEND}
+ dev-python/ansicolors
+ dev-python/sslcrypto
+"
+#ncurses is basically just used for termcap
+PDEPEND="sys-libs/ncurses:*[tinfo]"
BDEPEND="firmware? ( sys-devel/gcc-arm-none-eabi:0 )"
QA_FLAGS_IGNORED="usr/share/proxmark3/firmware/bootrom.elf
- usr/share/proxmark3/firmware/fullimage.elf"
+ usr/share/proxmark3/firmware/fullimage.elf
+ usr/share/proxmark3/firmware/PM3BOOTROM.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_256.elf
+ usr/share/proxmark3/firmware/PM3GENERIC.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_LFSKELETON.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_LFEM4100EMUL.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_LFEM4100RSWB.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_LFEM4100RSWW.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_LFEM4100RWC.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_LFHIDBRUTE.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_LFMULTIHID.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_LFNEDAP_SIM.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_LFPROXBRUTE.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_LFPROX2BRUTE.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_LFSAMYRUN.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_HF14ASNIFF.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_HF14BSNIFF.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_HF15SNIFF.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_HF15SIM.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_HFAVEFUL.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_HFCRAFTBYTE.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_HFLEGIC.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_HFMATTYRUN.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_HFMSDSAL.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_HFTCPRST.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_HFTMUDFORD.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_HFUNISNIFF.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_HFYOUNG.elf
+ usr/share/proxmark3/firmware/PM3GENERIC_DANKARMULTI.elf
+ usr/share/proxmark3/firmware/PM3RDV4.elf
+ usr/share/proxmark3/firmware/PM3RDV4_LFSKELETON.elf
+ usr/share/proxmark3/firmware/PM3RDV4_LFEM4100EMUL.elf
+ usr/share/proxmark3/firmware/PM3RDV4_LFEM4100RSWB.elf
+ usr/share/proxmark3/firmware/PM3RDV4_LFEM4100RSWW.elf
+ usr/share/proxmark3/firmware/PM3RDV4_LFEM4100RWC.elf
+ usr/share/proxmark3/firmware/PM3RDV4_LFHIDBRUTE.elf
+ usr/share/proxmark3/firmware/PM3RDV4_LFHIDFCBRUTE.elf
+ usr/share/proxmark3/firmware/PM3RDV4_LFICEHID.elf
+ usr/share/proxmark3/firmware/PM3RDV4_LFMULTIHID.elf
+ usr/share/proxmark3/firmware/PM3RDV4_LFNEDAP_SIM.elf
+ usr/share/proxmark3/firmware/PM3RDV4_LFNEXID.elf
+ usr/share/proxmark3/firmware/PM3RDV4_LFPROXBRUTE.elf
+ usr/share/proxmark3/firmware/PM3RDV4_LFPROX2BRUTE.elf
+ usr/share/proxmark3/firmware/PM3RDV4_LFSAMYRUN.elf
+ usr/share/proxmark3/firmware/PM3RDV4_LFTHAREXDE.elf
+ usr/share/proxmark3/firmware/PM3RDV4_HF14ASNIFF.elf
+ usr/share/proxmark3/firmware/PM3RDV4_HF14BSNIFF.elf
+ usr/share/proxmark3/firmware/PM3RDV4_HF15SNIFF.elf
+ usr/share/proxmark3/firmware/PM3RDV4_HF15SIM.elf
+ usr/share/proxmark3/firmware/PM3RDV4_HFAVEFUL.elf
+ usr/share/proxmark3/firmware/PM3RDV4_HFBOG.elf
+ usr/share/proxmark3/firmware/PM3RDV4_HFCOLIN.elf
+ usr/share/proxmark3/firmware/PM3RDV4_HFCRAFTBYTE.elf
+ usr/share/proxmark3/firmware/PM3RDV4_HFICECLASS.elf
+ usr/share/proxmark3/firmware/PM3RDV4_HFLEGIC.elf
+ usr/share/proxmark3/firmware/PM3RDV4_HFLEGICSIM.elf
+ usr/share/proxmark3/firmware/PM3RDV4_HFMATTYRUN.elf
+ usr/share/proxmark3/firmware/PM3RDV4_HFMFCSIM.elf
+ usr/share/proxmark3/firmware/PM3RDV4_HFMSDSAL.elf
+ usr/share/proxmark3/firmware/PM3RDV4_HFTCPRST.elf
+ usr/share/proxmark3/firmware/PM3RDV4_HFTMUDFORD.elf
+ usr/share/proxmark3/firmware/PM3RDV4_HFUNISNIFF.elf
+ usr/share/proxmark3/firmware/PM3RDV4_HFYOUNG.elf
+ usr/share/proxmark3/firmware/PM3RDV4_DANKARMULTI.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_LFSKELETON.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_LFEM4100EMUL.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_LFEM4100RSWB.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_LFEM4100RSWW.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_LFEM4100RWC.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_LFHIDBRUTE.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_LFHIDFCBRUTE.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_LFICEHID.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_LFMULTIHID.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_LFNEDAP_SIM.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_LFNEXID.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_LFPROXBRUTE.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_LFPROX2BRUTE.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_LFSAMYRUN.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_LFTHAREXDE.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_HF14ASNIFF.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_HF14BSNIFF.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_HF15SNIFF.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_HF15SIM.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_HFAVEFUL.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_HFBOG.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_HFCARDHOPPER.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_HFCOLIN.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_HFCRAFTBYTE.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_HFICECLASS.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_HFLEGIC.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_HFLEGICSIM.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_HFMATTYRUN.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_HFMFCSIM.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_HFMSDSAL.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_HFREBLAY.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_HFTCPRST.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_HFTMUDFORD.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_HFUNISNIFF.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_HFYOUNG.elf
+ usr/share/proxmark3/firmware/PM3RDV4_BTADDON_DANKARMULTI.elf
+"
src_prepare(){
default
- #first we set platform
- if use pm3rdv4; then
- echo 'PLATFORM=PM3RDV4' > Makefile.platform
- echo 'PLATFORM_EXTRAS=BTADDON' >> Makefile.platform
- else
- echo 'PLATFORM=PM3GENERIC' > Makefile.platform
- fi
- #then we set a standalone mode
- if use standalone-lf-em4100emul; then
- echo 'STANDALONE=LF_EM4100EMUL' >> Makefile.platform
- elif use standalone-lf-em4100rswb; then
- echo 'STANDALONE=LF_EM4100RSWB' >> Makefile.platform
- elif use standalone-lf-em4100rwc; then
- echo 'STANDALONE=LF_EM4100RWC' >> Makefile.platform
- elif use standalone-lf-hidbrute; then
- echo 'STANDALONE=LF_HIDBRUTE' >> Makefile.platform
- elif use standalone-lf-hidfcbrute; then
- echo 'STANDALONE=LF_HIDFCBRUTE' >> Makefile.platform
- elif use standalone-lf-icehid; then
- echo 'STANDALONE=LF_ICEHID' >> Makefile.platform
- elif use standalone-lf-nexid; then
- echo 'STANDALONE=LF_NEXID' >> Makefile.platform
- elif use standalone-lf-proxbrute; then
- echo 'STANDALONE=LF_PROXBRUTE' >> Makefile.platform
- elif use standalone-lf-samyrun; then
- echo 'STANDALONE=LF_SAMYRUN' >> Makefile.platform
- elif use standalone-lf-tharexde; then
- echo 'STANDALONE=LF_THAREXDE' >> Makefile.platform
- elif use standalone-hf-14asniff; then
- echo 'STANDALONE=HF_14ASNIFF' >> Makefile.platform
- elif use standalone-hf-15sniff; then
- echo 'STANDALONE=HF_15SNIFF' >> Makefile.platform
- elif use standalone-hf-aveful; then
- echo 'STANDALONE=HF_AVEFUL' >> Makefile.platform
- elif use standalone-hf-bog; then
- echo 'STANDALONE=HF_BOG' >> Makefile.platform
- elif use standalone-hf-cardhopper; then
- echo 'STANDALONE=HF_CARDHOPPER' >> Makefile.platform
- elif use standalone-hf-colin; then
- echo 'STANDALONE=HF_COLIN' >> Makefile.platform
- elif use standalone-hf-craftbyte; then
- echo 'STANDALONE=HF_CRAFTBYTE' >> Makefile.platform
- elif use standalone-hf-iceclass; then
- echo 'STANDALONE=HF_ICECLASS' >> Makefile.platform
- elif use standalone-hf-legic; then
- echo 'STANDALONE=HF_LEGIC' >> Makefile.platform
- elif use standalone-hf-legicsim; then
- echo 'STANDALONE=HF_LEGICSIM' >> Makefile.platform
- elif use standalone-hf-mattyrun; then
- echo 'STANDALONE=HF_MATTYRUN' >> Makefile.platform
- elif use standalone-hf-msdsal; then
- echo 'STANDALONE=HF_MSDSAL' >> Makefile.platform
- elif use standalone-hf-reblay; then
- echo 'STANDALONE=HF_REBLAY' >> Makefile.platform
- elif use standalone-hf-tcprst; then
- echo 'STANDALONE=HF_TCPRST' >> Makefile.platform
- elif use standalone-hf-tmudford; then
- echo 'STANDALONE=HF_TMUDFORD' >> Makefile.platform
- elif use standalone-hf-unisniff; then
- echo 'STANDALONE=HF_UNISNIFF' >> Makefile.platform
- elif use standalone-hf-young; then
- echo 'STANDALONE=HF_YOUNG' >> Makefile.platform
- elif use standalone-dankarmulti; then
- echo 'STANDALONE=DANKARMULTI' >> Makefile.platform
- else
- echo 'STANDALONE=' >> Makefile.platform
- fi
+ build_time=$(date '+%Y-%m-%d %H:%M:%S')
+ sed -i "s#\"\$ctime\",#\"${build_time}\",#" tools/mkversion.sh || die
}
src_compile(){
@@ -141,53 +167,63 @@ src_compile(){
#common flags
EMAKE_COMMON=CC="$(tc-getCC)" DEFCFLAGS="${CFLAGS}" MYCFLAGS="${CFLAGS}"
EMAKE_COMMON+= MYCXXFLAGS="${CXXFLAGS}" MYLDFLAGS="${LDFLAGS}"
- use qt || export SKIPQT=1
use bluez || export SKIPBT=1
+ use qt || export SKIPQT=1
+ use opencl || export SKIPOPENCL=1
if use firmware; then
- emake ${EMAKE_COMMON} client
- emake ${EMAKE_COMMON} all
- elif use deprecated; then
- emake ${EMAKE_COMMON} client
- emake ${EMAKE_COMMON} mfkey nonce2key
- else
- emake ${EMAKE_COMMON} client
+ #prevent repeat cleaning of things which were never built
+ sed -i '/\$(Q)\$(MAKE) \-\-no-print-directory \-C recovery clean/d' Makefile || die
+ sed -i '/\$(Q)\$(MAKE) \-\-no-print-directory \-C client clean/d' Makefile || die
+ #prevent rebuilding fpga_compress for every firmware
+ sed -i '/\$(Q)\$(MAKE) \-\-no-print-directory \-C tools\/fpga_compress clean/d' Makefile || die
+ DEST="firmware" MKFLAGS="${MAKEOPTS} ${EMAKE_COMMON}" ./tools/build_all_firmwares.sh || die
+ # We removed the auto cleans for speed so we have to do it once manually
+ emake clean
fi
+ # If we wanted firmware we built it in USE=firmware
+ sed -i 's#bootrom/% armsrc/% recovery/%##' Makefile || die
+ emake ${EMAKE_COMMON} all hitag2crack
}
src_install(){
export PREFIX=/usr
export DESTDIR="${ED}"
+ # hitag2crack needs it's own DESTDIR variable?
+ export MYDESTDIR="${ED}"
export UDEV_PREFIX="$(get_udevdir)/rules.d"
export INSTALLDOCSRELPATH="/share/doc/${PF}"
+ emake INSTALLDOCSRELPATH="/share/doc/${PF}" install hitag2crack/install
if use firmware; then
- emake INSTALLDOCSRELPATH="/share/doc/${PF}" install
- elif use deprecated; then
- emake INSTALLDOCSRELPATH="/share/doc/${PF}" client/install mfkey/install nonce2key/install common/install
- else
- emake INSTALLDOCSRELPATH="/share/doc/${PF}" client/install common/install
+ insinto /usr/share/${PN}
+ doins -r "${S}"/firmware
+ ln -s ./PM3BOOTROM.elf "${ED}/usr/share/${PN}/firmware/bootrom.elf"
+ ln -s ./PM3GENERIC_256.elf "${ED}/usr/share/${PN}/firmware/proxmark3_recovery.bin"
+ ln -s ./PM3GENERIC.elf "${ED}/usr/share/${PN}/firmware/fullimage.elf"
fi
}
src_test() {
+ # Because of building all firmware the some files end up in a different location with a different name
+ sed -i -e 's#bootrom/obj/bootrom.elf#firmware/PM3BOOTROM.elf#' \
+ -e 's#recovery/proxmark3_recovery.bin#firmware/PM3GENERIC_256.elf#' \
+ -e 's#armsrc/obj/fullimage.elf#firmware/PM3GENERIC.elf#' tools/pm3_tests.sh || die
+ # This isn't installed and was removed by "make clean" after firmware build
+ sed -i '/if ! CheckFileExist "fpgacompress exists"/d' tools/pm3_tests.sh || die
if use firmware; then
- ./pm3test.sh
+ ./tools/pm3_tests.sh --long || die
else
- ./pm3test.sh client
+ ./tools/pm3_tests.sh --long client || die
fi
+ # Opencl stuff doesn't work as the portage user
+ #if use opencl; then
+ # ./tools/pm3_tests.sh --long --opencl hitag2crack || die
+ #else
+ ./tools/pm3_tests.sh --long hitag2crack || die
+ #fi
}
pkg_postinst() {
udev_reload
- if use firmware; then
- if use pm3rdv4; then
- ewarn "Please note, all firmware and recovery files are intended for the Proxmark3 RDV4"
- ewarn "including support for the optional blueshark accessory."
- ewarn "If this is not what you intended please unset the pm3rdv4 use flag for generic firmware"
- else
- ewarn "Please note, all firmware and recovery files are built for a generic target."
- ewarn "If you have a Proxmark3 RDV4 you should set the pm3rdv4 use flag for an improved firmware"
- fi
- fi
}
pkg_postrm() {