[Fire HD 8 and HD 10 General] rlowens:
I just tried the OP's offline root instructions 3 times on my Fire HD 8 running 5.6.0.0 and it failed all 3 times. Here's the error code if you are curious:

[HIDE]---try 1---

C:\android\platform-tools>adb shell
shell@douglas:/ $ ls -l /data/local/tmp
-rwxr-xr-x shell shell 1126000 2017-11-13 17:41 busybox
shell@douglas:/ $ cp /sdcard/c/* /data/local/tmp
shell@douglas:/ $ cd /data/local/tmp
shell@douglas:/data/local/tmp $ ls -l
-rw-rw---- shell shell 109400 2018-01-19 21:15 Matrix
-rw-rw---- shell shell 6488979 2018-01-19 21:15 Superuser.apk
-rwxr-xr-x shell shell 1126000 2017-11-13 17:41 busybox
-rw-rw---- shell shell 67 2018-01-19 21:15 ddexe
-rw-rw---- shell shell 1756 2018-01-19 21:15 debuggerd
-rw-rw---- shell shell 202824 2018-01-19 21:15 fileWork
-rw-rw---- shell shell 629 2018-01-19 21:15 install-recovery.sh
-rw-rw---- shell shell 13592 2018-01-19 21:15 pidof
-rw-rw---- shell shell 1912 2018-01-19 21:15 start_wssud.sh
-rw-rw---- shell shell 75348 2018-01-19 21:15 su
-rw-rw---- shell shell 108480 2018-01-19 21:15 su_arm64
-rw-rw---- shell shell 101852 2018-01-19 21:15 supolicy
-rw-rw---- shell shell 177316 2018-01-19 21:15 toolbox
-rw-rw---- shell shell 38830 2018-01-19 21:15 wsroot.sh
shell@douglas:/data/local/tmp $ chmod 755 *
shell@douglas:/data/local/tmp $ ls -l
-rwxr-xr-x shell shell 109400 2018-01-19 21:15 Matrix
-rwxr-xr-x shell shell 6488979 2018-01-19 21:15 Superuser.apk
-rwxr-xr-x shell shell 1126000 2017-11-13 17:41 busybox
-rwxr-xr-x shell shell 67 2018-01-19 21:15 ddexe
-rwxr-xr-x shell shell 1756 2018-01-19 21:15 debuggerd
-rwxr-xr-x shell shell 202824 2018-01-19 21:15 fileWork
-rwxr-xr-x shell shell 629 2018-01-19 21:15 install-recovery.sh
-rwxr-xr-x shell shell 13592 2018-01-19 21:15 pidof
-rwxr-xr-x shell shell 1912 2018-01-19 21:15 start_wssud.sh
-rwxr-xr-x shell shell 75348 2018-01-19 21:15 su
-rwxr-xr-x shell shell 108480 2018-01-19 21:15 su_arm64
-rwxr-xr-x shell shell 101852 2018-01-19 21:15 supolicy
-rwxr-xr-x shell shell 177316 2018-01-19 21:15 toolbox
-rwxr-xr-x shell shell 38830 2018-01-19 21:15 wsroot.sh
shell@douglas:/data/local/tmp $ ./Matrix /data/local/tmp 2
<WSRoot><Command>0</Command></WSRoot>
<WSRoot><InitResource>0</InitResource></WSRoot>
Decrypt Success: /data/local/tmp/fileWork
Output File Name: /data/local/tmp/fileWork.
<WSRoot><Decrypt>0</Decrypt></WSRoot>
extracting: /data/local/tmp/Bridge_wsroot.sh
extracting: /data/local/tmp/krdirtyCow32
extracting: /data/local/tmp/krdirtyCow64
extracting: /data/local/tmp/libsupol.so
extracting: /data/local/tmp/my.sh
extracting: /data/local/tmp/mysupolicy
extracting: /data/local/tmp/patch_script.sh
extracting: /data/local/tmp/root3
<WSRoot><Decompression>0</Decompression></WSRoot>
execute string: /data/local/tmp/root3 /data/local/tmp/ 2
WARNING: linker: /data/local/tmp/root3: unused DT entry: type 0x6ffffffe arg 0x600
WARNING: linker: /data/local/tmp/root3: unused DT entry: type 0x6fffffff arg 0x1
ro.build.version.sdk :22
ro.product.cpu.abi :arm64-v8a
is x64
execute string: /data/local/tmp/krdirtyCow64 /data/local/tmp/ 2
WARNING: linker: /data/local/tmp/krdirtyCow64: unused DT entry: type 0x6ffffffe arg 0xd30
WARNING: linker: /data/local/tmp/krdirtyCow64: unused DT entry: type 0x6fffffff arg 0x1
path : /data/local/tmp/
path : /data/local/tmp
[*] path_script:/data/local/tmp/patch_script.sh /data/local/tmp
rm: /data/local/tmp/sepolicy: No such file or directory
rm: /data/local/tmp/load: No such file or directory
supolicy v2.76 (ndk:armeabi) - Copyright (C) 2014-2016 - Chainfire

Patching policy [/data/local/tmp/sepolicy] --> [/data/local/tmp/load] ...
-permissive:zygote=ok
-permissive:kernel=ok
-permissive:init=ok
-permissive:su=ok
-permissive:init_shell=ok
-permissive:shell=ok
-permissive:servicemanager=ok
- Success

find_opcode offset:2d0 opcode:aaffbbee
find ok star:7f9a42c008 end:7f9a42c2d8 size:2d0
sh : /data/local/tmp/my.sh /data/local/tmp 2 fwrite is count 209221 /data/local/tmp/load1
fwrite is count 54048 /data/local/tmp/load2
find_opcode offset:2b4 opcode:eaeaeaea
find_opcode offset:2b8 opcode:ebebebeb
find_opcode offset:22d opcode:abababab
load = 40465 load1 = 33145 load2 = d320
find_opcode offset:2b0 opcode:efefefef
find_opcode offset:24d opcode:cdcdcdcd
find_opcode offset:2bc opcode:acacacac
init_shellcode
loadsize:263269
loadpath:/data/local/tmp/load
shpath:/data/local/tmp/my.sh /data/local/tmp 2
shpath:2bc

open /proc
PID:188
find logd pid : bc
_inject_start_s:0x7f9a42c008
Copying /sepolicy to /data/local/tmp/cp_sepolicy
cow_exploit_mv_file_init: Overriding /sepolicy from /data/local/tmp/load1
size: 209221

[*] mmap 0x7f9a225000;
[*] exploit (patch)
[*] currently 0x7f9a225000=8f97cff8c
sched_setaffinity: Invalid argument[*] madvise = 0x7f9a225000 209221
checking the patch ... exploit
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
exit fork(), loop time more then 30s

<WSRoot><Exploit>0x00000332</Exploit></WSRoot>
check done
sched_setaffinity: Invalid argument<WSRoot><Exploit>0x00000382</Exploit></WSRoot>
FAIL : load1 --> /sepolicy
<WSRoot><Exploit>0x00000341</Exploit></WSRoot>
<WSRoot><Exploit>0x00000881</Exploit></WSRoot>
<WSRoot><Done>0x00000172</Done></WSRoot>
1|shell@douglas:/data/local/tmp $ ls
Bridge_wsroot.sh
Matrix
Superuser.apk
busybox
cp_sepolicy
ddexe
debuggerd
fileWork
fileWork.
install-recovery.sh
krdirtyCow32
krdirtyCow64
libsupol.so
load
load1
load2
my.sh
mysupolicy
patch_script.sh
pidof
root3
sepolicy
start_wssud.sh
su
su_arm64
supolicy
toolbox
wsroot.sh
shell@douglas:/data/local/tmp $ rm *
shell@douglas:/data/local/tmp $ ls
shell@douglas:/data/local/tmp $ exit

C:\android\platform-tools>adb reboot

---try 2---
C:\android\platform-tools>adb shell
shell@douglas:/ $ cp /sdcard/c/* /data/local/tmp
shell@douglas:/ $ cd /data/local/tmp
shell@douglas:/data/local/tmp $ ls -l
-rw-rw---- shell shell 109400 2018-01-19 21:37 Matrix
-rw-rw---- shell shell 6488979 2018-01-19 21:37 Superuser.apk
-rw-rw---- shell shell 67 2018-01-19 21:37 ddexe
-rw-rw---- shell shell 1756 2018-01-19 21:37 debuggerd
-rw-rw---- shell shell 202824 2018-01-19 21:37 fileWork
-rw-rw---- shell shell 629 2018-01-19 21:37 install-recovery.sh
-rw-rw---- shell shell 13592 2018-01-19 21:37 pidof
-rw-rw---- shell shell 1912 2018-01-19 21:37 start_wssud.sh
-rw-rw---- shell shell 75348 2018-01-19 21:37 su
-rw-rw---- shell shell 108480 2018-01-19 21:37 su_arm64
-rw-rw---- shell shell 101852 2018-01-19 21:37 supolicy
-rw-rw---- shell shell 177316 2018-01-19 21:37 toolbox
-rw-rw---- shell shell 38830 2018-01-19 21:37 wsroot.sh
shell@douglas:/data/local/tmp $ chmod 755 *
shell@douglas:/data/local/tmp $ ./Matrix /data/local/tmp 2
<WSRoot><Command>0</Command></WSRoot>
<WSRoot><InitResource>0</InitResource></WSRoot>
Decrypt Success: /data/local/tmp/fileWork
Output File Name: /data/local/tmp/fileWork.
<WSRoot><Decrypt>0</Decrypt></WSRoot>
extracting: /data/local/tmp/Bridge_wsroot.sh
extracting: /data/local/tmp/krdirtyCow32
extracting: /data/local/tmp/krdirtyCow64
extracting: /data/local/tmp/libsupol.so
extracting: /data/local/tmp/my.sh
extracting: /data/local/tmp/mysupolicy
extracting: /data/local/tmp/patch_script.sh
extracting: /data/local/tmp/root3
<WSRoot><Decompression>0</Decompression></WSRoot>
execute string: /data/local/tmp/root3 /data/local/tmp/ 2
WARNING: linker: /data/local/tmp/root3: unused DT entry: type 0x6ffffffe arg 0x600
WARNING: linker: /data/local/tmp/root3: unused DT entry: type 0x6fffffff arg 0x1
ro.build.version.sdk :22
ro.product.cpu.abi :arm64-v8a
is x64
execute string: /data/local/tmp/krdirtyCow64 /data/local/tmp/ 2
WARNING: linker: /data/local/tmp/krdirtyCow64: unused DT entry: type 0x6ffffffe arg 0xd30
WARNING: linker: /data/local/tmp/krdirtyCow64: unused DT entry: type 0x6fffffff arg 0x1
path : /data/local/tmp/
path : /data/local/tmp
[*] path_script:/data/local/tmp/patch_script.sh /data/local/tmp
rm: /data/local/tmp/sepolicy: No such file or directory
rm: /data/local/tmp/load: No such file or directory
supolicy v2.76 (ndk:armeabi) - Copyright (C) 2014-2016 - Chainfire

Patching policy [/data/local/tmp/sepolicy] --> [/data/local/tmp/load] ...
-permissive:zygote=ok
-permissive:kernel=ok
-permissive:init=ok
-permissive:su=ok
-permissive:init_shell=ok
-permissive:shell=ok
-permissive:servicemanager=ok
- Success

find_opcode offset:2d0 opcode:aaffbbee
find ok star:7f7acc6008 end:7f7acc62d8 size:2d0
sh : /data/local/tmp/my.sh /data/local/tmp 2 fwrite is count 209221 /data/local/tmp/load1
fwrite is count 54048 /data/local/tmp/load2
find_opcode offset:2b4 opcode:eaeaeaea
find_opcode offset:2b8 opcode:ebebebeb
find_opcode offset:22d opcode:abababab
load = 40465 load1 = 33145 load2 = d320
find_opcode offset:2b0 opcode:efefefef
find_opcode offset:24d opcode:cdcdcdcd
find_opcode offset:2bc opcode:acacacac
init_shellcode
loadsize:263269
loadpath:/data/local/tmp/load
shpath:/data/local/tmp/my.sh /data/local/tmp 2
shpath:2bc

open /proc
PID:188
find logd pid : bc
_inject_start_s:0x7f7acc6008
Copying /sepolicy to /data/local/tmp/cp_sepolicy
cow_exploit_mv_file_init: Overriding /sepolicy from /data/local/tmp/load1
size: 209221

[*] mmap 0x7f7aabf000;
[*] exploit (patch)
[*] currently 0x7f7aabf000=8f97cff8c
sched_setaffinity: Invalid argument[*] madvise = 0x7f7aabf000 209221
checking the patch ... exploit
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
exit fork(), loop time more then 30s

<WSRoot><Exploit>0x00000332</Exploit></WSRoot>
check done
sched_setaffinity: Invalid argument<WSRoot><Exploit>0x00000382</Exploit></WSRoot>
FAIL : load1 --> /sepolicy
<WSRoot><Exploit>0x00000341</Exploit></WSRoot>

--- try 3 ---
C:\android\platform-tools>adb shell
shell@douglas:/ $ cp /sdcard/c/* /data/local/tmp
shell@douglas:/ $ cd /data/local/tmp
shell@douglas:/data/local/tmp $ chmod 755 *
shell@douglas:/data/local/tmp $ ./Matrix /data/local/tmp 2
<WSRoot><Command>0</Command></WSRoot>
<WSRoot><InitResource>0</InitResource></WSRoot>
Decrypt Success: /data/local/tmp/fileWork
Output File Name: /data/local/tmp/fileWork.
<WSRoot><Decrypt>0</Decrypt></WSRoot>
extracting: /data/local/tmp/Bridge_wsroot.sh
extracting: /data/local/tmp/krdirtyCow32
extracting: /data/local/tmp/krdirtyCow64
extracting: /data/local/tmp/libsupol.so
extracting: /data/local/tmp/my.sh
extracting: /data/local/tmp/mysupolicy
extracting: /data/local/tmp/patch_script.sh
extracting: /data/local/tmp/root3
<WSRoot><Decompression>0</Decompression></WSRoot>
execute string: /data/local/tmp/root3 /data/local/tmp/ 2
WARNING: linker: /data/local/tmp/root3: unused DT entry: type 0x6ffffffe arg 0x600
WARNING: linker: /data/local/tmp/root3: unused DT entry: type 0x6fffffff arg 0x1
ro.build.version.sdk :22
ro.product.cpu.abi :arm64-v8a
is x64
execute string: /data/local/tmp/krdirtyCow64 /data/local/tmp/ 2
WARNING: linker: /data/local/tmp/krdirtyCow64: unused DT entry: type 0x6ffffffe arg 0xd30
WARNING: linker: /data/local/tmp/krdirtyCow64: unused DT entry: type 0x6fffffff arg 0x1
path : /data/local/tmp/
path : /data/local/tmp
[*] path_script:/data/local/tmp/patch_script.sh /data/local/tmp
rm: /data/local/tmp/sepolicy: No such file or directory
rm: /data/local/tmp/load: No such file or directory
supolicy v2.76 (ndk:armeabi) - Copyright (C) 2014-2016 - Chainfire

Patching policy [/data/local/tmp/sepolicy] --> [/data/local/tmp/load] ...
-permissive:zygote=ok
-permissive:kernel=ok
-permissive:init=ok
-permissive:su=ok
-permissive:init_shell=ok
-permissive:shell=ok
-permissive:servicemanager=ok
- Success

find_opcode offset:2d0 opcode:aaffbbee
find ok star:7fa3584008 end:7fa35842d8 size:2d0
sh : /data/local/tmp/my.sh /data/local/tmp 2 fwrite is count 209221 /data/local/tmp/load1
fwrite is count 54048 /data/local/tmp/load2
find_opcode offset:2b4 opcode:eaeaeaea
find_opcode offset:2b8 opcode:ebebebeb
find_opcode offset:22d opcode:abababab
load = 40465 load1 = 33145 load2 = d320
find_opcode offset:2b0 opcode:efefefef
find_opcode offset:24d opcode:cdcdcdcd
find_opcode offset:2bc opcode:acacacac
init_shellcode
loadsize:263269
loadpath:/data/local/tmp/load
shpath:/data/local/tmp/my.sh /data/local/tmp 2
shpath:2bc

open /proc
PID:188
find logd pid : bc
_inject_start_s:0x7fa3584008
Copying /sepolicy to /data/local/tmp/cp_sepolicy
cow_exploit_mv_file_init: Overriding /sepolicy from /data/local/tmp/load1
size: 209221

[*] mmap 0x7fa337d000;
[*] exploit (patch)
[*] currently 0x7fa337d000=8f97cff8c
sched_setaffinity: Invalid argument[*] madvise = 0x7fa337d000 209221
checking the patch ... exploit
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
sleep 1s
exit fork(), loop time more then 30s

<WSRoot><Exploit>0x00000332</Exploit></WSRoot>
check done
sched_setaffinity: Invalid argument<WSRoot><Exploit>0x00000382</Exploit></WSRoot>
FAIL : load1 --> /sepolicy
<WSRoot><Exploit>0x00000341</Exploit></WSRoot>[/HIDE]