强制移除Unity3d中的 permission 依赖
<uses-permission android:name=”android.permission.ACCESS_FINE_LOCATION” tools:node=”remove” />
查询APK 与 keystore 的 SHA1
APK
keytool -printcert -jarfile .\base.apk
KeyStore
keytool -list -v -keystore .\file.keystore -storepass passwd
查询APK的版本号相关
aapt dump badging .\base.apk
高于Android M 用
aapt2 dump badging .\base.apk
世界,您好!
欢迎使用WordPress。这是您的第一篇文章。编辑或删除它,然后开始写作吧!
CentOS/ RedHat 防火墙操作
显示当前所有的规则
firewall-cmd --list-all
添加一条规则 例 port=3306
firewall-cmd --permanent --add-port=3306/tcp
删除某个端口
firewall-cmd --permanent --remove-port=3306/tcp
添加多个端口
firewall-cmd --permanent --zone=public --add-port=8080-8083/tcp
重启防火墙让规则生效
firewall-cmd --reload
开启防火墙
systemctl start firewalld.service
防火墙开机启动
systemctl enable firewalld.service
关闭防火墙
systemctl stop firewalld.service
查看防火墙状态
firewall-cmd --state
针对某个 IP开放端口
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.123.123" port protocol="tcp"
port="6379" accept" firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.0.233" accept"
删除某个IP
firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.123.123" accept"
针对一个ip段访问
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.0.0/16" accept" firewall-cmd
--permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="9200" accept"
从PK8 和 x509.perm文件中生成keystore 供安卓签名
./keytool -importkeypair -k <要生成的keystore文件> -p <密码> -pk8 <pk8文件> -cert <x509.pem文件> –alias platform
例:
./keytool -importkeypair -k ./platform.keystore -p android -pk8 platform.pk8 -cert platform.x509.pem -alias platform
pk8文件和 .x509.perm 是系统的签名文件,可以在编译完安卓系统的out或target目录里找到
如果是要打系统应用的包
AndroidManifest.xml 里还需要加入
android:sharedUserId="android.uid.system"
Python 3.6.0 与 prompt-toolkit 的兼容性问题
新的prompt-toolkit 需要更高的版本,3.6.0需要降回2.0.1使用
pip install –upgrade prompt-toolkit==2.0.1
opencv-python==4.1.0.25 安装慢的问题
使用国内清华的pip3源加速即可
pip3 install –user -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python==4.1.0.25
nmap 扫描局域网内的端口
sudo nmap -sF 192.168.8.0/24 -p 80
Android 通过应用包名启动外部应用
void startFit(String packageName) { PackageManager packageManager = this.getApplicationContext().getPackageManager(); PackageInfo pi = null; try { pi = packageManager.getPackageInfo(packageName, 0); if(pi == null) { Toast.makeText(FullscreenLauncher.this, "应用未安装", Toast.LENGTH_SHORT).show(); return; } } catch (PackageManager.NameNotFoundException e) { } Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null); resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER); resolveIntent.setPackage(pi.packageName); List<ResolveInfo> apps = packageManager.queryIntentActivities(resolveIntent, 0); ResolveInfo ri = apps.iterator().next(); if (ri != null ) { String className = ri.activityInfo.name; Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_LAUNCHER); ComponentName cn = new ComponentName(packageName, className); intent.setComponent(cn); this.getApplicationContext().startActivity(intent); } }
Redmine与Gitblit联动(二)
如果git仓库在本机上就更方便了,不用迁出直接配置成对应的git仓库地址,如果在仓库另一台机子上,则需要如下操作做一个git mirror
新建一个 gitrespo ,然后将所属用户改成www-data以完成权限设定
然后 git clone –mirror
299 sudo mkdir /gitrespo
300 ll
301 cd /gitrespo/
302 mv /gitrespo/ /gitrepos
303 sudo mv /gitrespo/ /gitrepos
304 ll
305 cd ..
306 ll
307 cd /gitrepos/
308 ll
309 chmod -R 777 ./
310 sudo chmod -R 777 ./
311 sudo chown -R www-data:www-data gitrepos
312 sudo chown -R www-data:www-data ./
313 ll
314 sudo -u www-data -H git clone –mirror git://192.168.8.18/FitPose.git
319 cd FitPose.git/
320 git fetch
以上完成了迁出与git mirror操作,接下来就需要在Redmine上进行配置仓库的地址
修改git源代码的 git adapter.rb 主要是以下这段
def branches return @branches if @branches @branches = [] cmd_args = %w|branch --no-color --verbose --no-abbrev| git_cmd(cmd_args) do |io| io.each_line do |line| branch_rev = line.match('\s*(\*?)\s*(.*?)\s*([0-9a-f]{40}).*$') next unless branch_rev bran = GitBranch.new(branch_rev[2]) bran.revision = branch_rev[3] bran.scmid = branch_rev[3] bran.is_default = ( branch_rev[1] == '*' ) @branches << bran end end logger.info "1. fetch --all" cmd_args = %w|fetch --all| git_cmd(cmd_args) do |io| logger.info io.readlines end logger.info "2. reset --hard origin" cmd_args = %w|reset --hard origin| git_cmd(cmd_args) do |io| logger.info io.readlines end @branches.sort! rescue ScmCommandAborted nil end
def git_cmd(args, options = {}, &block) repo_path = root_url || url full_args = ['-C', repo_path + '/..', '--git-dir', repo_path] if self.class.client_version_above?([1, 7, 2]) full_args << '-c' << 'core.quotepath=false' full_args << '-c' << 'log.decorate=no' end full_args += args cmdline = self.class.sq_bin + ' ' + full_args.map { |e| shell_quote e.to_s }.join(' ') logger.info cmdline ret = shellout( cmdline, options, &block ) if $? && $?.exitstatus != 0 raise ScmCommandAborted, "git exited with non-zero status: #{$?.exitstatus}" end logger.info "execute end" ret end private :git_cmd
以下是修改后的 git_adapter.rb
git_adapter.rb
修改替换后,重启redmine即可
342 ./ctlscript.sh restart apache