强制移除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