I was having trouble modifying default applications for some mimetype (inode/directory and application/x-bittorrent) without success, and I realized that's because enlightenment_open still uses the deprecated $XDG_DATA_HOME/applications/defaults.list to determine default applications.
I am using Arch Linux x86_64, and have several WM and DE installed (Enlightenment 0.22.1, GNOME 3, Xfce 4). efl 1.20.7.
When using GNOME or Xfce, opening downloaded items from Firefox or opening folders from transmission-qt will open my default applications (like thunar and transmission), but in Enlightenment, opening folder from firefox/transmission-qt/xdg-open results in opening visual-studio-code, and gvim for opening torrents.
After some debugging I found out that those applications all use xdg-open to handle opening urls, who then calls enlightenment_open.
I tried editing default applications using xfce4-mime-settings but enlightenment_open didn't change its behavior; Enlightenment Default Application Settings doesn't have an entry for inode/directory, but does for application/x-bittorrent, although set to GVim.
Some straceing of enlightenment_open leads me to ~/.local/share/applications/defaults.list which I googled that is deprecated and should be merged to $XDG_CONFIG_HOME/mimeapps.list (usually ~/.config/mimeapps.list). The difference between these files is that defaults.list only has one [Default Applications] section, while mimeapps.list has 3 sections: [Added Associations], [Removed Associations] and [Default Applications]. Their [Default Applications] have exactly the same purpose and should be merged to mimeapps.list if possible.
I also checked the source file for enlightenment_open, in src/bin/e_open.c:116 function handler_find, the logic is hard coded to find $XDG_DATA_HOME/applications/defaults.list. I think change the path is sufficient.
Currently I created a symlink defaults.list -> ~/.config/mimeapps.list and it works like a charm.