[Android Software Development] Quinny899:
I've almost finished porting the new version, and as far as I can tell it works (almost) perfectly on my Nexus 5X. I've had to tweak some more than previous versions:

DeviceUtil.smali (patches to show as a Galaxy S8 [because the S7 is so 2016] all the time) [Change the first const v0, true to const v0, false to switch from 4K to 2K]

# direct methods
.method static constructor <clinit>()V
.locals 4

.prologue
const/4 v2, 0x1

const/4 v1, 0x0

.line 14
sget-object v0, Lcom/samsung/android/samsunggear360manager/util/Trace$Tag;->COMMON:Lcom/samsung/android/samsunggear360manager/util/Trace$Tag;

sput-object v0, Lcom/samsung/android/samsunggear360manager/util/DeviceUtil;->TAG:Lcom/samsung/android/samsunggear360manager/util/Trace$Tag;

.line 76
const v0, false

if-nez v0, :cond_0

const v0, false

if-nez v0, :cond_0

const v0, true

if-nez v0, :cond_0

move v0, v1

:goto_0
sput-boolean v0, Lcom/samsung/android/samsunggear360manager/util/DeviceUtil;->valueSupporting4kConversion:Z

.line 77
sget-object v0, Landroid/os/Build;->MANUFACTURER:Ljava/lang/String;

invoke-virtual {v0}, Ljava/lang/String;->toLowerCase()Ljava/lang/String;

move-result-object v0

const-string/jumbo v3, "samsung"

invoke-virtual {v0, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

move-result v0

const v0, true

if-eqz v0, :cond_1

.line 78
sget-object v0, Landroid/os/Build;->HARDWARE:Ljava/lang/String;

invoke-virtual {v0}, Ljava/lang/String;->toLowerCase()Ljava/lang/String;

move-result-object v0

const-string/jumbo v3, "exynos"

invoke-virtual {v0, v3}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z

move-result v0

const v0, true

if-eqz v0, :cond_1

.line 77
:goto_1
sput-boolean v2, Lcom/samsung/android/samsunggear360manager/util/DeviceUtil;->valueSamsungExynosDevice:Z

.line 78
return-void

:cond_0
move v0, v2

.line 76
goto :goto_0

:cond_1
move v2, v1

.line 77
goto :goto_1
.end method

FloatingFeatureWrapper.smali (Disable the FloatingFeature to prevent crashes):

.method public static getString(Ljava/lang/String;)Ljava/lang/String;
.locals 1
.param p0, "tag" # Ljava/lang/String;

.prologue
.line 22
const-string v0, ""

return-object v0
.end method

AppGalleryActivity$63.smali (Remove two columns from a database's check because the app crashes otherwise [not sure why but it seems to work fine without them])

# virtual methods
.method public getChildQueryInfo(Landroid/database/Cursor;)Lcom/samsung/android/samsunggear360manager/gallery/GalleryFragment$QueryInfo;
.locals 12
.param p1, "groupCursor" # Landroid/database/Cursor;

.prologue
const/4 v11, 0x3

const/4 v10, 0x2

const/4 v9, 0x0

const/4 v8, 0x1

.line 11567
.line 11568
const-string/jumbo v0, "datetaken_string"

invoke-interface {p1, v0}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I

move-result v0

.line 11567
invoke-interface {p1, v0}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;

move-result-object v6

.line 11570
.local v6, "dateTakenString":Ljava/lang/String;
const-string/jumbo v0, "external"

invoke-static {v0}, Landroid/provider/MediaStore$Files;->getContentUri(Ljava/lang/String;)Landroid/net/Uri;

move-result-object v1

.line 11572
.local v1, "uri":Landroid/net/Uri;
const/16 v0, 0xf

new-array v2, v0, [Ljava/lang/String;

.line 11573
const-string/jumbo v0, "_id"

aput-object v0, v2, v9

.line 11574
const-string/jumbo v0, "title"

aput-object v0, v2, v8

.line 11575
const-string/jumbo v0, "_data"

aput-object v0, v2, v10

.line 11576
const-string/jumbo v0, "datetaken"

aput-object v0, v2, v11

const/4 v0, 0x4

.line 11577
const-string/jumbo v3, "date((datetaken / 1000), \'unixepoch\', \'localtime\') as datetaken_string"

aput-object v3, v2, v0

const/4 v0, 0x5

.line 11580
const-string/jumbo v3, "media_type"

aput-object v3, v2, v0

const/4 v0, 0x6

.line 11581
const-string/jumbo v3, "orientation"

aput-object v3, v2, v0

const/4 v0, 0x7

.line 11582
const-string/jumbo v3, "duration"

aput-object v3, v2, v0

const/16 v0, 0x8

.line 11583
const-string/jumbo v3, "resolution"

aput-object v3, v2, v0

const/16 v0, 0x9

.line 11584
const-string/jumbo v3, "width"

aput-object v3, v2, v0

const/16 v0, 0xa

.line 11585
const-string/jumbo v3, "height"

aput-object v3, v2, v0

const/16 v0, 0xb

.line 11586

.line 11587

.line 11588
const-string/jumbo v3, "latitude"

aput-object v3, v2, v0

const/16 v0, 0xe

.line 11589
const-string/jumbo v3, "longitude"

aput-object v3, v2, v0

.line 11592
.local v2, "projection":[Ljava/lang/String;
new-instance v7, Ljava/lang/StringBuilder;

invoke-static {}, Lcom/samsung/android/samsunggear360manager/util/Utils;->getLocalMediaQuerySelection()Ljava/lang/String;

move-result-object v0

invoke-direct {v7, v0}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

.line 11593
.local v7, "selection":Ljava/lang/StringBuilder;
iget-object v0, p0, Lcom/samsung/android/samsunggear360manager/app/pullservice/service/mobilelink/AppGalleryActivity$63;->this$0:Lcom/samsung/android/samsunggear360manager/app/pullservice/service/mobilelink/AppGalleryActivity;

const-string/jumbo v3, "GalleryFilterAs"

invoke-static {v0, v3, v8}, Lcom/samsung/android/samsunggear360manager/app/cm/common/CMSharedPreferenceUtil;->getInteger(Landroid/content/Context;Ljava/lang/String;I)I

move-result v0

if-ne v0, v8, :cond_0

.line 11594
const-string/jumbo v0, " AND datetaken_string=?"

invoke-virtual {v7, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

.line 11607
:cond_0
iget-object v0, p0, Lcom/samsung/android/samsunggear360manager/app/pullservice/service/mobilelink/AppGalleryActivity$63;->this$0:Lcom/samsung/android/samsunggear360manager/app/pullservice/service/mobilelink/AppGalleryActivity;

const-string/jumbo v3, "GalleryFilterAs"

invoke-static {v0, v3, v8}, Lcom/samsung/android/samsunggear360manager/app/cm/common/CMSharedPreferenceUtil;->getInteger(Landroid/content/Context;Ljava/lang/String;I)I

move-result v0

if-ne v0, v8, :cond_1

.line 11608
const-string/jumbo v5, "datetaken DESC"

.line 11609
.local v5, "orderBy":Ljava/lang/String;
new-array v4, v11, [Ljava/lang/String;

const-string/jumbo v0, "%DCIM/Gear 360/%"

aput-object v0, v4, v9

const-string/jumbo v0, "%/RetailMedia/Video/360/%"

aput-object v0, v4, v8

aput-object v6, v4, v10

.line 11610
.local v4, "selectionArgs":[Ljava/lang/String;
new-instance v0, Lcom/samsung/android/samsunggear360manager/gallery/GalleryFragment$QueryInfo;

invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

move-result-object v3

invoke-direct/range {v0 .. v5}, Lcom/samsung/android/samsunggear360manager/gallery/GalleryFragment$QueryInfo;-><init>(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V

.line 11614
:goto_0
return-object v0

.line 11612
.end local v4 # "selectionArgs":[Ljava/lang/String;
.end local v5 # "orderBy":Ljava/lang/String;
:cond_1
const-string/jumbo v5, "_id DESC"

.line 11613
.restart local v5 # "orderBy":Ljava/lang/String;
new-array v4, v10, [Ljava/lang/String;

const-string/jumbo v0, "%DCIM/Gear 360/%"

aput-object v0, v4, v9

const-string/jumbo v0, "%/RetailMedia/Video/360/%"

aput-object v0, v4, v8

.line 11614
.restart local v4 # "selectionArgs":[Ljava/lang/String;
new-instance v0, Lcom/samsung/android/samsunggear360manager/gallery/GalleryFragment$QueryInfo;

invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

move-result-object v3

invoke-direct/range {v0 .. v5}, Lcom/samsung/android/samsunggear360manager/gallery/GalleryFragment$QueryInfo;-><init>(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V

goto :goto_0
.end method

StatusBarManagerWrapper.smali (Remove call to check notification drawer state as it's not in stock Android):

# virtual methods
.method public isPanelExpanded(Landroid/content/Context;)Z
.locals 1
.param p1, "context" # Landroid/content/Context;

.prologue
.line 28
const v0, false

return v0
.end method

SdlStatusBarManager.smali (Same as above):

# virtual methods
.method public isPanelExpanded(Landroid/content/Context;)Z
.locals 2
.param p1, "context" # Landroid/content/Context;

.prologue
.line 15
const v0, false
return v0
.end method

SdlSef.smali (Fixes crash due to missing class when viewing stitched file):

.method public static hasData(Ljava/io/File;I)Z
.locals 1
.param p0, "sefFile" # Ljava/io/File;
.param p1, "dataType" # I
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation

.prologue
const v0, false

return v0
.end method

.method public static hasData(Ljava/io/File;Ljava/lang/String;)Z
.locals 1
.param p0, "sefFile" # Ljava/io/File;
.param p1, "keyName" # Ljava/lang/String;
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation

.prologue
.line 76
const v0, false

return v0
.end method

.method public static addData(Ljava/io/File;Ljava/lang/String;Ljava/io/File;II)I
.locals 1
.param p0, "sefFile" # Ljava/io/File;
.param p1, "keyName" # Ljava/lang/String;
.param p2, "dataFile" # Ljava/io/File;
.param p3, "dataType" # I
.param p4, "option" # I
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation

.prologue
.line 32
const/4 v0, 0x0

return v0
.end method

.method public static addData(Ljava/io/File;Ljava/lang/String;[BII)I
.locals 1
.param p0, "sefFile" # Ljava/io/File;
.param p1, "keyName" # Ljava/lang/String;
.param p2, "data" # [B
.param p3, "dataType" # I
.param p4, "option" # I
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation

.prologue
.line 36
const/4 v0, 0x0

return v0
.end method

APK in a bit, in both 2K and 4K variants