I was also searching for this but gave up mid-way due to a lack of motivation.
All I can tell you right now is that the icons for all the apps are in the folder /usr/share/yunohost/applogos/*.png
You can find out which .png is being used by your app by looking at the relevant .json file for the domain that app is installed on in the conf file in the folder /etc/yunohost/portal
So for example, if you have nextcloud on the domain mydomain.tld → Look for the file mydomain.tld.json in the folder /etc/yunohost/portal.
You will find the app’s attributes, including “portal_logo” and the png filename for that logo, in that file.
Just replace that png file with a png of the logo of your choice.