Mactype: Software for MacType.ini blacklist

Created on 29 Mar 2019  ·  25Comments  ·  Source: snowie2000/mactype

Hi,

I have expanded my exclusion list to include a considerable list of programs that everyone should have excluded, as they either:

  • Do not have any UI (typically background processes)
  • Render their fonts internally, and should (typically games)

I would like to suggest that my list be added to this app so that other users can benefit from a better blacklist, and experience less bugs when first installing.

List:

fontforge.exe
VirtualBox.exe
VBoxSVC.exe
vmnat.exe
vmnetdhcp.exe
vmware-authd.exe
vmware-vmx.exe
vmware-usbarbitrator64.exe
MsMpEng.exe
pia-service.exe
RuntimeBroker.exe
services.exe
spoolsv.exe
taskhostw.exe
igfxCUIService.exe
igfxEM.exe
igfxHK.exe
lass.exe
SearchIndexer.exe
OfficeClickToRun.exe
SearchProtocolHost.exe
SearchFilterHost.exe
stacsv64.exe
QHSafeTray.exe
QHWatchdog.exe
QHActiveDefense.exe
SynTPHelper.exe
SynTPEnh.exe
NVDisplay.Container.exe
node.exe
CCXProcess.exe
AdobeIPCBroker.exe
audiodg.exe

Also, you can find a huge list of games from the Discord Rich Presence JSON here

help wanted

Most helpful comment

@ssolidus ... well, one way to create a whitelist to accomplish this properly would be:

  1. MacType reports all the apps it's hooking on everyone's system, into a combined list
  2. We manually remove undesired entries from the list (games, unnecessary software, incompatible apps)
  3. We use this as the base whitelist, perhaps kept on cloud infrastructure

You'd also need some method for new software MacType doesn't know about, e.g:

  1. New software runs for the first time
  2. MacType asks if you want to hook it, in test mode
  3. MacType confirms there was no problems and you want to keep hooking it
  4. Software is added to the cloud whitelist

I.e. there is some global way of evaluating whether software has problems or not across all platforms... Also if someone manually removes software from the whitelist, this is reported to MacType's cloud whitelist.

A method like this could prevent common problems e.g. the newest version of Chrome or FireFox has started crashing, people report problems, and it's removed from the cloud whitelist

The problem with a system like this is it can become intensive to manage just in terms of time ... You can end up spending more time managing the whitelist than working on the software.

Vs. the problem of the blacklist, that it's impractical to simply list every game in existence, so nobody has problems with games.

Another method might be for MacType to try and intelligently detect whether a piece of software might be a bad fit ... e.g. by looking at certain behaviour of that software:

  • does it request direct access to hardware acceleration
  • does it request a DirectWrite screen
  • does it request DirectWrite audio
    etc..

We might find that there are certain commonalities between problematic software - though the software is all different - we can predict whether it might have problems with MacType. If there are commonalities, then this would possibly be an easy way to decide whether to hook the software or not

MacType would need to keep a local or ideally cloud database rather than examine software each time. In this system you would still have a blacklist and a whitelist, but they are simply for overriding software that are edge cases, rather than trying to deal directly with every piece of software.

All 25 comments

Thank you in advance, and anyone who has an idea on which application should be excluded/unloaded is welcome to post to this thread. I'll add them to the main configuration in the following releases.

Thanks, I will add them when I get home :)

fontforge.exe
VirtualBox.exe
VBoxSVC.exe

As far as I know Mactype doesn’t conflict with CMDer.exe. It just reports
the detection of the MacType hook.

On Mon, Apr 1, 2019 at 18:58 Mahayu notifications@github.com wrote:

cmder.exe
fontforge.exe
VirtualBox.exe
VBoxSVC.exe
ConEmu.exe
ConEmu64.exe


You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/snowie2000/mactype/issues/523#issuecomment-478533405,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ALONleRLKLDiNufIv-_4KXeJVoLZ2KPXks5vceZtgaJpZM4cRb93
.

As far as I know Mactype doesn’t conflict with CMDer.exe. It just reports the detection of the MacType hook.

This is correct, I've never had any problems.

@ssolidus thank you for your work on this. There's also the list of known conflicts with MacType we're tracking in issue #426 that might help.

@sammilucia Great! It would be helpful if you could see if the issues with those Electron apps still exist, as the MacType beta now comes with DirectWrite support. You can find it here: https://github.com/snowie2000/mactype/releases/tag/2018.1-beta5

Good point, I'll test.

On Wed., 10 Apr. 2019, 09:19 ssolidus, notifications@github.com wrote:

@sammilucia https://github.com/sammilucia Great! It would be helpful if
you could see if the issues with those Electron apps still exist, as the
MacType beta now comes with DirectWrite support. You can find it here:
https://github.com/snowie2000/mactype/releases/tag/2018.1-beta5


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/snowie2000/mactype/issues/523#issuecomment-481486988,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADJINk6wQBHZcVIOkeH2cVjvBpcwZX4Wks5vfS4egaJpZM4cRb93
.

@snowie2000 I have updated the original post. Please see the Discord JSON I linked with a big list of games you can use.

Unfortunately I cannot find a more recent copy than 2015, because Discord began compiling their stuff to Node binaries

My list

igfxCUIService.exe
igfxEM.exe
igfxHK.exe
lass.exe
SearchIndexer.exe
OfficeClickToRun.exe
SearchProtocolHost.exe
SearchFilterHost.exe
stacsv64.exe
QHSafeTray.exe
QHWatchdog.exe
QHActiveDefense.exe
SynTPHelper.exe
SynTPEnh.exe
NVDisplay.Container.exe
node.exe
CCXProcess.exe
AdobeIPCBroker.exe
audiodg.exe

Thanks guys, I've added the exclusions in the OP to the main ini ready for the next build. Great work, thank you so much!

@sammilucia Please consider taking a look at the Discord JSON I linked. Unfortunately it is outdated, as Discord began packing their Desktop app as Node binaries. Should still save a lot of time though.

@ssolidus that's a good list, agreed, however 1) I don't play many games, and 2) The ones that I have played (Witcher 1, 2, 3, Portal, Civ, Skyrim, etc.) I've never had a problem with MacType or needed to disable it - it hasn't even caused performance problems...

For my comment 1 - I'm probably not the best person to make a decision on this.

For comment 2 - Is there a specific reason we need to disable MacType for games? Specifically for all games?

@sammilucia Because the MacType hook is for intercepting calls for font-rendering - almost all video games render fonts internally, and you should generally not be attempting to interfere with that. MacType is aimed applications that would traditionally call the font rendering/rasterising system of the host.

@ssolidus it's highly dependent on the game. A lot of games don't use GDI or DirectWrite for rendering their fonts... They might use bitmaps or OpenGL or their own custom methods if they're cross platform.

My point is that you don't want the majority of games to have their font rendering tinkered with.

@ssolidus yes - however there are tens of thousands of games... If you wanted to exclude them all, blacklisting isn't the right tool.. Instead you'd whitelist, and just have MacType work on the apps you want.

However I don't think there's much point - even when I did play a lot of games I've never seen it interfere... I'm not really a gamer though so my opinion on it shouldn't carry much weight.

@sammilucia That makes sense - however, I just don't like the idea of a process hooking into another when it has no reason to do so.

@ssolidus ... well, one way to create a whitelist to accomplish this properly would be:

  1. MacType reports all the apps it's hooking on everyone's system, into a combined list
  2. We manually remove undesired entries from the list (games, unnecessary software, incompatible apps)
  3. We use this as the base whitelist, perhaps kept on cloud infrastructure

You'd also need some method for new software MacType doesn't know about, e.g:

  1. New software runs for the first time
  2. MacType asks if you want to hook it, in test mode
  3. MacType confirms there was no problems and you want to keep hooking it
  4. Software is added to the cloud whitelist

I.e. there is some global way of evaluating whether software has problems or not across all platforms... Also if someone manually removes software from the whitelist, this is reported to MacType's cloud whitelist.

A method like this could prevent common problems e.g. the newest version of Chrome or FireFox has started crashing, people report problems, and it's removed from the cloud whitelist

The problem with a system like this is it can become intensive to manage just in terms of time ... You can end up spending more time managing the whitelist than working on the software.

Vs. the problem of the blacklist, that it's impractical to simply list every game in existence, so nobody has problems with games.

Another method might be for MacType to try and intelligently detect whether a piece of software might be a bad fit ... e.g. by looking at certain behaviour of that software:

  • does it request direct access to hardware acceleration
  • does it request a DirectWrite screen
  • does it request DirectWrite audio
    etc..

We might find that there are certain commonalities between problematic software - though the software is all different - we can predict whether it might have problems with MacType. If there are commonalities, then this would possibly be an easy way to decide whether to hook the software or not

MacType would need to keep a local or ideally cloud database rather than examine software each time. In this system you would still have a blacklist and a whitelist, but they are simply for overriding software that are edge cases, rather than trying to deal directly with every piece of software.

svchost.exe removed - should not be in there

In my opinion, MacType should be default "white list mode" instead of "black list mode". The black list could endless go on and on. If we want a default "black list", then put those system components/exe into it, and ignore those games exe, because I think put game exe into black list is user's job.

Then the white list can go on and on forever.

Cmder/ConEmu exclusion

Since ConEmu is included in Cmder, I believe it'd benefit both of the programs.

As per https://github.com/Maximus5/ConEmu/issues/463, it's also suggested to add these processes too:

[UnloadDll]
ConEmuC.exe
ConEmuC64.exe

That is because MacType tries to hook ConEmuC.exe and ConEmuC64.exe processes. But ConEmuC is a console application and it does not draw any text on graphical canvas at all.

That warning is pretty outdated. Mactype is fully compatible with cmder. No executable needs to be excluded.

1) Is it possible to add in some future version excluding processes by wildcarded names? And by the path?

2) I recommend Lazarus IDE for exclusion - it often crashes when MacType is active - either _lazarus.exe_ itself, or its child processes (compilers etc.).

(about Lazarus: https://www.lazarus-ide.org/index.php )

Was this page helpful?
0 / 5 - 0 ratings

Related issues

zzrcxb picture zzrcxb  ·  8Comments

caulmseh picture caulmseh  ·  3Comments

AhaoAile picture AhaoAile  ·  7Comments

aridzephyr picture aridzephyr  ·  5Comments

TianLi-520 picture TianLi-520  ·  3Comments