{
"info": {
"author": "Toby Fleming",
"author_email": "tobywf@users.noreply.github.com",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
"Natural Language :: English",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3 :: Only",
"Topic :: Software Development :: Libraries"
],
"description": "PyAmiibo\n========\n\nPyAmiibo helps to read, modify and write dump files of `Nintendo Amiibo figures `_. PyAmiibo is capable of parsing most NTAG properties, as well as some Amiibo data.\n\n**IMPORTANT**: To decrypt and encrypt Amiibo data, you will need two master keys, commonly called ``unfixed-info.bin`` and ``locked-secret.bin``. They are not provided.\n\nYou can also view the `full PyAmiibo docs on ReadTheDocs `_.\n\n------\n\nIt is based on `Marcos Del Sol Vives' `_ reverse engineering efforts of the Amiibo cryptography (`amiitool `_, `reddit `_).\n\nSo why does PyAmiibo exist? ``amiitool`` is a C binary, difficult to use in other tools (especially web-based tools). It also re-arranges the sections of the dump file when decrypting, and doesn't seem to support editing dumps (e.g. changing the UID). Even though PyAmiibo doesn't use any of ``amiitool``'s code and contains a lot of my own research into the NTAG format and Amiibo data, it would not have been possible without Marcos' efforts.\n\nUsage\n=====\n\n**PyAmiibo is Python 3 only**, if you get an error installing it this is the most likely reason.\n\n.. code-block:: bash\n\n pip install pyamiibo\n\nPyAmiibo is mainly a library, but also contains some simple command-line tools:\n\n.. code-block:: console\n\n $ # convert hexadecimal data to binary, note the quotes!\n $ amiibo hex2bin \"F1 A3 65 ..\" unfixed-info.bin\n $ # get help for a subcommand\n $ amiibo uid --help\n $ # update the UID on an existing dump\n $ amiibo uid old.bin \"04 FF FF FF FF FF FF\" new.bin\n\nThe master keys must be in the current directory for some commands to work!\n\nIt's also very easy to use in a script or interpreter session:\n\n.. code-block:: python3\n\n from amiibo import AmiiboDump, AmiiboMasterKey\n with open('unfixed-info.bin', 'rb') as fp_d, \\\n open('locked-secret.bin', 'rb') as fp_t:\n master_keys = AmiiboMasterKey.from_separate_bin(\n fp_d.read(), fp_t.read())\n\n with open('dump.bin', 'rb') as fp:\n dump = AmiiboDump(master_keys, fp.read())\n\n print('old', dump.uid_hex)\n dump.unlock()\n dump.uid_hex = '04 FF FF FF FF FF FF'\n dump.lock()\n dump.unset_lock_bytes()\n print('new', dump.uid_hex)\n\n with open('new.bin', 'wb') as fp:\n fp.write(dump.data)\n\nDevelopment\n===========\n\nUse `pipenv `_ to install the development dependencies, and make sure ``flake8`` and ``pylint`` pass before a PR is submitted.\n\n.. code-block:: bash\n\n pipenv install --three --dev\n pipenv shell\n isort -y\n flake8 amiibo/\n pylint amiibo/\n sphinx-build -b html docs/ docs/_build\n\n\n",
"description_content_type": null,
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/tobywf/pyamiibo",
"keywords": "NXP NTAG NTAG213 NTAG215 NTAG216 Amiibo",
"license": "GPLv3",
"maintainer": "",
"maintainer_email": "",
"name": "pyamiibo",
"package_url": "https://pypi.org/project/pyamiibo/",
"platform": "",
"project_url": "https://pypi.org/project/pyamiibo/",
"project_urls": {
"Homepage": "https://github.com/tobywf/pyamiibo"
},
"release_url": "https://pypi.org/project/pyamiibo/0.2/",
"requires_dist": [
"cryptography"
],
"requires_python": "",
"summary": "PyAmiibo is a library for manipulating Amiibo dumps.",
"version": "0.2"
},
"last_serial": 3428253,
"releases": {
"0.1": [
{
"comment_text": "",
"digests": {
"md5": "b32f31d3966fbc9e4d57dd9ff8d9d95b",
"sha256": "bba3c886756fd30c0a72918e10a643516646a9e2c629272ce73f2b4705af73c7"
},
"downloads": -1,
"filename": "pyamiibo-0.1-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "b32f31d3966fbc9e4d57dd9ff8d9d95b",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 25290,
"upload_time": "2017-12-18T22:02:46",
"url": "https://files.pythonhosted.org/packages/73/69/005d5927d581a88de9058fefe47136e8ee3cd7fa4e26ca24e2dac9c2037e/pyamiibo-0.1-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "cc9c8f6a246b3282cead1e991c45d899",
"sha256": "bf3bee5a46a3ff01200271390dd88d8cb2f527b422050719d534f1f72781f4dc"
},
"downloads": -1,
"filename": "pyamiibo-0.1.tar.gz",
"has_sig": false,
"md5_digest": "cc9c8f6a246b3282cead1e991c45d899",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 22113,
"upload_time": "2017-12-18T22:02:48",
"url": "https://files.pythonhosted.org/packages/6c/e1/acd2a20ff67df31dc8c46a17dbe51bff431147ac7eaa05ad04668d80c3de/pyamiibo-0.1.tar.gz"
}
],
"0.2": [
{
"comment_text": "",
"digests": {
"md5": "0ffa7cab0a4c18820e47246338271446",
"sha256": "f5482eaeb653c6c7677f64e2b44f3d9a0a4b4f9d36dd0fb4b8b02839716ebf03"
},
"downloads": -1,
"filename": "pyamiibo-0.2-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "0ffa7cab0a4c18820e47246338271446",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 27525,
"upload_time": "2017-12-19T13:15:03",
"url": "https://files.pythonhosted.org/packages/e1/71/bfe582bf46b7bec226309d11f8d7c0e274ab54892e860f2780f7676dd326/pyamiibo-0.2-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "a8914c01a73dff081b46f3522da6d329",
"sha256": "63b0c26dd4a6805b3e8655797be93f195d13fe611548eb21111fec4890345542"
},
"downloads": -1,
"filename": "pyamiibo-0.2.tar.gz",
"has_sig": false,
"md5_digest": "a8914c01a73dff081b46f3522da6d329",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 23564,
"upload_time": "2017-12-19T13:15:05",
"url": "https://files.pythonhosted.org/packages/98/e1/8c607119025439816e0b778db8132da850ac6470b9dbb6ac9258d397c7d8/pyamiibo-0.2.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "0ffa7cab0a4c18820e47246338271446",
"sha256": "f5482eaeb653c6c7677f64e2b44f3d9a0a4b4f9d36dd0fb4b8b02839716ebf03"
},
"downloads": -1,
"filename": "pyamiibo-0.2-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "0ffa7cab0a4c18820e47246338271446",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 27525,
"upload_time": "2017-12-19T13:15:03",
"url": "https://files.pythonhosted.org/packages/e1/71/bfe582bf46b7bec226309d11f8d7c0e274ab54892e860f2780f7676dd326/pyamiibo-0.2-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "a8914c01a73dff081b46f3522da6d329",
"sha256": "63b0c26dd4a6805b3e8655797be93f195d13fe611548eb21111fec4890345542"
},
"downloads": -1,
"filename": "pyamiibo-0.2.tar.gz",
"has_sig": false,
"md5_digest": "a8914c01a73dff081b46f3522da6d329",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 23564,
"upload_time": "2017-12-19T13:15:05",
"url": "https://files.pythonhosted.org/packages/98/e1/8c607119025439816e0b778db8132da850ac6470b9dbb6ac9258d397c7d8/pyamiibo-0.2.tar.gz"
}
]
}