Android - I want to split one MicroSD card into two parts: part adoptable storage, and part normal storage. How can I do this?

You don't need to root your device but the device i done this with is rooted

  1. You need to enabled Developer Options.
  2. Enable the USB Debugging option.
  3. Make sure your SD card is formatted as portable, then get the adb executable (see our adb tag-wiki for details).
  4. Connect your device to your PC and run the adb devices command. If your device is connected correctly you will see your device listed in the output.
  5. Run adb shell sm list-disks adoptable. This will show you the list of disks that can be used for what we want.
  6. For my device it showed me disk:179,128 so i ran adb shell sm partition disk:179,128 mixed 80 on my 32 GB AS card. It gave me 5 GB as adoptable storage and the rest for other uses. (This will format your SD card.)

poqdavid's answer is correct.

In addition though, you might get the error that your SD card on your device storage is corrupted. If so follow these steps.

After you have partitioned the disk and while your SD card is corruped enter In the terminal the following:

$> adb shell sm list-volumes all

Which will list your volumes, for example:

private mounted null
public:179,1 mounted B5B1-140C
private:179,3 unmountable null
emulated mounted null

Then enter the following replacing 179,3 with whichever disk numbers you are given:

$> adb shell sm format private:179,3

$> adb shell sm mount private:179,3

Now your SD card in device storage should be properly mounted and your portable storage will still be there.

This worked on my LG G5 and should work on the S7.