Jump to content

Accessing MicroSD card & USB OTG with Emby


natsu
Go to solution Solved by softworkz,

Recommended Posts

Hi,

 

Checked that the Emby can access the Internal storage of Android, is there way to access the microSD card & USB OTG content?

 

Because I rooted my Android Device while ago, but the Emby still can't access external storage.

 

I know the NAS feature is good, but need another server to use, thanks!

Link to comment
Share on other sites

Hi Luke,

 

A very strange MTK device named Infocus M808 (Infocus V5), which is contained Android 6.0, I've rooted by magisk, and the MicroSD partition is standard instead of adoptable storage set, many thanks!

Link to comment
Share on other sites

Ok, we haven't tested this device, but have you tried entering the path manually into the emby directory picker?

Link to comment
Share on other sites

Hi,

 

The Internal Storage can be accessed, but emby app can't access the external storage, and there's no related permission setting about the external storage, thanks!

Link to comment
Share on other sites

Hi Luke,

 

For example, in folder "/storage/emulated/0" is directed to internal storage, can be accessed by emby.

But for folder "/storage/798F-140E" which is directed to MicroSD storage, can't be accessed.

Due to the problem is occurred on rooted & non-root devices, what can I use the emby access the content on microSD storage? Thanks!

 

Logs about the error (Permission denied):

2020-01-10 00:33:30.214 Info HttpServer: HTTP Response 500 to 172.20.48.172. Time: 17ms. http://172.20.48.152:8096/emby/Environment/DirectoryContents?includeDirectories=true&path=%2Fstorage%2Femulated
2020-01-10 00:33:32.932 Info HttpServer: HTTP GET http://172.20.48.152:8096/emby/Environment/Drives. UserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0
2020-01-10 00:33:32.941 Info HttpServer: HTTP Response 200 to 172.20.48.172. Time: 9ms. http://172.20.48.152:8096/emby/Environment/Drives
2020-01-10 00:33:34.879 Info HttpServer: HTTP GET http://172.20.48.152:8096/emby/Environment/DirectoryContents?includeDirectories=true&path=%2Fstorage%2F798F-140E. UserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0
2020-01-10 00:33:34.901 Info HttpServer: HTTP GET http://172.20.48.152:8096/emby/Environment/ParentPath?path=%2Fstorage%2F798F-140E. UserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0
2020-01-10 00:33:34.908 Error HttpServer: Error processing request
	*** Error Report ***
	Version: 4.4.0.6
	Command line: /data/app/com.emby.embyserver-2/base.apk
	Operating system: Unix 3.18.19.0
	64-Bit OS: True
	64-Bit Process: True
	User Interactive: False
	Runtime: file:///mscorlib.dll
	System.Environment.Version: 4.0.50524.0
	Processor count: 8
	Program data path: /storage/emulated/0/Android/data/com.emby.embyserver/files
	Application directory: /data/user/0/com.emby.embyserver
	Mono: 6.6.0 (2019-08/e1ef774391d)
	Android Version: 6.0-REL - Base:  - SDK: M
	Build ID: MRA58K - Incremental: 00WW_6_27W Patch-Level: 2017-03-01
	Fingerprint: InFocus/M560_00WW/ZM1:6.0/MRA58K/00WW_6_27W:user/release-keys
	Model: InFocus M808 - InFocus/InFocus
	Hardware: ZM1/M560_00WW/mt6735/MT6753
	SupportedAbis: arm64-v8a, armeabi-v7a, armeabi
	System.UnauthorizedAccessException: System.UnauthorizedAccessException: Access to the path '/storage/798F-140E/.android_secure' is denied. ---> System.IO.IOException: Permission denied
	   --- End of inner exception stack trace ---
	  at System.IO.FileStatus.EnsureStatInitialized (System.ReadOnlySpan`1[T] path, System.Boolean continueOnError) [0x00039] in <b7bb5f3538424ec1927304809f832185>:0 
	  at System.IO.FileSystemInfo.Init (System.IO.FileStatus& fileStatus) [0x0001d] in <b7bb5f3538424ec1927304809f832185>:0 
	  at (wrapper remoting-invoke-with-check) System.IO.FileSystemInfo.Init(System.IO.FileStatus&)
	  at System.IO.FileSystemInfo.Create (System.String fullPath, System.String fileName, System.IO.FileStatus& fileStatus) [0x0001c] in <b7bb5f3538424ec1927304809f832185>:0 
	  at System.IO.Enumeration.FileSystemEntry.ToFileSystemInfo () [0x00011] in <b7bb5f3538424ec1927304809f832185>:0 
	  at System.IO.Enumeration.FileSystemEnumerableFactory+<>c.<DirectoryInfos>b__7_0 (System.IO.Enumeration.FileSystemEntry& entry) [0x00000] in <b7bb5f3538424ec1927304809f832185>:0 
	  at System.IO.Enumeration.FileSystemEnumerable`1+DelegateEnumerator[TResult].TransformEntry (System.IO.Enumeration.FileSystemEntry& entry) [0x00000] in <b7bb5f3538424ec1927304809f832185>:0 
	  at System.IO.Enumeration.FileSystemEnumerator`1[TResult].MoveNext () [0x001bc] in <b7bb5f3538424ec1927304809f832185>:0 
	  at System.Linq.Enumerable+SelectEnumerableIterator`2[TSource,TResult].MoveNext () [0x00029] in <6e195348a7884257a041c7191d5c4bd5>:0 
	  at System.Collections.Generic.LargeArrayBuilder`1[T].AddRange (System.Collections.Generic.IEnumerable`1[T] items) [0x0003d] in <6e195348a7884257a041c7191d5c4bd5>:0 
	  at System.Collections.Generic.SparseArrayBuilder`1[T].AddRange (System.Collections.Generic.IEnumerable`1[T] items) [0x00000] in <6e195348a7884257a041c7191d5c4bd5>:0 
	  at System.Collections.Generic.SparseArrayBuilder`1[T].ReserveOrAdd (System.Collections.Generic.IEnumerable`1[T] items) [0x00017] in <6e195348a7884257a041c7191d5c4bd5>:0 
	  at System.Linq.Enumerable+Concat2Iterator`1[TSource].ToArray () [0x00008] in <6e195348a7884257a041c7191d5c4bd5>:0 
	  at System.Linq.Buffer`1[TElement]..ctor (System.Collections.Generic.IEnumerable`1[T] source) [0x0000a] in <6e195348a7884257a041c7191d5c4bd5>:0 
	  at System.Linq.OrderedEnumerable`1+<GetEnumerator>d__3[TElement].MoveNext () [0x0001e] in <6e195348a7884257a041c7191d5c4bd5>:0 
	  at System.Linq.Enumerable+WhereSelectEnumerableIterator`2[TSource,TResult].ToList () [0x0003b] in <6e195348a7884257a041c7191d5c4bd5>:0 
	  at System.Linq.Enumerable.ToList[TSource] (System.Collections.Generic.IEnumerable`1[T] source) [0x0001f] in <6e195348a7884257a041c7191d5c4bd5>:0 
	  at MediaBrowser.Api.EnvironmentService.Get (MediaBrowser.Api.GetDirectoryContents request) [0x00074] in <f28ad1a682514afd90f07da8ebb51b31>:0 
	  at (wrapper dynamic-method) System.Object.lambda_method(System.Runtime.CompilerServices.Closure,object,object)
	  at Emby.Server.Implementations.Services.ServiceController.Execute (Emby.Server.Implementations.HttpServer.HttpListenerHost appHost, System.Object requestDto, MediaBrowser.Model.Services.IRequest req) [0x00073] in <35383502c6e541e18437747c81175cb9>:0 
	  at Emby.Server.Implementations.Services.ServiceHandler.ProcessRequestAsync (Emby.Server.Implementations.HttpServer.HttpListenerHost appHost, MediaBrowser.Model.Services.IRequest httpReq, MediaBrowser.Model.Services.IResponse httpRes, Emby.Server.Implementations.Services.RestPath restPath, System.String responseContentType, System.Threading.CancellationToken cancellationToken) [0x00168] in <35383502c6e541e18437747c81175cb9>:0 
	  at Emby.Server.Implementations.HttpServer.HttpListenerHost.RequestHandler (MediaBrowser.Model.Services.IRequest httpReq, System.ReadOnlyMemory`1[T] urlString, System.ReadOnlyMemory`1[T] localPath, System.Threading.CancellationToken cancellationToken) [0x00b48] in <35383502c6e541e18437747c81175cb9>:0 
	Source: mscorlib
	TargetSite: Void Throw()
	InnerException: System.IO.IOException: Permission denied
	Source: 
	TargetSite: 
Edited by ebr
Formatting
Link to comment
Share on other sites

  • Solution

You need to format the SD card as "External Storage".

 

A folder where you should definitely have write access (in case you want to use it as a cache or transcoding-temp folder) is this:

/storage/798F-140E/Android/data/com.emby.embyserver/files

If the file picker dialog in Emby doesn't allow you to browse to that folder, you can try to manually enter

/storage/798F-140E/Android/data/com.emby.embyserver/

into the 'Path' text box and then click on the button with the magnifier icon.

 

erger

Edited by softworkz
  • Like 1
Link to comment
Share on other sites

HI softworkz,

 

thanks, I've manually created the file path on external SD mode, and the manually path is worked.

 

Due to the insecure of Adopted storage which cause data loss, I think there's no one to use adopted storage for store larger files...

  • Like 1
Link to comment
Share on other sites

Handling external storage is a very weak point on Android. Handling has changed with each Android version and it can also vary depending on the device manufacturer.

 

I'm glad you got it working - thanks for letting us know!

Link to comment
Share on other sites

The situation is applied for Android 6.0 ~ 8.1 with Standard SD Storage set (no adopted storage), for Android 9 & 10, it mayn't useful...

 

For USB OTG is the same, but please check the Device ID again is changed when the OTG is formatted.

  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...