From d7be2630c59d15b7060e1674fd23fe10bfd8ec27 Mon Sep 17 00:00:00 2001
From: Zaman <7amaaan@gmail.com>
Date: Tue, 10 Sep 2019 21:14:07 +0430
Subject: [PATCH] add so file for now
---
MANIFEST.in | 1 +
README.md | 76 ++++++++++++++++++++++++++++++++++++++++++++-
wdpass/__init__.py | 5 +--
wdpass/py3_sg.so | Bin 0 -> 46584 bytes
wdpass/version.py | 2 +-
5 files changed, 80 insertions(+), 4 deletions(-)
create mode 100755 wdpass/py3_sg.so
diff --git a/MANIFEST.in b/MANIFEST.in
index 04f196a..25bd08d 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -1,2 +1,3 @@
include README.md
include LICENSE
+include wdpass/py3_sg.so
diff --git a/README.md b/README.md
index bcb96ac..9a018a4 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,75 @@
-# wdpass
\ No newline at end of file
+# wdpass
+WD Passport Ultra Complete Utilities for Linux.
+
+
Intro
+
+This script let you unlock, change password and erase Western Digital Passport devices on Linux platform.
+
+ Install
+
+In order to run this script you need to install "lsscsi"
+```
+sudo dbf install lsscsi
+pip3 install wdpass --user
+```
+
+
+
+ Usage
+
+Run script as root.
+
+There are few options:
+```
+-h, --help show this help message and exit
+```
+Lists all possible arguments.
+
+```
+-s, --status Check device status and encryption type
+```
+Get device encryption status and cipher suites used.
+```
+-u, --unlock Unlock
+```
+You will be asked to enter the unlock password. If everything is fine device will be unlocked.
+
+```
+-us, --unlock_with_saved_passwd Unlock with the password saved
+```
+Unlock using the saved password. If everything is fine device will be unlocked.
+
+```
+-sp, --save_passwd Save password
+```
+When unlock password, it will save user password to passwd.bin, so you can use "-us" for next time to auto unlock.
+
+```
+-m, --mount Enable mount point for an unlocked device
+```
+After unlock, your operating system still thinks that your device is a strange thing attached to his usb port and he don't know how to manage. You need this option to force the O.S. to rescan the device and handle it as a normal external usb harddrive.
+
+```
+-c, --change_passwd Change (or disable) password
+```
+This option let you to encrypt your device, remove password protection and change your current password.
+If device is "without lock" and you want it to be password protect leave the "OLD password" field empty and choose insert the new password.
+If the device is password protected and you want to be as a normal unencrypted device, inser the old password and leave the "NEW password" field empty.
+If you only want to change password do it as usual.
+
+```
+-e, --erase Secure erase device
+```
+"Erase" the device. This will remove the internal key associated to you password and all your data will be unaccessible. You will also lose your partition table and you will need to create a new one (you can use fdisk and mkfs).
+
+```
+-d DEVICE, --device DEVICE Force device path (ex. /dev/sdb). Usually you don't need this option.
+```
+The script will try to auto detect the current device path of your WD Passport device.
+If something is wrong or you want to manually specify the device path yourself you can use this option.
+
+Disclaimer
+I based my research on Dan Lukes (FreeBSD version) and KenMacD (very simple unlocker) works.
+I'm in no way sponsored by or connected with Western Digital.
+Use any of the information contained in this repository at your own risk. I accept no
+responsibility.
diff --git a/wdpass/__init__.py b/wdpass/__init__.py
index c60df75..17bfdb6 100644
--- a/wdpass/__init__.py
+++ b/wdpass/__init__.py
@@ -10,8 +10,9 @@
import subprocess
try:
- import py_sg
-except ImportError:
+ import py3_sg as py_sg
+except ImportError as e:
+ print(e)
print("You need to install the 'py_sg' module.")
sys.exit(1)
diff --git a/wdpass/py3_sg.so b/wdpass/py3_sg.so
new file mode 100755
index 0000000000000000000000000000000000000000..e82e156b9e369e55473b5056f6613ac12e72161b
GIT binary patch
literal 46584
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
D4>0%d
literal 0
HcmV?d00001
diff --git a/wdpass/version.py b/wdpass/version.py
index 99c4176..210ebb3 100644
--- a/wdpass/version.py
+++ b/wdpass/version.py
@@ -1 +1 @@
-__version__ = '0.0.1'
\ No newline at end of file
+__version__ = '0.0.2'
\ No newline at end of file