If you do end up wanting to use addon-sdk, here is a video tutorial (55min) but it shows you how to go from start to finish. Including localization by the babelzilla community: https://github.com/Noitidart/Firefox-on-OS-X-Icon
But what @MartinJ is saying is a good idea ( I didnt think of that! ), port everything to WebExtesnsion, but then use chrome privelages to grab in child_process and use it.
This is how to do that (this is basically how you use sdk stuff in non-sdk classic bootstrap method, which should also work in WebExtensions)
// Import SDK Stuff
const COMMONJS_URI = 'resource://gre/modules/commonjs';
const { require } = Cu.import(COMMONJS_URI + '/toolkit/require.js', {});
var child_process = require('sdk/system/child_process');
var iconutil = child_process.spawn('/usr/bin/iconutil', aArgs);
iconutil.stdout.on('data', function (data) {
console.error('iconutil stdout:', data);
});
iconutil.stderr.on('data', function (data) {
console.error('iconutilstderr:', data);
});
iconutil.on('close', function (code) {
console.error('iconutil exited with code', code);
});