Superuser detection for Flutter desktop application
Superuser is a special user, who granted as much as possible to access system files for maintenance purpose. Different systems has different names to refer superuser (e.g. root
in various UNIX system and Administrator
in Windows).
Although pub.dev
has numerous of packages to detect superuser, they are designed for Android and some packages added iOS support already. Hence, these package may become bulky because of unnessary callbacks along with detection only.
Instead, superuser
package offers superuser detection in Flutter desktop and two replicated identification command from UNIX (whoami
and group
) for additional verification if necessary.
Limitations
This package only tested using informations given on local machines only. It may not perform identically if running devices is domain joined.
Implementations
Production
No additional setup needed.
Testing or simulating with mock interface
For testing, MockSuperuser
must be binded already before performing widget test:
import 'package:flutter_test/flutter_test.dart';
import 'package:superuser/instance.dart';
import 'package:superuser/mock.dart';
void main() {
setUpAll(() {
// Bind mock instance here
SuperuserInstance.bindInstance(const MockSuperuser(whoAmI: "reonaw"));
});
// Do any testes below
}
If using for debug simulation, mock interface must be binded before runApp
:
import 'package:flutter/widgets.dart';
import 'package:superuser/instance.dart';
import 'package:superuser/mock.dart';
void main() {
SuperuserInstance.bindInstance(const MockSuperuser(whoAmI: "hiderik", isSuperuser: true, isActivated: true));
runApp(const YourApp());
}
Demo
Demo application of superuser
has been available in release page in Windows and Linux application.
These demo animations are for reference only, conditions and contents may be differ without notice.
Open without superuser right
Open with superuser right
License
BSD-3
Libraries
- instance
- Instance configuration for binding SuperuserInterface when using Superuser.
- mock
- Replicate SuperuserInterface to emulate superuser condition in controllable values when performing debugs or testing.
- superuser
- Fundamental library for fetching superuser status.